Class: Nexpose::ScanSummary::Vulnerabilities

Inherits:
Object
  • Object
show all
Defined in:
lib/nexpose/scan.rb

Overview

Value class for tracking vulnerability counts.

Defined Under Namespace

Classes: Status

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(vuln_exploit, vuln_version, vuln_potential, not_vuln_exploit, not_vuln_version, error, disabled, other) ⇒ Vulnerabilities

Returns a new instance of Vulnerabilities.



204
205
206
207
208
209
210
211
212
213
# File 'lib/nexpose/scan.rb', line 204

def initialize(vuln_exploit, vuln_version, vuln_potential,
               not_vuln_exploit, not_vuln_version,
               error, disabled, other)
  @vuln_exploit, @vuln_version, @vuln_potential,
    @not_vuln_exploit, @not_vuln_version,
    @error, @disabled, @other =
    vuln_exploit, vuln_version, vuln_potential,
    not_vuln_exploit, not_vuln_version,
    error, disabled, other
end

Instance Attribute Details

#disabledObject (readonly)

Returns the value of attribute disabled.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def disabled
  @disabled
end

#errorObject (readonly)

Returns the value of attribute error.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def error
  @error
end

#not_vuln_exploitObject (readonly)

Returns the value of attribute not_vuln_exploit.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def not_vuln_exploit
  @not_vuln_exploit
end

#not_vuln_versionObject (readonly)

Returns the value of attribute not_vuln_version.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def not_vuln_version
  @not_vuln_version
end

#otherObject (readonly)

Returns the value of attribute other.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def other
  @other
end

#vuln_exploitObject (readonly)

Returns the value of attribute vuln_exploit.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def vuln_exploit
  @vuln_exploit
end

#vuln_potentialObject (readonly)

Returns the value of attribute vuln_potential.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def vuln_potential
  @vuln_potential
end

#vuln_versionObject (readonly)

Returns the value of attribute vuln_version.



200
201
202
# File 'lib/nexpose/scan.rb', line 200

def vuln_version
  @vuln_version
end

Class Method Details

.parse(scan_id, rexml) ⇒ Vulnerabilities

Parse REXML to Vulnerabilities object.

Parameters:

  • scan_id (FixNum)

    Scan ID to collect vulnerability data for.

  • rexml (REXML::Document)

    XML document to parse.

Returns:



221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
# File 'lib/nexpose/scan.rb', line 221

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