create unified cvss field
This commit is contained in:
@ -32,6 +32,9 @@
|
|||||||
"cvss": {
|
"cvss": {
|
||||||
"type": "float"
|
"type": "float"
|
||||||
},
|
},
|
||||||
|
"cvss_severity": {
|
||||||
|
"type": "keyword"
|
||||||
|
},
|
||||||
"cvss2_base": {
|
"cvss2_base": {
|
||||||
"type": "float"
|
"type": "float"
|
||||||
},
|
},
|
||||||
|
@ -285,6 +285,8 @@ class qualysUtils:
|
|||||||
class qualysScanReport:
|
class qualysScanReport:
|
||||||
|
|
||||||
COLUMN_MAPPING = {
|
COLUMN_MAPPING = {
|
||||||
|
'CVSS Base': 'cvss2_base',
|
||||||
|
'CVSS Temporal': 'cvss2_temporal',
|
||||||
'DescriptionCatSev': 'category_description',
|
'DescriptionCatSev': 'category_description',
|
||||||
'DescriptionSeverity': 'synopsis',
|
'DescriptionSeverity': 'synopsis',
|
||||||
'Evidence #1': 'evidence',
|
'Evidence #1': 'evidence',
|
||||||
|
@ -264,7 +264,7 @@ class vulnWhispererBase(object):
|
|||||||
df['risk'] = df['risk_number'].map(self.SEVERITY_NUMBER_MAPPING)
|
df['risk'] = df['risk_number'].map(self.SEVERITY_NUMBER_MAPPING)
|
||||||
|
|
||||||
self.logger.debug('Normalising CVSS')
|
self.logger.debug('Normalising CVSS')
|
||||||
for cvss_version in ['cvss2', 'cvss3']:
|
for cvss_version in ['cvss', 'cvss2', 'cvss3']:
|
||||||
# cvssX = cvssX_temporal else cvssX_base
|
# cvssX = cvssX_temporal else cvssX_base
|
||||||
if cvss_version + '_base' in df:
|
if cvss_version + '_base' in df:
|
||||||
self.logger.debug('Normalising {} base'.format(cvss_version))
|
self.logger.debug('Normalising {} base'.format(cvss_version))
|
||||||
@ -295,8 +295,10 @@ class vulnWhispererBase(object):
|
|||||||
if not 'cvss' in df:
|
if not 'cvss' in df:
|
||||||
if 'cvss3' in df:
|
if 'cvss3' in df:
|
||||||
df['cvss'] = df['cvss3'].fillna(df['cvss2'])
|
df['cvss'] = df['cvss3'].fillna(df['cvss2'])
|
||||||
|
df['cvss_severity'] = df['cvss3_severity'].fillna(df['cvss2_severity'])
|
||||||
elif 'cvss2' in df:
|
elif 'cvss2' in df:
|
||||||
df['cvss'] = df['cvss2']
|
df['cvss'] = df['cvss2']
|
||||||
|
df['cvss_severity'] = df['cvss2_severity']
|
||||||
|
|
||||||
self.logger.debug('Creating Unique Document ID')
|
self.logger.debug('Creating Unique Document ID')
|
||||||
df['_unique'] = df.index.values
|
df['_unique'] = df.index.values
|
||||||
@ -638,6 +640,7 @@ class vulnWhispererQualysWAS(vulnWhispererBase):
|
|||||||
vuln_ready['scan_name'] = scan_name.encode('utf8')
|
vuln_ready['scan_name'] = scan_name.encode('utf8')
|
||||||
vuln_ready['scan_source'] = self.CONFIG_SECTION
|
vuln_ready['scan_source'] = self.CONFIG_SECTION
|
||||||
vuln_ready['scan_time'] = launched_date
|
vuln_ready['scan_time'] = launched_date
|
||||||
|
vuln_ready['vendor'] = 'qualys'
|
||||||
|
|
||||||
vuln_ready = self.common_normalise(vuln_ready)
|
vuln_ready = self.common_normalise(vuln_ready)
|
||||||
|
|
||||||
@ -772,6 +775,7 @@ class vulnWhispererOpenVAS(vulnWhispererBase):
|
|||||||
vuln_ready['scan_id'] = report_id
|
vuln_ready['scan_id'] = report_id
|
||||||
vuln_ready['scan_time'] = launched_date
|
vuln_ready['scan_time'] = launched_date
|
||||||
vuln_ready['scan_source'] = self.CONFIG_SECTION
|
vuln_ready['scan_source'] = self.CONFIG_SECTION
|
||||||
|
vuln_ready['vendor'] = 'greenbone'
|
||||||
|
|
||||||
vuln_ready = self.common_normalise(vuln_ready)
|
vuln_ready = self.common_normalise(vuln_ready)
|
||||||
|
|
||||||
@ -890,6 +894,7 @@ class vulnWhispererQualysVM(vulnWhispererBase):
|
|||||||
vuln_ready['scan_id'] = report_id
|
vuln_ready['scan_id'] = report_id
|
||||||
vuln_ready['scan_time'] = launched_date
|
vuln_ready['scan_time'] = launched_date
|
||||||
vuln_ready['scan_source'] = self.CONFIG_SECTION
|
vuln_ready['scan_source'] = self.CONFIG_SECTION
|
||||||
|
vuln_ready['vendor'] = 'qualys'
|
||||||
|
|
||||||
vuln_ready = self.common_normalise(vuln_ready)
|
vuln_ready = self.common_normalise(vuln_ready)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user