class Nexpose::ScanSummary::Vulnerabilities
Value class for tracking vulnerability counts.
Attributes
disabled[R]
error[R]
not_vuln_exploit[R]
not_vuln_version[R]
other[R]
vuln_exploit[R]
vuln_potential[R]
vuln_version[R]
Public Class Methods
new(vuln_exploit, vuln_version, vuln_potential, not_vuln_exploit, not_vuln_version, error, disabled, other)
click to toggle source
# File lib/nexpose/scan.rb, line 662 def initialize(vuln_exploit, vuln_version, vuln_potential, not_vuln_exploit, not_vuln_version, error, disabled, other) @vuln_exploit = vuln_exploit @vuln_version = vuln_version @vuln_potential = vuln_potential @not_vuln_exploit = not_vuln_exploit @not_vuln_version = not_vuln_version @error = error @disabled = disabled @other = other end
parse(scan_id, rexml)
click to toggle source
Parse REXML to Vulnerabilities
object.
@param [FixNum] scan_id Scan
ID to collect vulnerability data for. @param [REXML::Document] rexml XML
document to parse. @return [Vulnerabilities] Vulnerability
summary represented by the XML
.
# File lib/nexpose/scan.rb, line 679 def self.parse(scan_id, rexml) return nil unless rexml map = {} rexml.elements.each("//ScanSummary[contains(@scan-id,'#{scan_id}')]/vulnerabilities") do |vuln| status = map[vuln.attributes['status']] if status && vuln.attributes['status'] =~ /^vuln-/ status.add_severity(vuln.attributes['severity'].to_i, vuln.attributes['count'].to_i) else map[vuln.attributes['status']] = Status.new(vuln.attributes['severity'], vuln.attributes['count'].to_i) end end Vulnerabilities.new(map['vuln-exploit'], map['vuln-version'], map['vuln-potential'], map['not-vuln-exploit'], map['not-vuln-version'], map['error'], map['disabled'], map['other']) end