codesake-dawn 0.50 → 0.60

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.
Files changed (80) hide show
  1. data/.ruby-gemset +1 -0
  2. data/.ruby-version +1 -0
  3. data/Competitive_matrix.md +148 -0
  4. data/README.md +105 -14
  5. data/Rakefile +24 -17
  6. data/Roadmap.md +166 -9
  7. data/TODO.md +59 -0
  8. data/bin/dawn +60 -7
  9. data/codesake_dawn.gemspec +4 -1
  10. data/features/dawn_complains_about_an_incorrect_command_line.feature +21 -0
  11. data/features/dawn_scan_a_secure_sinatra_app.feature +31 -0
  12. data/features/step_definition/dawn_steps.rb +13 -0
  13. data/features/support/env.rb +1 -0
  14. data/lib/codesake/dawn/engine.rb +30 -1
  15. data/lib/codesake/dawn/kb/basic_check.rb +37 -1
  16. data/lib/codesake/dawn/kb/cve_2011_2931.rb +1 -1
  17. data/lib/codesake/dawn/kb/cve_2012_2660.rb +1 -1
  18. data/lib/codesake/dawn/kb/cve_2012_2661.rb +1 -1
  19. data/lib/codesake/dawn/kb/cve_2012_2694.rb +2 -1
  20. data/lib/codesake/dawn/kb/cve_2012_2695.rb +1 -1
  21. data/lib/codesake/dawn/kb/cve_2012_3465.rb +1 -1
  22. data/lib/codesake/dawn/kb/cve_2012_6496.rb +1 -1
  23. data/lib/codesake/dawn/kb/cve_2012_6497.rb +1 -1
  24. data/lib/codesake/dawn/kb/cve_2013_0155.rb +2 -1
  25. data/lib/codesake/dawn/kb/cve_2013_0156.rb +29 -0
  26. data/lib/codesake/dawn/kb/cve_2013_0175.rb +29 -0
  27. data/lib/codesake/dawn/kb/cve_2013_0233.rb +28 -0
  28. data/lib/codesake/dawn/kb/cve_2013_0269.rb +1 -1
  29. data/lib/codesake/dawn/kb/cve_2013_0276.rb +30 -0
  30. data/lib/codesake/dawn/kb/cve_2013_0277.rb +27 -0
  31. data/lib/codesake/dawn/kb/cve_2013_0284.rb +29 -0
  32. data/lib/codesake/dawn/kb/cve_2013_0285.rb +29 -0
  33. data/lib/codesake/dawn/kb/cve_2013_0333.rb +1 -1
  34. data/lib/codesake/dawn/kb/cve_2013_1655.rb +31 -0
  35. data/lib/codesake/dawn/kb/cve_2013_1656.rb +30 -0
  36. data/lib/codesake/dawn/kb/cve_2013_1800.rb +1 -1
  37. data/lib/codesake/dawn/kb/cve_2013_1801.rb +29 -0
  38. data/lib/codesake/dawn/kb/cve_2013_1802.rb +29 -0
  39. data/lib/codesake/dawn/kb/cve_2013_1821.rb +30 -0
  40. data/lib/codesake/dawn/kb/cve_2013_1854.rb +28 -0
  41. data/lib/codesake/dawn/kb/cve_2013_1855.rb +11 -4
  42. data/lib/codesake/dawn/kb/cve_2013_1856.rb +28 -0
  43. data/lib/codesake/dawn/kb/cve_2013_1857.rb +11 -4
  44. data/lib/codesake/dawn/kb/cve_2013_1875.rb +29 -0
  45. data/lib/codesake/dawn/kb/cve_2013_1898.rb +29 -0
  46. data/lib/codesake/dawn/kb/cve_2013_1911.rb +30 -0
  47. data/lib/codesake/dawn/kb/cve_2013_1933.rb +29 -0
  48. data/lib/codesake/dawn/kb/cve_2013_1947.rb +29 -0
  49. data/lib/codesake/dawn/kb/cve_2013_1948.rb +29 -0
  50. data/lib/codesake/dawn/kb/cve_2013_2615.rb +29 -0
  51. data/lib/codesake/dawn/kb/cve_2013_2616.rb +29 -0
  52. data/lib/codesake/dawn/kb/cve_2013_2617.rb +30 -0
  53. data/lib/codesake/dawn/kb/cve_2013_3221.rb +29 -0
  54. data/lib/codesake/dawn/kb/dependency_check.rb +21 -4
  55. data/lib/codesake/dawn/kb/pattern_match_check.rb +1 -0
  56. data/lib/codesake/dawn/kb/ruby_version_check.rb +50 -0
  57. data/lib/codesake/dawn/knowledge_base.rb +59 -8
  58. data/lib/codesake/dawn/version.rb +1 -1
  59. data/spec/lib/dawn/codesake_knowledgebase_spec.rb +130 -0
  60. data/spec/lib/dawn/codesake_rails_engine_spec.rb +12 -0
  61. data/spec/lib/dawn/codesake_sinatra_engine_spec.rb +4 -0
  62. data/spec/lib/kb/codesake_cve_2013_0175_spec.rb +35 -0
  63. data/spec/lib/kb/codesake_ruby_version_check_spec.rb +39 -0
  64. data/spec/spec_helper.rb +1 -1
  65. metadata +100 -38
  66. data/.rvmrc +0 -48
  67. data/spec/lib/kb/codesake_cve_2013_1800_spec.rb +0 -66
  68. data/spec/lib/kb/codesake_cve_2013_1855_spec.rb +0 -16
  69. data/spec/lib/kb/cve_2011_2931_spec.rb +0 -7
  70. data/spec/lib/kb/cve_2012_2660_spec.rb +0 -9
  71. data/spec/lib/kb/cve_2012_2661_spec.rb +0 -7
  72. data/spec/lib/kb/cve_2012_2694_spec.rb +0 -7
  73. data/spec/lib/kb/cve_2012_2695_spec.rb +0 -7
  74. data/spec/lib/kb/cve_2012_3465_spec.rb +0 -7
  75. data/spec/lib/kb/cve_2012_6496_spec.rb +0 -7
  76. data/spec/lib/kb/cve_2012_6497_spec.rb +0 -7
  77. data/spec/lib/kb/cve_2013_0155_spec.rb +0 -7
  78. data/spec/lib/kb/cve_2013_0269_spec.rb +0 -7
  79. data/spec/lib/kb/cve_2013_0333_spec.rb +0 -7
  80. data/spec/lib/kb/cve_2013_1857_spec.rb +0 -13
@@ -2,6 +2,7 @@
2
2
  require "codesake/dawn/kb/basic_check"
3
3
  require "codesake/dawn/kb/pattern_match_check"
4
4
  require "codesake/dawn/kb/dependency_check"
5
+ require "codesake/dawn/kb/ruby_version_check"
5
6
 
6
7
  # Q&A related checks
7
8
  require "codesake/dawn/kb/not_revised_code"
@@ -19,12 +20,37 @@ require "codesake/dawn/kb/cve_2012_6496"
19
20
  require "codesake/dawn/kb/cve_2012_6497"
20
21
 
21
22
  # CVE - 2013
23
+ require "codesake/dawn/kb/cve_2013_0155"
24
+ require "codesake/dawn/kb/cve_2013_0156"
25
+ require "codesake/dawn/kb/cve_2013_0175"
26
+ require "codesake/dawn/kb/cve_2013_0233"
27
+ require "codesake/dawn/kb/cve_2013_0269"
28
+ require "codesake/dawn/kb/cve_2013_0276"
29
+ require "codesake/dawn/kb/cve_2013_0277"
30
+ require "codesake/dawn/kb/cve_2013_0284"
31
+ require "codesake/dawn/kb/cve_2013_0285"
32
+ require "codesake/dawn/kb/cve_2013_0333"
33
+ require "codesake/dawn/kb/cve_2013_1655"
34
+ require "codesake/dawn/kb/cve_2013_1656"
35
+ require "codesake/dawn/kb/cve_2013_1800"
36
+ require "codesake/dawn/kb/cve_2013_1801"
37
+ require "codesake/dawn/kb/cve_2013_1802"
38
+ require "codesake/dawn/kb/cve_2013_1821"
39
+ require "codesake/dawn/kb/cve_2013_1854"
22
40
  require "codesake/dawn/kb/cve_2013_1855"
41
+ require "codesake/dawn/kb/cve_2013_1856"
23
42
  require "codesake/dawn/kb/cve_2013_1857"
24
- require "codesake/dawn/kb/cve_2013_1800"
25
- require "codesake/dawn/kb/cve_2013_0333"
26
- require "codesake/dawn/kb/cve_2013_0269"
27
- require "codesake/dawn/kb/cve_2013_0155"
43
+ require "codesake/dawn/kb/cve_2013_1875"
44
+ require "codesake/dawn/kb/cve_2013_1898"
45
+ require "codesake/dawn/kb/cve_2013_1911"
46
+ require "codesake/dawn/kb/cve_2013_1933"
47
+ require "codesake/dawn/kb/cve_2013_1947"
48
+ require "codesake/dawn/kb/cve_2013_1948"
49
+ require "codesake/dawn/kb/cve_2013_2615"
50
+ require "codesake/dawn/kb/cve_2013_2616"
51
+ require "codesake/dawn/kb/cve_2013_2617"
52
+ require "codesake/dawn/kb/cve_2013_3221"
53
+
28
54
 
29
55
  module Codesake
30
56
  module Dawn
@@ -33,6 +59,7 @@ module Codesake
33
59
 
34
60
  DEPENDENCY_CHECK = :dependency_check
35
61
  PATTERN_MATCH_CHECK = :pattern_match_check
62
+ RUBY_VERSION_CHECK = :ruby_version_check
36
63
 
37
64
  def initialize
38
65
  @security_checks = Codesake::Dawn::KnowledgeBase.load_security_checks
@@ -91,12 +118,36 @@ module Codesake
91
118
  Codesake::Dawn::Kb::CVE_2012_3465.new,
92
119
  Codesake::Dawn::Kb::CVE_2012_6496.new,
93
120
  Codesake::Dawn::Kb::CVE_2012_6497.new,
94
- Codesake::Dawn::Kb::CVE_2013_1855.new,
95
- Codesake::Dawn::Kb::CVE_2013_1800.new,
96
- Codesake::Dawn::Kb::CVE_2013_0333.new,
121
+ Codesake::Dawn::Kb::CVE_2013_0155.new,
122
+ Codesake::Dawn::Kb::CVE_2013_0156.new,
123
+ Codesake::Dawn::Kb::CVE_2013_0175.new,
124
+ Codesake::Dawn::Kb::CVE_2013_0233.new,
97
125
  Codesake::Dawn::Kb::CVE_2013_0269.new,
126
+ Codesake::Dawn::Kb::CVE_2013_0276.new,
127
+ Codesake::Dawn::Kb::CVE_2013_0277.new,
128
+ Codesake::Dawn::Kb::CVE_2013_0284.new,
129
+ Codesake::Dawn::Kb::CVE_2013_0285.new,
130
+ Codesake::Dawn::Kb::CVE_2013_0333.new,
131
+ Codesake::Dawn::Kb::CVE_2013_1655.new,
132
+ Codesake::Dawn::Kb::CVE_2013_1656.new,
133
+ Codesake::Dawn::Kb::CVE_2013_1800.new,
134
+ Codesake::Dawn::Kb::CVE_2013_1801.new,
135
+ Codesake::Dawn::Kb::CVE_2013_1802.new,
136
+ Codesake::Dawn::Kb::CVE_2013_1821.new,
137
+ Codesake::Dawn::Kb::CVE_2013_1854.new,
138
+ Codesake::Dawn::Kb::CVE_2013_1855.new,
139
+ Codesake::Dawn::Kb::CVE_2013_1856.new,
98
140
  Codesake::Dawn::Kb::CVE_2013_1857.new,
99
- Codesake::Dawn::Kb::CVE_2013_0155.new,
141
+ Codesake::Dawn::Kb::CVE_2013_1875.new,
142
+ Codesake::Dawn::Kb::CVE_2013_1898.new,
143
+ Codesake::Dawn::Kb::CVE_2013_1911.new,
144
+ Codesake::Dawn::Kb::CVE_2013_1933.new,
145
+ Codesake::Dawn::Kb::CVE_2013_1947.new,
146
+ Codesake::Dawn::Kb::CVE_2013_1948.new,
147
+ Codesake::Dawn::Kb::CVE_2013_2615.new,
148
+ Codesake::Dawn::Kb::CVE_2013_2616.new,
149
+ Codesake::Dawn::Kb::CVE_2013_2617.new,
150
+ Codesake::Dawn::Kb::CVE_2013_3221.new,
100
151
  ]
101
152
  end
102
153
  end
@@ -1,5 +1,5 @@
1
1
  module Codesake
2
2
  module Dawn
3
- VERSION = "0.50"
3
+ VERSION = "0.60"
4
4
  end
5
5
  end
@@ -96,5 +96,135 @@ describe "The Codesake Dawn knowledge base" do
96
96
  sc.class.should == Codesake::Dawn::Kb::CVE_2012_3465
97
97
  end
98
98
 
99
+ it "must have test for CVE_2013_1854" do
100
+ sc = kb.find("CVE-2013-1854")
101
+ sc.should_not be_nil
102
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1854
103
+ end
104
+
105
+ it "must have test for CVE_2013_1856" do
106
+ sc = kb.find("CVE-2013-1856")
107
+ sc.should_not be_nil
108
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1856
109
+ end
110
+
111
+ it "must have test for CVE_2013_0276" do
112
+ sc = kb.find("CVE-2013-0276")
113
+ sc.should_not be_nil
114
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_0276
115
+ end
116
+
117
+ it "must have test for CVE_2013_0277" do
118
+ sc = kb.find("CVE-2013-0277")
119
+ sc.should_not be_nil
120
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_0277
121
+ end
122
+
123
+ it "must have test for CVE_2013_0156" do
124
+ sc = kb.find("CVE-2013-0156")
125
+ sc.should_not be_nil
126
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_0156
127
+ end
128
+
129
+ it "must have test for CVE-2013-2615" do
130
+ sc = kb.find("CVE-2013-2615")
131
+ sc.should_not be_nil
132
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_2615
133
+ end
134
+
135
+ it "must have test for CVE-2013-1875" do
136
+ sc = kb.find("CVE-2013-1875")
137
+ sc.should_not be_nil
138
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1875
139
+ end
140
+
141
+ it "must have test for CVE-2013-1655" do
142
+ sc = kb.find("CVE-2013-1655")
143
+ sc.should_not be_nil
144
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1655
145
+ end
146
+ it "must have test for CVE-2013-1656" do
147
+ sc = kb.find("CVE-2013-1656")
148
+ sc.should_not be_nil
149
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1656
150
+ end
151
+
152
+ it "must have test for CVE-2013-0175" do
153
+ sc = kb.find("CVE-2013-0175")
154
+ sc.should_not be_nil
155
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_0175
156
+ end
157
+ it "must have test for CVE-2013-0233" do
158
+ sc = kb.find("CVE-2013-0233")
159
+ sc.should_not be_nil
160
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_0233
161
+ end
162
+ it "must have test for CVE-2013-0284" do
163
+ sc = kb.find("CVE-2013-0284")
164
+ sc.should_not be_nil
165
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_0284
166
+ end
167
+ it "must have test for CVE-2013-0285" do
168
+ sc = kb.find("CVE-2013-0285")
169
+ sc.should_not be_nil
170
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_0285
171
+ end
172
+ it "must have test for CVE-2013-1801" do
173
+ sc = kb.find("CVE-2013-1801")
174
+ sc.should_not be_nil
175
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1801
176
+ end
177
+ it "must have test for CVE-2013-1802" do
178
+ sc = kb.find("CVE-2013-1802")
179
+ sc.should_not be_nil
180
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1802
181
+ end
182
+ it "must have test for CVE-2013-1821" do
183
+ sc = kb.find("CVE-2013-1821")
184
+ sc.should_not be_nil
185
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1821
186
+ end
187
+ it "must have test for CVE-2013-1898" do
188
+ sc = kb.find("CVE-2013-1898")
189
+ sc.should_not be_nil
190
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1898
191
+ end
192
+ it "must have test for CVE-2013-1911" do
193
+ sc = kb.find("CVE-2013-1911")
194
+ sc.should_not be_nil
195
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1911
196
+ end
197
+ it "must have test for CVE-2013-1933" do
198
+ sc = kb.find("CVE-2013-1933")
199
+ sc.should_not be_nil
200
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1933
201
+ end
202
+ it "must have test for CVE-2013-1947" do
203
+ sc = kb.find("CVE-2013-1947")
204
+ sc.should_not be_nil
205
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1947
206
+ end
207
+ it "must have test for CVE-2013-1948" do
208
+ sc = kb.find("CVE-2013-1948")
209
+ sc.should_not be_nil
210
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_1948
211
+ end
212
+ it "must have test for CVE-2013-2616" do
213
+ sc = kb.find("CVE-2013-2616")
214
+ sc.should_not be_nil
215
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_2616
216
+ end
217
+ it "must have test for CVE-2013-2617" do
218
+ sc = kb.find("CVE-2013-2617")
219
+ sc.should_not be_nil
220
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_2617
221
+ end
222
+ it "must have test for CVE-2013-3221" do
223
+ sc = kb.find("CVE-2013-3221")
224
+ sc.should_not be_nil
225
+ sc.class.should == Codesake::Dawn::Kb::CVE_2013_3221
226
+ end
227
+
228
+
99
229
 
100
230
  end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe "The Codesake::Dawn engine for rails applications" do
4
+ before(:all){@engine = Codesake::Dawn::Rails.new}
5
+
6
+ it "detects the version used in the hello_world_3.1.0 application" do
7
+ @engine.set_target("./spec/support/hello_world_3.1.0")
8
+ @engine.ruby_version[:version].should == RUBY_VERSION
9
+ @engine.ruby_version[:patchlevel].should == "p#{RUBY_PATCHLEVEL}"
10
+ end
11
+
12
+ end
@@ -60,6 +60,10 @@ describe "The Codesake::Dawn engine for sinatra applications" do
60
60
  @engine.target_is_dir?.should be_true
61
61
  end
62
62
 
63
+ it "detects running ruby as the one to be checked against" do
64
+ @engine.ruby_version[:version].should == RUBY_VERSION
65
+ end
66
+
63
67
  it "reports it's vulnerable to CVE-2013-1800" do
64
68
  @engine.is_vulnerable_to?("CVE-2013-1800").should be_true
65
69
  end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe "CVE-2013-0175 security check" do
4
+ let (:check) {Codesake::Dawn::Kb::CVE_2013_0175.new}
5
+ it "knows its name" do
6
+ check.name.should == "CVE-2013-0175"
7
+ end
8
+ it "has a 7.5 cvss score" do
9
+ check.cvss_score == 7.5
10
+ end
11
+
12
+ it "fires when multi_xml vulnerable gem it has been found" do
13
+ check.dependencies = [{:name=>"multi_xml", :version=>"0.5.2"}]
14
+ check.vuln?.should be_true
15
+ end
16
+ it "fires when Grape vulnerable gem it has been found" do
17
+ check.dependencies = [{:name=>"grape", :version=>"0.2.5"}]
18
+ check.vuln?.should be_true
19
+ end
20
+ it "fires when multi_xml gem is not vulnerable but Grape is" do
21
+ check.dependencies = [{:name=>"grape", :version=>"0.2.5"}, {:name=>"multi_xml", :version=>"0.5.3"}]
22
+ check.vuln?.should be_true
23
+ end
24
+ it "fires when multi_xml gem is vulnerable but Grape is not" do
25
+ check.dependencies = [{:name=>"grape", :version=>"0.2.6"}, {:name=>"multi_xml", :version=>"0.5.2"}]
26
+ check.vuln?.should be_true
27
+ end
28
+
29
+ it "doesn't fire when no vulnerabilities were found" do
30
+ check.dependencies = [{:name=>"grape", :version=>"0.2.6"}, {:name=>"multi_xml", :version=>"0.5.3"}]
31
+ check.vuln?.should be_false
32
+ end
33
+
34
+
35
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ class Mockup
4
+ include Codesake::Dawn::Kb::RubyVersionCheck
5
+
6
+ def initialize
7
+ message = "This is a mock"
8
+ super(
9
+ :kind=>Codesake::Dawn::KnowledgeBase::RUBY_VERSION_CHECK,
10
+ :applies=>['sinatra', 'padrino', 'rails'],
11
+ :message=> message
12
+ )
13
+
14
+ self.safe_rubies = [{:version=>"1.9.3", :patchlevel=>"p392"}, {:version=>"2.0.0", :patchlevel=>"p0"}]
15
+ end
16
+ end
17
+
18
+ describe "The security check for Ruby interpreter version" do
19
+ let (:check) {Mockup.new}
20
+
21
+ it "fires if ruby version is vulnerable" do
22
+ check.detected_ruby = {:version=>"1.9.2", :patchlevel=>"p10000"}
23
+ check.vuln?.should be_true
24
+ end
25
+ it "doesn't fire if ruby version is not vulnerable and patchlevel is not vulnerable" do
26
+ check.detected_ruby = {:version=>"1.9.4", :patchlevel=>"p10000"}
27
+ check.vuln?.should be_false
28
+ end
29
+
30
+ it "doesn't fire if ruby version is vulnerable and patchlevel is not vulnerable" do
31
+ check.detected_ruby = {:version=>"1.9.3", :patchlevel=>"p10000"}
32
+ check.vuln?.should be_false
33
+ end
34
+
35
+ it "fires if ruby version is vulnerable and patchlevel is vulnerable" do
36
+ check.detected_ruby = {:version=>"1.9.3", :patchlevel=>"p391"}
37
+ check.vuln?.should be_true
38
+ end
39
+ end
@@ -1 +1 @@
1
- require 'codesake_dawn'
1
+ require 'codesake-dawn'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codesake-dawn
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.50'
4
+ version: '0.60'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-13 00:00:00.000000000 Z
12
+ date: 2013-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: codesake_commons
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>'
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.50.0
21
+ version: 0.67.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ! '>'
27
+ - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.50.0
29
+ version: 0.67.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: cvss
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +75,54 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: tomdoc
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: aruba
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: simplecov
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
78
126
  description: dawn is a security static source code analyzer for web applications written
79
127
  in ruby. It supports major MVC frameworks like sinatra, padrino and ruby on rails.
80
128
  dawn output is a list of security vulnerabilities affecting your code with a suggestion
@@ -87,14 +135,21 @@ extensions: []
87
135
  extra_rdoc_files: []
88
136
  files:
89
137
  - .gitignore
90
- - .rvmrc
138
+ - .ruby-gemset
139
+ - .ruby-version
140
+ - Competitive_matrix.md
91
141
  - Gemfile
92
142
  - LICENSE.txt
93
143
  - README.md
94
144
  - Rakefile
95
145
  - Roadmap.md
146
+ - TODO.md
96
147
  - bin/dawn
97
148
  - codesake_dawn.gemspec
149
+ - features/dawn_complains_about_an_incorrect_command_line.feature
150
+ - features/dawn_scan_a_secure_sinatra_app.feature
151
+ - features/step_definition/dawn_steps.rb
152
+ - features/support/env.rb
98
153
  - lib/codesake-dawn.rb
99
154
  - lib/codesake/dawn/engine.rb
100
155
  - lib/codesake/dawn/kb/basic_check.rb
@@ -107,34 +162,48 @@ files:
107
162
  - lib/codesake/dawn/kb/cve_2012_6496.rb
108
163
  - lib/codesake/dawn/kb/cve_2012_6497.rb
109
164
  - lib/codesake/dawn/kb/cve_2013_0155.rb
165
+ - lib/codesake/dawn/kb/cve_2013_0156.rb
166
+ - lib/codesake/dawn/kb/cve_2013_0175.rb
167
+ - lib/codesake/dawn/kb/cve_2013_0233.rb
110
168
  - lib/codesake/dawn/kb/cve_2013_0269.rb
169
+ - lib/codesake/dawn/kb/cve_2013_0276.rb
170
+ - lib/codesake/dawn/kb/cve_2013_0277.rb
171
+ - lib/codesake/dawn/kb/cve_2013_0284.rb
172
+ - lib/codesake/dawn/kb/cve_2013_0285.rb
111
173
  - lib/codesake/dawn/kb/cve_2013_0333.rb
174
+ - lib/codesake/dawn/kb/cve_2013_1655.rb
175
+ - lib/codesake/dawn/kb/cve_2013_1656.rb
112
176
  - lib/codesake/dawn/kb/cve_2013_1800.rb
177
+ - lib/codesake/dawn/kb/cve_2013_1801.rb
178
+ - lib/codesake/dawn/kb/cve_2013_1802.rb
179
+ - lib/codesake/dawn/kb/cve_2013_1821.rb
180
+ - lib/codesake/dawn/kb/cve_2013_1854.rb
113
181
  - lib/codesake/dawn/kb/cve_2013_1855.rb
182
+ - lib/codesake/dawn/kb/cve_2013_1856.rb
114
183
  - lib/codesake/dawn/kb/cve_2013_1857.rb
184
+ - lib/codesake/dawn/kb/cve_2013_1875.rb
185
+ - lib/codesake/dawn/kb/cve_2013_1898.rb
186
+ - lib/codesake/dawn/kb/cve_2013_1911.rb
187
+ - lib/codesake/dawn/kb/cve_2013_1933.rb
188
+ - lib/codesake/dawn/kb/cve_2013_1947.rb
189
+ - lib/codesake/dawn/kb/cve_2013_1948.rb
190
+ - lib/codesake/dawn/kb/cve_2013_2615.rb
191
+ - lib/codesake/dawn/kb/cve_2013_2616.rb
192
+ - lib/codesake/dawn/kb/cve_2013_2617.rb
193
+ - lib/codesake/dawn/kb/cve_2013_3221.rb
115
194
  - lib/codesake/dawn/kb/dependency_check.rb
116
195
  - lib/codesake/dawn/kb/not_revised_code.rb
117
196
  - lib/codesake/dawn/kb/pattern_match_check.rb
197
+ - lib/codesake/dawn/kb/ruby_version_check.rb
118
198
  - lib/codesake/dawn/knowledge_base.rb
119
199
  - lib/codesake/dawn/rails.rb
120
200
  - lib/codesake/dawn/sinatra.rb
121
201
  - lib/codesake/dawn/version.rb
122
202
  - spec/lib/dawn/codesake_knowledgebase_spec.rb
203
+ - spec/lib/dawn/codesake_rails_engine_spec.rb
123
204
  - spec/lib/dawn/codesake_sinatra_engine_spec.rb
124
- - spec/lib/kb/codesake_cve_2013_1800_spec.rb
125
- - spec/lib/kb/codesake_cve_2013_1855_spec.rb
126
- - spec/lib/kb/cve_2011_2931_spec.rb
127
- - spec/lib/kb/cve_2012_2660_spec.rb
128
- - spec/lib/kb/cve_2012_2661_spec.rb
129
- - spec/lib/kb/cve_2012_2694_spec.rb
130
- - spec/lib/kb/cve_2012_2695_spec.rb
131
- - spec/lib/kb/cve_2012_3465_spec.rb
132
- - spec/lib/kb/cve_2012_6496_spec.rb
133
- - spec/lib/kb/cve_2012_6497_spec.rb
134
- - spec/lib/kb/cve_2013_0155_spec.rb
135
- - spec/lib/kb/cve_2013_0269_spec.rb
136
- - spec/lib/kb/cve_2013_0333_spec.rb
137
- - spec/lib/kb/cve_2013_1857_spec.rb
205
+ - spec/lib/kb/codesake_cve_2013_0175_spec.rb
206
+ - spec/lib/kb/codesake_ruby_version_check_spec.rb
138
207
  - spec/spec_helper.rb
139
208
  - spec/support/hello_world_3.0.19/.gitignore
140
209
  - spec/support/hello_world_3.0.19/Gemfile
@@ -316,7 +385,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
316
385
  version: '0'
317
386
  segments:
318
387
  - 0
319
- hash: 3223005256600909470
388
+ hash: 4144472411104473385
320
389
  required_rubygems_version: !ruby/object:Gem::Requirement
321
390
  none: false
322
391
  requirements:
@@ -325,31 +394,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
325
394
  version: '0'
326
395
  segments:
327
396
  - 0
328
- hash: 3223005256600909470
397
+ hash: 4144472411104473385
329
398
  requirements: []
330
399
  rubyforge_project:
331
- rubygems_version: 1.8.24
400
+ rubygems_version: 1.8.25
332
401
  signing_key:
333
402
  specification_version: 3
334
403
  summary: dawn is a security static source code analyzer for sinatra, padrino and ruby
335
404
  on rails web applicartions.
336
405
  test_files:
406
+ - features/dawn_complains_about_an_incorrect_command_line.feature
407
+ - features/dawn_scan_a_secure_sinatra_app.feature
408
+ - features/step_definition/dawn_steps.rb
409
+ - features/support/env.rb
337
410
  - spec/lib/dawn/codesake_knowledgebase_spec.rb
411
+ - spec/lib/dawn/codesake_rails_engine_spec.rb
338
412
  - spec/lib/dawn/codesake_sinatra_engine_spec.rb
339
- - spec/lib/kb/codesake_cve_2013_1800_spec.rb
340
- - spec/lib/kb/codesake_cve_2013_1855_spec.rb
341
- - spec/lib/kb/cve_2011_2931_spec.rb
342
- - spec/lib/kb/cve_2012_2660_spec.rb
343
- - spec/lib/kb/cve_2012_2661_spec.rb
344
- - spec/lib/kb/cve_2012_2694_spec.rb
345
- - spec/lib/kb/cve_2012_2695_spec.rb
346
- - spec/lib/kb/cve_2012_3465_spec.rb
347
- - spec/lib/kb/cve_2012_6496_spec.rb
348
- - spec/lib/kb/cve_2012_6497_spec.rb
349
- - spec/lib/kb/cve_2013_0155_spec.rb
350
- - spec/lib/kb/cve_2013_0269_spec.rb
351
- - spec/lib/kb/cve_2013_0333_spec.rb
352
- - spec/lib/kb/cve_2013_1857_spec.rb
413
+ - spec/lib/kb/codesake_cve_2013_0175_spec.rb
414
+ - spec/lib/kb/codesake_ruby_version_check_spec.rb
353
415
  - spec/spec_helper.rb
354
416
  - spec/support/hello_world_3.0.19/.gitignore
355
417
  - spec/support/hello_world_3.0.19/Gemfile