Commit 3b99bf95 authored by Ondřej Borýsek's avatar Ondřej Borýsek
Browse files

Refactor write_new_finding

parent e50f91c8
Loading
Loading
Loading
Loading
+14 −37
Original line number Diff line number Diff line
@@ -305,6 +305,13 @@ def write_new_finding(s2r: Scan2ReportData, template: Dict[str, Any], fid: str,
    if lang is None:
        lang = s2r.config.lang

    s2r.unknownCounter += 1
    s2r.missingPlugins.append(fid)

    if s2r.config.pluginStatsOnly:
        pluginStatsCounter(s2r.plugin_stats, fid, template['name_original'], template['severity_original'], False)
        return

    filepath = s2r.config.rootDir + '/plugins/' + lang + '/templates/' + fid + '.json'
    dprint('Creating new template ' + filepath)
    with open(filepath, 'w', encoding="utf8") as jsonfile:
@@ -325,7 +332,7 @@ def pluginsByFindingSeverity(plugin, lang: str, rootDir: str):


# increase plugin stats counter
def pluginStatsCounter(pluginStats, plugin, name, severity, known):
def pluginStatsCounter(pluginStats, plugin: str, name: str, severity, known: bool):
    if plugin not in pluginStats:
        pluginStats[plugin] = {}
        pluginStats[plugin]['counter'] = 1
@@ -702,12 +709,7 @@ def parse_tns_custom_finding(s2r: Scan2ReportData, infile: str):
            template['links_original'] = []
            template['links'] = []
            template['author'] = ''
            if pluginStatsOnly:
                pluginStatsCounter(plugin_stats, fid, template['name_original'], template['severity_original'], False)
            else:
            write_new_finding(s2r, template, fid, lang)
            s2r.unknownCounter += 1
            missingPlugins.append(fid)
        else:
            dprint('An unprocessed template already exists: ' + rootDir + '/plugins/' + lang + '/templates/' + fid + '.json')
            missingPlugins.append(fid)
@@ -824,12 +826,7 @@ def parse_tns_audit_windows(s2r: Scan2ReportData, infile: str):
            template['links_original'] = []
            template['links'] = []
            template['author'] = ''
            if pluginStatsOnly:
                pluginStatsCounter(plugin_stats, fid, template['name_original'], template['severity_original'], False)
            else:
            write_new_finding(s2r, template, fid, lang)
            s2r.unknownCounter += 1
            missingPlugins.append(fid)
        else:
            dprint('An unprocessed template already exists: ' + rootDir + '/plugins/' + lang + '/templates/' + fid + '.json')
            missingPlugins.append(fid)
@@ -962,12 +959,7 @@ def parse_kubeaudit(s2r: Scan2ReportData, infile: str):
                        template['links_original'] = []
                        template['links'] = []
                        template['author'] = ''
                        if pluginStatsOnly:
                            pluginStatsCounter(plugin_stats, fid, template['name_original'], template['severity_original'], False)
                        else:
                        write_new_finding(s2r, template, fid, lang)
                        s2r.unknownCounter += 1
                        missingPlugins.append(fid)
                    else:
                        dprint('An unprocessed template already exists: ' + rootDir + '/plugins/' + lang + '/templates/' + fid + '.json')
                        missingPlugins.append(fid)
@@ -1207,12 +1199,7 @@ def parse_lynis(s2r: Scan2ReportData, infile: str):
                template['links_original'] = []
                template['links'] = []
                template['author'] = ''
                if pluginStatsOnly:
                    pluginStatsCounter(plugin_stats, fid, template['name_original'], template['severity_original'], False)
                else:
                write_new_finding(s2r, template, fid, lang)
                s2r.unknownCounter += 1
                missingPlugins.append(fid)
            else:
                dprint('An unprocessed template already exists: ' + rootDir + '/plugins/' + lang + '/templates/' + fid + '.json')
                missingPlugins.append(fid)
@@ -1388,12 +1375,7 @@ def parse_burp(debug: bool, s2r: Scan2ReportData, root):
                template['links_original'] = links
                template['links'] = []
                template['author'] = ''
                if pluginStatsOnly:
                    pluginStatsCounter(plugin_stats, fid, template['name_original'], template['severity_original'], False)
                else:
                write_new_finding(s2r, template, fid, lang)
                s2r.unknownCounter += 1
                missingPlugins.append(fid)
            else:
                dprint('An unprocessed template already exists: ' + rootDir + '/plugins/' + lang + '/templates/' + fid + '.json')
                missingPlugins.append(fid)
@@ -1634,12 +1616,7 @@ def parse_nessus(debug: bool, s2r: Scan2ReportData, root):
                    template['links_original'] = links
                    template['links'] = []
                    template['author'] = ''
                    if pluginStatsOnly:
                        pluginStatsCounter(plugin_stats, fid, template['name_original'], template['severity_original'], False)
                    else:
                    write_new_finding(s2r, template, fid, lang)
                    s2r.unknownCounter += 1
                    missingPlugins.append(fid)
                else:
                    dprint('An unprocessed template already exists: ' + rootDir + '/plugins/' + lang + '/templates/' + fid + '.json')
                    missingPlugins.append(fid)