Sha256: e0315936f6b967629b7f6bc9841c029f7b9ca3e46d01368befcfa0a33a8a0218
Contents?: true
Size: 1.52 KB
Versions: 5
Compression:
Stored size: 1.52 KB
Contents
require_relative './base_mode.rb' class VulnerabilityMode < BaseMode # Initializes the mode def initialize(options) super(options) end # Returns the fields used to identify individual tickets def get_matching_fields ['vulnerability_id'] end # Returns the ticket's title def get_title(row) truncate_title "Vulnerability: #{row['title']}" end # Generates a unique identifier for a ticket def get_nxid(nexpose_id, row) "#{nexpose_id}v#{row['vulnerability_id']}" end # Returns the suffix used for query method names def get_query_suffix '_by_vuln_id' end def get_vuln_description(row) return '' if row['description'].to_s == '' "\nVulnerability Description: #{row['description']}" end # Returns the base ticket description object def get_description(nexpose_id, row) description = { nxid: "NXID: #{get_nxid(nexpose_id, row)}" } fields = ['header', 'references', 'solutions', 'assets', 'vuln_description'] fields.each { |f| description[f.intern] = self.send("get_#{f}", row) } description end # Updates the ticket description based on row data def update_description(description, row) description[:assets] += "\n#{get_assets(row)}" description end # Converts the ticket description object into a formatted string def print_description(description) fields = [:header, :assets, :references, :solutions, :vuln_description] finalize_description(fields.map { |f| description[f] }.join("\n"), description[:nxid]) end end
Version data entries
5 entries across 5 versions & 1 rubygems