From eb2beef315db403736352a05ca7fe27bb0769c71 Mon Sep 17 00:00:00 2001 From: synack-akozynets Date: Sat, 6 Jul 2024 00:07:21 +0100 Subject: [PATCH] - added metadata tags to incident description --- .../AzureFunctionSynack/azure-service.js | 3 ++- .../AzureFunctionSynack/host.json | 2 +- .../AzureFunctionSynack/sync-service.js | 20 +++++++++++-------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Solutions/Synack/Integrations/AzureFunctionSynack/azure-service.js b/Solutions/Synack/Integrations/AzureFunctionSynack/azure-service.js index 778578304f2..70585ebdcd5 100644 --- a/Solutions/Synack/Integrations/AzureFunctionSynack/azure-service.js +++ b/Solutions/Synack/Integrations/AzureFunctionSynack/azure-service.js @@ -75,7 +75,8 @@ exports.createOrUpdateIncident = function createOrUpdateIncident(vulnJson, acces "status": incidentDto.status.name, "classification": incidentDto.status.classification, "classificationReason": incidentDto.status.classificationReason, - "title": incidentDto.title + "title": incidentDto.title, + "labels": [{labelType: "User", labelName: "synack"}] } } ) diff --git a/Solutions/Synack/Integrations/AzureFunctionSynack/host.json b/Solutions/Synack/Integrations/AzureFunctionSynack/host.json index 291065f8c28..5fd4545bd6d 100644 --- a/Solutions/Synack/Integrations/AzureFunctionSynack/host.json +++ b/Solutions/Synack/Integrations/AzureFunctionSynack/host.json @@ -10,6 +10,6 @@ }, "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", - "version": "[2.*, 3.0.0)" + "version": "[2.*, 4.0.0)" } } \ No newline at end of file diff --git a/Solutions/Synack/Integrations/AzureFunctionSynack/sync-service.js b/Solutions/Synack/Integrations/AzureFunctionSynack/sync-service.js index 1d46c6a18f0..03196abacef 100644 --- a/Solutions/Synack/Integrations/AzureFunctionSynack/sync-service.js +++ b/Solutions/Synack/Integrations/AzureFunctionSynack/sync-service.js @@ -183,9 +183,9 @@ function compileIncidentDescription(vulnJson) { exploitableLocationsHtml += '' exploitableLocationsHtml = `

Vulnerability Locations

${exploitableLocationsHtml}` - let listingHtml = `

Assessment

Name: ${listingJson['codename']}
Link: ${listingJson['link']}
Category: ${listingJson['category']}` - let cvssHtml = `

CVSS

Score ${cvssScore}
Vector ${cvssVector}` - let linkHtml = `${link}` + let listingHtml = `

Assessment

Name: ${wrapData("assessment", listingJson['codename'])}
Link: ${listingJson['link']}
Category: ${listingJson['category']}` + let cvssHtml = `

CVSS

Score ${wrapData("cvss", cvssScore)}
Vector ${cvssVector}` + let linkHtml = `${wrapData("synack_link", link)}` let validationStepsHtml = '

Steps to Reproduce

' for (let stepNumber = 1; stepNumber <= validationStepsJsonArray.length; stepNumber++) { @@ -202,15 +202,19 @@ function compileIncidentDescription(vulnJson) { let updatedHtmlPart = updated ? `updated ${getDateFromIso8601UTC(updated)}` : '' let resolvedHtmlPart = resolved ? `resolved ${getDateFromIso8601UTC(resolved)}` : '' let datesHtml = `

Dates

${updatedHtmlPart}
${resolvedHtmlPart}
${closedHtmlPart}` - let categoryHtml = `

Category

${category}` - let descriptionHtml = `

Description

${description}` - let impactHtml = `

Impact

\n${impact}` - let recommendedFixHtml = `

Recommended Fix

\n${recommendedFix}` + let categoryHtml = `

Category

${wrapData('category', category)}` + let descriptionHtml = `

Description

${wrapData('description', description)}` + let impactHtml = `

Impact

\n${wrapData('impact', impact)}` + let recommendedFixHtml = `

Recommended Fix

\n${wrapData('recommended_fix', recommendedFix)}` - let incidentDescription = `
${linkHtml}
${categoryHtml}${listingHtml}${descriptionHtml}${impactHtml}\n${exploitableLocationsHtml}${validationStepsHtml}${recommendedFixHtml}${cvssHtml}${datesHtml}` + let incidentDescription = `
${linkHtml}
${cvssHtml}${datesHtml}${categoryHtml}${listingHtml}${descriptionHtml}${impactHtml}\n${exploitableLocationsHtml}${recommendedFixHtml}${validationStepsHtml}` return incidentDescription } +function wrapData(name, value){ + return `${value}` +} + function getValidationStep(stepNumber, validationSteps) { for (let validationStep of validationSteps) { if (validationStep['number'] === stepNumber) {