I'm working on a search string that will eventually (hopefully) be used in API that will query our Tenable log source type and export the results directly to JIRA to be remediated by our infrastructure team.
The problem I'm having is that the query I've built below has some columns returning multiple values. So for instance, the current search is saying vulnerability X is showing up on asset A,B,C,D but it is placing A,B,C,D in the same cell. What I need is for vulnerability X to be broken out into separate rows for each asset:
row 1. Vuln X | asset A
row 2. Vuln X | asset B etc.
"Plugin ID" (which is Tenable's version of the CVE) is the field I'd like to match on.
Search String:
events:
metadata.log_type = "TENABLE_IO" AND security_result.detection_fields.value != "INFO" security_result.rule_id = $pluginID
match:
$pluginID
outcome:
$Description = array_distinct(extensions.vulns.vulnerabilities.description)
$FQDN = array_distinct(principal.hostname)
$IP_Address = array_distinct(principal.asset.ip)
$Name = array_distinct(extensions.vulns.vulnerabilities.name)
$NetBios = array_distinct(security_result.detection_fields.value)
$OS = array_distinct(principal.asset.platform_software.platform_version)
$Plugin_ID = array_distinct(security_result.rule_id)
$Plugin_Output = array_distinct(security_result.detection_fields.value)
$Risk = array_distinct(extensions.vulns.vulnerabilities.severity)
//$See_Also = array_distinct()
$Solution = array_distinct(security_result.description)
$Synopsis = array_distinct(security_result.summary)
$Vulnerability_State = array_distinct(security_result.detection_fields.value)
$Asset_UUID = array_distinct(principal.asset.product_object_id)