risu 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.ci +2 -5
- data/KNOWNISSUES.markdown +12 -11
- data/LICENSE +11 -11
- data/NEWS.markdown +43 -8
- data/README.markdown +36 -32
- data/Rakefile +29 -9
- data/TODO.markdown +150 -77
- data/bin/risu +26 -0
- data/lib/risu.rb +27 -1
- data/lib/risu/base.rb +26 -0
- data/lib/risu/base/prawn_templater.rb +36 -8
- data/lib/risu/base/schema.rb +199 -163
- data/lib/risu/base/template_base.rb +34 -7
- data/lib/risu/base/template_manager.rb +37 -37
- data/lib/risu/base/templater.rb +36 -9
- data/lib/risu/cli.rb +26 -0
- data/lib/risu/cli/application.rb +72 -39
- data/lib/risu/cli/banner.rb +47 -21
- data/lib/risu/exceptions.rb +26 -0
- data/lib/risu/exceptions/invaliddocument.rb +30 -1
- data/lib/risu/models.rb +26 -0
- data/lib/risu/models/familyselection.rb +28 -2
- data/lib/risu/models/host.rb +59 -2
- data/lib/risu/models/individualpluginselection.rb +26 -1
- data/lib/risu/models/item.rb +132 -79
- data/lib/risu/models/patch.rb +26 -1
- data/lib/risu/models/plugin.rb +28 -2
- data/lib/risu/models/pluginspreference.rb +26 -2
- data/lib/risu/models/policy.rb +27 -2
- data/lib/risu/models/reference.rb +81 -20
- data/lib/risu/models/report.rb +33 -8
- data/lib/risu/models/serverpreference.rb +26 -1
- data/lib/risu/models/servicedescription.rb +26 -1
- data/lib/risu/models/version.rb +26 -1
- data/lib/risu/parsers.rb +29 -0
- data/lib/risu/parsers/nessus/nessus_document.rb +47 -14
- data/lib/risu/parsers/nessus/nessus_sax_listener.rb +45 -16
- data/lib/risu/parsers/nexpose/nexpose_document.rb +91 -0
- data/lib/risu/parsers/nexpose/simple_nexpose.rb +108 -0
- data/lib/risu/renderers.rb +26 -0
- data/lib/risu/renderers/nilrenderer.rb +30 -4
- data/lib/risu/templates/assets.rb +36 -10
- data/lib/risu/templates/cover_sheet.rb +34 -8
- data/lib/risu/templates/exec_summary.rb +45 -19
- data/lib/risu/templates/executive_summary.rb +37 -11
- data/lib/risu/templates/finding_statistics.rb +33 -7
- data/lib/risu/templates/findings_host.rb +44 -18
- data/lib/risu/templates/findings_summary.rb +43 -17
- data/lib/risu/templates/findings_summary_with_pluginid.rb +60 -18
- data/lib/risu/templates/graphs.rb +30 -0
- data/lib/risu/templates/host_summary.rb +34 -8
- data/lib/risu/templates/ms_patch_summary.rb +35 -9
- data/lib/risu/templates/ms_update_summary.rb +34 -8
- data/lib/risu/templates/ms_wsus_findings.rb +99 -0
- data/lib/risu/templates/notable.rb +39 -13
- data/lib/risu/templates/notable_detailed.rb +42 -16
- data/lib/risu/templates/pci_compliance.rb +40 -14
- data/lib/risu/templates/stig_findings_summary.rb +62 -36
- data/lib/risu/templates/technical_findings.rb +29 -3
- data/lib/risu/templates/template.rb +35 -9
- data/risu.gemspec +28 -7
- metadata +94 -101
data/lib/risu/renderers.rb
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
# Copyright (c) 2010-2012 Arxopia LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# * Redistributions of source code must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
# * Redistributions in binary form must reproduce the above copyright
|
10
|
+
# notice, this list of conditions and the following disclaimer in the
|
11
|
+
# documentation and/or other materials provided with the distribution.
|
12
|
+
# * Neither the name of the Arxopia LLC nor the names of its contributors
|
13
|
+
# may be used to endorse or promote products derived from this software
|
14
|
+
# without specific prior written permission.
|
15
|
+
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
# DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
24
|
+
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
25
|
+
#OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
|
1
27
|
module Risu
|
2
28
|
module Renderers
|
3
29
|
end
|
@@ -1,13 +1,39 @@
|
|
1
|
+
# Copyright (c) 2010-2012 Arxopia LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# * Redistributions of source code must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
# * Redistributions in binary form must reproduce the above copyright
|
10
|
+
# notice, this list of conditions and the following disclaimer in the
|
11
|
+
# documentation and/or other materials provided with the distribution.
|
12
|
+
# * Neither the name of the Arxopia LLC nor the names of its contributors
|
13
|
+
# may be used to endorse or promote products derived from this software
|
14
|
+
# without specific prior written permission.
|
15
|
+
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
# DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
24
|
+
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
25
|
+
#OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
|
1
27
|
module Risu
|
2
28
|
module Renderers
|
3
29
|
class NilRenderer
|
4
|
-
|
30
|
+
|
31
|
+
#
|
5
32
|
#
|
6
|
-
#
|
7
33
|
def text text, *args
|
8
34
|
true
|
9
35
|
end
|
10
|
-
|
36
|
+
|
11
37
|
#
|
12
38
|
#
|
13
39
|
def font_size x
|
@@ -19,7 +45,7 @@ module Risu
|
|
19
45
|
def start_new_page
|
20
46
|
true
|
21
47
|
end
|
22
|
-
|
48
|
+
|
23
49
|
end
|
24
50
|
end
|
25
51
|
end
|
@@ -1,32 +1,58 @@
|
|
1
|
+
# Copyright (c) 2010-2012 Arxopia LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# * Redistributions of source code must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
# * Redistributions in binary form must reproduce the above copyright
|
10
|
+
# notice, this list of conditions and the following disclaimer in the
|
11
|
+
# documentation and/or other materials provided with the distribution.
|
12
|
+
# * Neither the name of the Arxopia LLC nor the names of its contributors
|
13
|
+
# may be used to endorse or promote products derived from this software
|
14
|
+
# without specific prior written permission.
|
15
|
+
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
# DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
24
|
+
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
25
|
+
#OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
|
1
27
|
module Risu
|
2
28
|
module Templates
|
3
29
|
class Assets < Risu::Base::TemplateBase
|
4
|
-
|
30
|
+
|
5
31
|
#
|
6
32
|
#
|
7
33
|
def initialize ()
|
8
|
-
@template_info =
|
9
|
-
{
|
10
|
-
:name => "assets",
|
11
|
-
:author => "hammackj",
|
12
|
-
:version => "0.0.1",
|
34
|
+
@template_info =
|
35
|
+
{
|
36
|
+
:name => "assets",
|
37
|
+
:author => "hammackj",
|
38
|
+
:version => "0.0.1",
|
13
39
|
:description => "Generates a Assets Summary Report"
|
14
40
|
}
|
15
41
|
end
|
16
|
-
|
42
|
+
|
17
43
|
#undef :render if method_defined? :render
|
18
44
|
#
|
19
45
|
#
|
20
46
|
def render(output)
|
21
47
|
output.font_size 10
|
22
|
-
|
48
|
+
|
23
49
|
output.text Report.classification.upcase, :align => :center
|
24
50
|
output.text "\n"
|
25
51
|
|
26
52
|
output.font_size(22) do
|
27
|
-
output.text Report.title, :align => :center
|
53
|
+
output.text Report.title, :align => :center
|
28
54
|
end
|
29
|
-
|
55
|
+
|
30
56
|
output.font_size(18) do
|
31
57
|
output.text "Networked Assets", :align => :center
|
32
58
|
output.text "\n"
|
@@ -1,22 +1,48 @@
|
|
1
|
+
# Copyright (c) 2010-2012 Arxopia LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# * Redistributions of source code must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
# * Redistributions in binary form must reproduce the above copyright
|
10
|
+
# notice, this list of conditions and the following disclaimer in the
|
11
|
+
# documentation and/or other materials provided with the distribution.
|
12
|
+
# * Neither the name of the Arxopia LLC nor the names of its contributors
|
13
|
+
# may be used to endorse or promote products derived from this software
|
14
|
+
# without specific prior written permission.
|
15
|
+
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
# DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
24
|
+
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
25
|
+
#OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
|
1
27
|
module Risu
|
2
28
|
module Templates
|
3
29
|
class CoverSheet < Risu::Base::TemplateBase
|
4
|
-
|
30
|
+
|
5
31
|
#
|
6
32
|
#
|
7
33
|
def initialize ()
|
8
|
-
@template_info =
|
9
|
-
{
|
10
|
-
:name => "cover_sheet",
|
11
|
-
:author => "hammackj",
|
12
|
-
:version => "0.0.2",
|
34
|
+
@template_info =
|
35
|
+
{
|
36
|
+
:name => "cover_sheet",
|
37
|
+
:author => "hammackj",
|
38
|
+
:version => "0.0.2",
|
13
39
|
:description => "Generates a coversheet with a logo (Example Template)"
|
14
40
|
}
|
15
41
|
end
|
16
|
-
|
42
|
+
|
17
43
|
#
|
18
44
|
#
|
19
|
-
def render(output)
|
45
|
+
def render(output)
|
20
46
|
output.image "#{File.expand_path(File.dirname(__FILE__))}/data/nessuslogo.jpg", :scale => 0.2, :position => :left, :vposition => :top
|
21
47
|
|
22
48
|
output.text "\n"
|
@@ -1,19 +1,45 @@
|
|
1
|
+
# Copyright (c) 2010-2012 Arxopia LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# * Redistributions of source code must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
# * Redistributions in binary form must reproduce the above copyright
|
10
|
+
# notice, this list of conditions and the following disclaimer in the
|
11
|
+
# documentation and/or other materials provided with the distribution.
|
12
|
+
# * Neither the name of the Arxopia LLC nor the names of its contributors
|
13
|
+
# may be used to endorse or promote products derived from this software
|
14
|
+
# without specific prior written permission.
|
15
|
+
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
# DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
24
|
+
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
25
|
+
#OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
|
1
27
|
module Risu
|
2
28
|
module Templates
|
3
29
|
class ExecSummary < Risu::Base::TemplateBase
|
4
|
-
|
30
|
+
|
5
31
|
#
|
6
32
|
#
|
7
33
|
def initialize ()
|
8
|
-
@template_info =
|
9
|
-
{
|
10
|
-
:name => "exec_summary",
|
11
|
-
:author => "hammackj",
|
12
|
-
:version => "0.0.
|
34
|
+
@template_info =
|
35
|
+
{
|
36
|
+
:name => "exec_summary",
|
37
|
+
:author => "hammackj",
|
38
|
+
:version => "0.0.3",
|
13
39
|
:description => "Generates a simple executive summary."
|
14
40
|
}
|
15
41
|
end
|
16
|
-
|
42
|
+
|
17
43
|
#
|
18
44
|
#
|
19
45
|
def render(output)
|
@@ -21,9 +47,9 @@ module Risu
|
|
21
47
|
output.text "\n"
|
22
48
|
|
23
49
|
output.font_size(22) do
|
24
|
-
output.text Report.title, :align => :center
|
50
|
+
output.text Report.title, :align => :center
|
25
51
|
end
|
26
|
-
|
52
|
+
|
27
53
|
output.font_size(18) do
|
28
54
|
output.text "Executive Summary", :align => :center
|
29
55
|
output.text "\n"
|
@@ -38,7 +64,7 @@ module Risu
|
|
38
64
|
|
39
65
|
output.text "This report contains the results of a security audit performed on #{Report.scan_date}. It contains confidential information about the state of your network. Access to this information by unauthorized personnel may allow them to compromise your network.\n\n"
|
40
66
|
|
41
|
-
output.text "A total of #{Host.count} hosts were found and scanned for
|
67
|
+
output.text "A total of #{Host.count} hosts were found and scanned for vulnerabilities.\n\n"
|
42
68
|
|
43
69
|
output.text "There were #{Item.risks.count} vulnerabilities found during this scan. Of these, #{Item.critical_risks.count} were critical vulnerabilities,#{Item.high_risks.count} were high vulnerabilities, #{Item.medium_risks.count} were medium vulnerabilities, #{Item.low_risks.count} were low vulnerabilities and #{Item.info_risks.count} were information findings.\n\n"
|
44
70
|
|
@@ -46,21 +72,21 @@ module Risu
|
|
46
72
|
output.text "\n"
|
47
73
|
|
48
74
|
output.table([[
|
49
|
-
"Number of hosts",
|
75
|
+
"Number of hosts",
|
50
76
|
"Number of risks",
|
51
77
|
"Critical Risks",
|
52
78
|
"High Risks",
|
53
79
|
"Medium Risks",
|
54
80
|
"Low Risks",
|
55
|
-
"Info Risks"],
|
81
|
+
"Info Risks"],
|
56
82
|
[
|
57
|
-
Host.count,
|
83
|
+
Host.count,
|
58
84
|
Item.risks.count,
|
59
85
|
Item.critical_risks.count,
|
60
|
-
Item.high_risks.count,
|
61
|
-
Item.medium_risks.count,
|
62
|
-
Item.low_risks.count,
|
63
|
-
Item.info_risks.count]],
|
86
|
+
Item.high_risks.count,
|
87
|
+
Item.medium_risks.count,
|
88
|
+
Item.low_risks.count,
|
89
|
+
Item.info_risks.count]],
|
64
90
|
:cell_style => { :padding =>12 }, :width => output.bounds.width)
|
65
91
|
output.text "\n\n\n"
|
66
92
|
|
@@ -71,7 +97,7 @@ module Risu
|
|
71
97
|
output.image Item.risks_by_severity_graph, :width => 250, :at => [output.bounds.left, cury]
|
72
98
|
output.image Host.top_vuln_graph(10), :width => 250, :at => [output.bounds.right - 250, cury]
|
73
99
|
output.move_down 50
|
74
|
-
if (output.y <= 300)
|
100
|
+
if (output.y <= 300)
|
75
101
|
output.start_new_page
|
76
102
|
output.move_down 75
|
77
103
|
end
|
@@ -79,7 +105,7 @@ module Risu
|
|
79
105
|
output.image Item.risks_by_service_graph(10), :width => 250, :at => [output.bounds.left, cury]
|
80
106
|
output.image Host.other_os_graph, :width => 250, :at => [output.bounds.right - 250, cury]
|
81
107
|
output.move_down 250
|
82
|
-
#if (y <= 300)
|
108
|
+
#if (y <= 300)
|
83
109
|
# output.start_new_page
|
84
110
|
# cury = y
|
85
111
|
#end
|
@@ -1,3 +1,29 @@
|
|
1
|
+
# Copyright (c) 2010-2012 Arxopia LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# * Redistributions of source code must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
# * Redistributions in binary form must reproduce the above copyright
|
10
|
+
# notice, this list of conditions and the following disclaimer in the
|
11
|
+
# documentation and/or other materials provided with the distribution.
|
12
|
+
# * Neither the name of the Arxopia LLC nor the names of its contributors
|
13
|
+
# may be used to endorse or promote products derived from this software
|
14
|
+
# without specific prior written permission.
|
15
|
+
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
# DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
24
|
+
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
25
|
+
#OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
|
1
27
|
module Risu
|
2
28
|
module Templates
|
3
29
|
class ExecutiveSummaryDetailed < Risu::Base::TemplateBase
|
@@ -9,7 +35,7 @@ module Risu
|
|
9
35
|
{
|
10
36
|
:name => "exec_summary_detailed",
|
11
37
|
:author => "Ed Davison <EDavison@getmns.com>",
|
12
|
-
:version => "0.0.
|
38
|
+
:version => "0.0.4",
|
13
39
|
:description => "Generates a detailed executive summary report"
|
14
40
|
}
|
15
41
|
end
|
@@ -65,17 +91,17 @@ module Risu
|
|
65
91
|
"Number of hosts",
|
66
92
|
"Number of risks",
|
67
93
|
"Critical Risks",
|
68
|
-
"High Risks",
|
69
|
-
"Medium Risks",
|
70
|
-
"Low Risks",
|
94
|
+
"High Risks",
|
95
|
+
"Medium Risks",
|
96
|
+
"Low Risks",
|
71
97
|
"Info Risks"]
|
72
98
|
data = [[
|
73
|
-
Host.count,
|
99
|
+
Host.count,
|
74
100
|
Item.risks.count,
|
75
|
-
Item.critical_risks.count,
|
76
|
-
Item.high_risks.count,
|
77
|
-
Item.medium_risks.count,
|
78
|
-
Item.low_risks.count,
|
101
|
+
Item.critical_risks.count,
|
102
|
+
Item.high_risks.count,
|
103
|
+
Item.medium_risks.count,
|
104
|
+
Item.low_risks.count,
|
79
105
|
Item.info_risks.count]]
|
80
106
|
|
81
107
|
output.table([headers] + data, :header => true, :row_colors => ['ffffff', 'f0f0f0']) do
|
@@ -85,7 +111,7 @@ module Risu
|
|
85
111
|
|
86
112
|
output.text "\n\n\n"
|
87
113
|
|
88
|
-
output.text "A total of #{Host.count} hosts were found and scanned for
|
114
|
+
output.text "A total of #{Host.count} hosts were found and scanned for vulnerabilities.\n"
|
89
115
|
output.text "\n"
|
90
116
|
|
91
117
|
output.text "There were #{Item.risks.count} risks found during this scan. Of these, #{Item.high_risks.count} were High risk vulnerabilities. High risk vulnerabilities require immediate attention to handle as they are relatively easy for attackers to exploit frequently resulting in full access to affected systems. There were #{Item.medium_risks.count} findings which were Medium risk. High risk vulnerabilities are harder to exploit and may not result in full control of the affected system and should be addressed rapidly and with priority. There were #{Item.low_risks.count} findings which were Low risk vulnerabilities. These risks usually let attackers gain information about your network making it easier for launching more advanced attacks and should be handled in a timely manner. And #{Item.info_risks.count} findings which were information findings.\n"
|
@@ -100,7 +126,7 @@ module Risu
|
|
100
126
|
output.text "There were #{crit_host_count} hosts with Critical risk vulnerabilities, #{high_host_count} hosts with High risk vulnerabilities, #{medium_host_count} hosts with Medium risk vulnerabilities, #{low_host_count} hosts with Low risk vulnerabilities and #{info_host_count} hosts with information findings."
|
101
127
|
output.text "\n"
|
102
128
|
|
103
|
-
output.text "The following output.table shows the top 5 vulnerabilities that were found. These are the most important vulnerabilities to address as they represent a
|
129
|
+
output.text "The following output.table shows the top 5 vulnerabilities that were found. These are the most important vulnerabilities to address as they represent a sizable footprint for an attacker to exploit in an attempt to compromise.\n"
|
104
130
|
output.text "\n"
|
105
131
|
|
106
132
|
results = Array.new
|
@@ -1,19 +1,45 @@
|
|
1
|
+
# Copyright (c) 2010-2012 Arxopia LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without
|
5
|
+
# modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# * Redistributions of source code must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
# * Redistributions in binary form must reproduce the above copyright
|
10
|
+
# notice, this list of conditions and the following disclaimer in the
|
11
|
+
# documentation and/or other materials provided with the distribution.
|
12
|
+
# * Neither the name of the Arxopia LLC nor the names of its contributors
|
13
|
+
# may be used to endorse or promote products derived from this software
|
14
|
+
# without specific prior written permission.
|
15
|
+
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
17
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
# DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
24
|
+
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
25
|
+
#OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
|
1
27
|
module Risu
|
2
28
|
module Templates
|
3
29
|
class FindingStatistics < Risu::Base::TemplateBase
|
4
|
-
|
30
|
+
|
5
31
|
#
|
6
32
|
#
|
7
33
|
def initialize ()
|
8
|
-
@template_info =
|
9
|
-
{
|
10
|
-
:name => "finding_statistics",
|
11
|
-
:author => "hammackj",
|
12
|
-
:version => "0.0.1",
|
34
|
+
@template_info =
|
35
|
+
{
|
36
|
+
:name => "finding_statistics",
|
37
|
+
:author => "hammackj",
|
38
|
+
:version => "0.0.1",
|
13
39
|
:description => "Generates report finding statistics"
|
14
40
|
}
|
15
41
|
end
|
16
|
-
|
42
|
+
|
17
43
|
#
|
18
44
|
#
|
19
45
|
def render(output)
|