restructure and write openvas to db

This commit is contained in:
pemontto
2019-04-23 16:59:55 +10:00
parent 7999810d28
commit 51fa81cb05

View File

@ -388,7 +388,11 @@ class vulnWhispererNessus(vulnWhispererBase):
def whisper_nessus(self): def whisper_nessus(self):
if self.nessus_connect: if not self.nessus_connect:
self.logger.error('Failed to use scanner at {host}:{port}'.format(host=self.hostname, port=self.nessus_port))
self.exit_code += 1
return self.exit_code
scan_data = self.nessus.scans scan_data = self.nessus.scans
folders = scan_data['folders'] folders = scan_data['folders']
scans = scan_data['scans'] if scan_data['scans'] else [] scans = scan_data['scans'] if scan_data['scans'] else []
@ -499,6 +503,8 @@ class vulnWhispererNessus(vulnWhispererBase):
vuln_ready['scan_time'] = norm_time vuln_ready['scan_time'] = norm_time
vuln_ready.to_json(relative_path_name, orient='records', lines=True) vuln_ready.to_json(relative_path_name, orient='records', lines=True)
self.logger.info('{records} records written to {path} '.format(records=vuln_ready.shape[0],
path=relative_path_name))
record_meta = ( record_meta = (
scan_name, scan_name,
@ -513,13 +519,11 @@ class vulnWhispererNessus(vulnWhispererBase):
0, 0,
) )
self.record_insert(record_meta) self.record_insert(record_meta)
self.logger.info('{records} records written to {path} '.format(records=vuln_ready.shape[0], self.logger.info('Scan {} ({}) written to database'.format(scan_name.encode('utf8'), uuid))
path=file_name.encode('utf8')))
self.conn.close() self.conn.close()
self.logger.info('Scan aggregation complete! Connection to database closed.') self.logger.info('Scan aggregation complete! Connection to database closed.')
else:
self.logger.error('Failed to use scanner at {host}:{port}'.format(host=self.hostname, port=self.nessus_port))
self.exit_code += 1
return self.exit_code return self.exit_code
@ -658,6 +662,15 @@ class vulnWhispererQualys(vulnWhispererBase):
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
if output_format == 'json':
vuln_ready.to_json(relative_path_name, orient='records', lines=True)
elif output_format == 'csv':
vuln_ready.to_csv(relative_path_name, index=False, header=True)
self.logger.info('{records} records written to {path} '.format(records=vuln_ready.shape[0],
path=relative_path_name))
record_meta = ( record_meta = (
scan_name, scan_name,
scan_reference, scan_reference,
@ -671,14 +684,7 @@ class vulnWhispererQualys(vulnWhispererBase):
0, 0,
) )
self.record_insert(record_meta) self.record_insert(record_meta)
self.logger.info('Scan {} ({}) written to database'.format(scan_name.encode('utf8'), report_id))
if output_format == 'json':
vuln_ready.to_json(relative_path_name, orient='records', lines=True)
elif output_format == 'csv':
vuln_ready.to_csv(relative_path_name, index=False, header=True)
self.logger.info('Report written to {}'.format(report_name))
if cleanup: if cleanup:
self.logger.info('Removing report {} from Qualys Database'.format(generated_report_id)) self.logger.info('Removing report {} from Qualys Database'.format(generated_report_id))
@ -804,17 +810,6 @@ class vulnWhispererOpenVAS(vulnWhispererBase):
self.record_insert(record_meta) self.record_insert(record_meta)
self.logger.info('File {filename} already exists! Updating database'.format(filename=relative_path_name)) self.logger.info('File {filename} already exists! Updating database'.format(filename=relative_path_name))
record_meta = (
scan_name,
scan_reference,
launched_date,
report_name,
time.time(),
file_length,
self.CONFIG_SECTION,
report_id,
1,
)
else: else:
vuln_ready = self.openvas_api.process_report(report_id=report_id) vuln_ready = self.openvas_api.process_report(report_id=report_id)
@ -833,7 +828,24 @@ class vulnWhispererOpenVAS(vulnWhispererBase):
vuln_ready['scan_source'] = self.CONFIG_SECTION vuln_ready['scan_source'] = self.CONFIG_SECTION
vuln_ready.to_json(relative_path_name, orient='records', lines=True) vuln_ready.to_json(relative_path_name, orient='records', lines=True)
self.logger.info('Report written to {}'.format(report_name)) self.logger.info('{records} records written to {path} '.format(records=vuln_ready.shape[0],
path=relative_path_name))
record_meta = (
scan_name,
scan_reference,
launched_date,
report_name,
time.time(),
vuln_ready.shape[0],
self.CONFIG_SECTION,
report_id,
1,
0,
)
self.record_insert(record_meta)
self.logger.info('Scan {} ({}) written to database'.format(scan_name.encode('utf8'), report_id))
return report return report
@ -938,6 +950,12 @@ class vulnWhispererQualysVuln(vulnWhispererBase):
self.exit_code += 1 self.exit_code += 1
return self.exit_code return self.exit_code
if output_format == 'json':
vuln_ready.to_json(relative_path_name, orient='records', lines=True)
self.logger.info('{records} records written to {path} '.format(records=vuln_ready.shape[0],
path=relative_path_name))
record_meta = ( record_meta = (
scan_name, scan_name,
scan_reference, scan_reference,
@ -951,11 +969,8 @@ class vulnWhispererQualysVuln(vulnWhispererBase):
0, 0,
) )
self.record_insert(record_meta) self.record_insert(record_meta)
self.logger.info('Scan {} ({}) written to database'.format(scan_name.encode('utf8'), report_id))
if output_format == 'json':
vuln_ready.to_json(relative_path_name, orient='records', lines=True)
self.logger.info('Report written to {}'.format(report_name))
return self.exit_code return self.exit_code