GetIndicatorDBotScoreFromCache
Get the overall score for the indicator as calculated by DBot.
javascript · Common Scripts
Source
// pack version: 1.19.90 function escapeSpecialCharacters(text) { return text .replace(/\\/g, '\\\\') .replace(/\n/g, '\\n') .replace(/\t/g, '\\t') .replace(/\r/g, '\\r') .replace(/\(/g, '\\(') .replace(/\)/g, '\\)') .replace(/\[/g, '\\[') .replace(/\]/g, '\\]') .replace(/\^/g, '\\^') .replace(/:/g, '\\:') .replace(/"/g, '\\"'); } var values = argToList(args.value) var uniqueValues = new Set(values.map(v => v.toLowerCase())); var uniqueValuesEscapeCharacters = Array.from(uniqueValues, item => escapeSpecialCharacters(item)); var uniqueValuesString = uniqueValuesEscapeCharacters.join('" "') var query = `value:("${uniqueValuesString}")`; var indicatorsRes = executeCommand('findIndicators', { query: query, populateFields: 'name,score,aggregatedReliability,type,expirationStatus' }); if (!isValidRes(indicatorsRes)) { if (indicatorsRes[0].Contents) { return { ContentsFormat: formats.markdown, Type: entryTypes.error, Contents: indicatorsRes[0].Contents }; } } if (indicatorsRes && indicatorsRes[0] && indicatorsRes[0]) { var returnEntries = []; for (var data of indicatorsRes[0].Contents) { var score = data["score"]; var reliability = data["aggregatedReliability"]; var indicatorType = data["indicator_type"]; var expirationStatus = data["expirationStatus"] !== "active"; var value = data["value"]; var dbotScore = { Indicator: value, Type: indicatorType, Vendor: "XSOAR", Score: score, Reliability: reliability, Expired: expirationStatus }; returnEntries.push(dbotScore); uniqueValues.delete(value.toLowerCase()); // for multiple IOCs with same value but different casing } var valuesNotFound = Array.from(new Set( values.filter(v => uniqueValues.has(v.toLowerCase())) )); var entries = []; if (returnEntries.length > 0) { entries.push({ Type: entryTypes.note, ReadableContentsFormat: formats.markdown, Contents: returnEntries, ContentsFormat: formats.json, HumanReadable: tableToMarkdown('Indicator', returnEntries), EntryContext: { 'DBotScoreCache': returnEntries } }); } if (valuesNotFound.length == 1) { entries.push({ Type: entryTypes.note, ReadableContentsFormat: formats.text, Contents: `Could not find ${valuesNotFound[0]} in cache` }); } if (valuesNotFound.length > 1) { entries.push({ Type: entryTypes.note, HumanReadable: tableToMarkdown('Could not find in cache', valuesNotFound, ['Values']), ReadableContentsFormat: formats.markdown, Contents: {} }); } return entries; }
README
Get the overall score for the indicator as calculated by DBot.
Script Data
| Name | Description |
|---|---|
| Script Type | javascript |
| Tags | |
| Cortex XSOAR Version | 6.0.0 |
Inputs
| Argument Name | Description |
|---|---|
| value | A comma-separated list of indicator values to check. |
Outputs
There are no outputs for this script.