Class: Nexpose::Filter

Inherits:
Object
  • Object
show all
Includes:
Sanitize
Defined in:
lib/nexpose/report.rb

Overview

Object that represents a report filter which determines which sites, asset groups, and/or assets that a report is run against.

The configuration must include at least one of asset, site, group (asset group) or scan filter to define the scope of report. The vuln-status filter can be used only with raw report formats: csv or raw_xml. If the vuln-status filter is not included in the configuration, all the vulnerability test results (including invulnerable instances) are exported by default in csv and raw_xml reports.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Sanitize

#replace_entities

Constructor Details

#initialize(type, id) ⇒ Filter

Returns a new instance of Filter.



439
440
441
442
# File 'lib/nexpose/report.rb', line 439

def initialize(type, id)
  @type = type
  @id = id
end

Instance Attribute Details

#idObject (readonly)

The ID of the specific site, group, asset, or scan. For scan, this can also be “last” for the most recently run scan. For vuln-status, the ID can have one of the following values:

  1. vulnerable-exploited (The check was positive. An exploit verified the vulnerability.)

  2. vulnerable-version (The check was positive. The version of the scanned service or software is associated with known vulnerabilities.)

  3. potential (The check for a potential vulnerability was positive.)

These values are supported for CSV and XML formats.



435
436
437
# File 'lib/nexpose/report.rb', line 435

def id
  @id
end

#typeObject (readonly)

One of: site|group|device|scan|vuln-categories|vuln-severity|vuln-status|cyberscope-component|cyberscope-bureau|cyberscope-enclave|tag



437
438
439
# File 'lib/nexpose/report.rb', line 437

def type
  @type
end

Class Method Details

.parse(xml) ⇒ Object



452
453
454
455
456
457
458
# File 'lib/nexpose/report.rb', line 452

def self.parse(xml)
  filters = []
  xml.res.elements.each('//Filters/filter') do |filter|
    filters << Filter.new(filter.attributes['type'], filter.attributes['id'])
  end
  filters
end

Instance Method Details

#==(other) ⇒ Object



448
449
450
# File 'lib/nexpose/report.rb', line 448

def ==(other)
  other.equal?(self) || (other.instance_of?(self.class) && other.type == @type && other.id == @id)
end

#to_xmlObject



444
445
446
# File 'lib/nexpose/report.rb', line 444

def to_xml
  %(<filter id="#{replace_entities(@id)}" type="#{@type}" />)
end