class Risu::Templates::HostFindingsCSV

Public Class Methods

new() click to toggle source
# File lib/risu/templates/host_findings_csv.rb, line 28
def initialize
        @template_info =
        {
                :name => "host_findings_csv",
                :author => "hammackj",
                :version => "0.0.3",
                :renderer => "CSV",
                :description => "Generates a findings report by host and outputs to CSV"

        }
end

Public Instance Methods

csv(risks) click to toggle source

Writes out a CSV block for the risks passed. @param risks, A query from the Plugin model of the risks

# File lib/risu/templates/host_findings_csv.rb, line 43
def csv risks
        risks.order(:cvss_base_score).each do |plugin|
                items = Item.where(:plugin_id => plugin.id).group(:host_id)

                items.each do |item|
                        # Skip all PostProcssed Items
                        if item.severity == -1
                                next
                        end

                        host = Host.where(:id => item.host_id).first

                        solution = plugin.solution.gsub("\n", " ").gsub(",", "")

                        @output.text "#{host.ip}, #{host.fqdn}, #{host.netbios}, #{item.plugin_name}, #{plugin.risk_factor}, #{plugin.cvss_base_score}, #{solution}"
                end
        end
end
render(output) click to toggle source

TODO doc

# File lib/risu/templates/host_findings_csv.rb, line 64
def render output
        @output.text "IP Address, FQDN, Netbios Name, Finding, Risk Factor, CVSS Base Score, Solution"
        csv Plugin.critical_risks.order(cvss_base_score: :desc)
        csv Plugin.high_risks.order(cvss_base_score: :desc)
end