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

Version Path
nexpose_ticketing-1.5.2 lib/nexpose_ticketing/modes/vulnerability_mode.rb
nexpose_ticketing-1.5.1 lib/nexpose_ticketing/modes/vulnerability_mode.rb
nexpose_ticketing-1.5.0 lib/nexpose_ticketing/modes/vulnerability_mode.rb
nexpose_ticketing-1.4.2 lib/nexpose_ticketing/modes/vulnerability_mode.rb
nexpose_ticketing-1.4.1 lib/nexpose_ticketing/modes/vulnerability_mode.rb