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