dawnscanner 1.6.9 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (366) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/Changelog.md +8 -0
  4. data/LICENSE.txt +1 -1
  5. data/Rakefile +6 -239
  6. data/VERSION +1 -1
  7. data/bin/dawn +6 -46
  8. data/dawnscanner.gemspec +6 -1
  9. data/doc/change.sh +13 -0
  10. data/doc/knowledge_base.rb +650 -0
  11. data/lib/dawn/cli/dawn_cli.rb +103 -0
  12. data/lib/dawn/engine.rb +9 -11
  13. data/lib/dawn/gemfile_lock.rb +2 -2
  14. data/lib/dawn/kb/basic_check.rb +1 -0
  15. data/lib/dawn/kb/combo_check.rb +1 -1
  16. data/lib/dawn/kb/dependency_check.rb +1 -1
  17. data/lib/dawn/kb/pattern_match_check.rb +1 -1
  18. data/lib/dawn/kb/ruby_version_check.rb +11 -10
  19. data/lib/dawn/kb/{gem_check.rb → rubygem_check.rb} +1 -1
  20. data/lib/dawn/kb/version_check.rb +25 -25
  21. data/lib/dawn/knowledge_base.rb +211 -588
  22. data/lib/dawn/utils.rb +5 -2
  23. data/lib/dawn/version.rb +5 -5
  24. data/lib/dawnscanner.rb +4 -3
  25. metadata +23 -450
  26. data/lib/dawn/kb/cve_2004_0755.rb +0 -33
  27. data/lib/dawn/kb/cve_2004_0983.rb +0 -31
  28. data/lib/dawn/kb/cve_2005_1992.rb +0 -31
  29. data/lib/dawn/kb/cve_2005_2337.rb +0 -33
  30. data/lib/dawn/kb/cve_2006_1931.rb +0 -30
  31. data/lib/dawn/kb/cve_2006_2582.rb +0 -28
  32. data/lib/dawn/kb/cve_2006_3694.rb +0 -31
  33. data/lib/dawn/kb/cve_2006_4112.rb +0 -27
  34. data/lib/dawn/kb/cve_2006_5467.rb +0 -28
  35. data/lib/dawn/kb/cve_2006_6303.rb +0 -28
  36. data/lib/dawn/kb/cve_2006_6852.rb +0 -27
  37. data/lib/dawn/kb/cve_2006_6979.rb +0 -29
  38. data/lib/dawn/kb/cve_2007_0469.rb +0 -29
  39. data/lib/dawn/kb/cve_2007_5162.rb +0 -28
  40. data/lib/dawn/kb/cve_2007_5379.rb +0 -27
  41. data/lib/dawn/kb/cve_2007_5380.rb +0 -29
  42. data/lib/dawn/kb/cve_2007_5770.rb +0 -30
  43. data/lib/dawn/kb/cve_2007_6077.rb +0 -31
  44. data/lib/dawn/kb/cve_2007_6612.rb +0 -30
  45. data/lib/dawn/kb/cve_2008_1145.rb +0 -38
  46. data/lib/dawn/kb/cve_2008_1891.rb +0 -38
  47. data/lib/dawn/kb/cve_2008_2376.rb +0 -30
  48. data/lib/dawn/kb/cve_2008_2662.rb +0 -33
  49. data/lib/dawn/kb/cve_2008_2663.rb +0 -32
  50. data/lib/dawn/kb/cve_2008_2664.rb +0 -33
  51. data/lib/dawn/kb/cve_2008_2725.rb +0 -31
  52. data/lib/dawn/kb/cve_2008_3655.rb +0 -37
  53. data/lib/dawn/kb/cve_2008_3657.rb +0 -37
  54. data/lib/dawn/kb/cve_2008_3790.rb +0 -30
  55. data/lib/dawn/kb/cve_2008_3905.rb +0 -36
  56. data/lib/dawn/kb/cve_2008_4094.rb +0 -27
  57. data/lib/dawn/kb/cve_2008_4310.rb +0 -100
  58. data/lib/dawn/kb/cve_2008_5189.rb +0 -27
  59. data/lib/dawn/kb/cve_2008_7248.rb +0 -27
  60. data/lib/dawn/kb/cve_2009_4078.rb +0 -29
  61. data/lib/dawn/kb/cve_2009_4124.rb +0 -30
  62. data/lib/dawn/kb/cve_2009_4214.rb +0 -27
  63. data/lib/dawn/kb/cve_2010_1330.rb +0 -28
  64. data/lib/dawn/kb/cve_2010_2489.rb +0 -60
  65. data/lib/dawn/kb/cve_2010_3933.rb +0 -27
  66. data/lib/dawn/kb/cve_2011_0188.rb +0 -67
  67. data/lib/dawn/kb/cve_2011_0446.rb +0 -28
  68. data/lib/dawn/kb/cve_2011_0447.rb +0 -28
  69. data/lib/dawn/kb/cve_2011_0739.rb +0 -28
  70. data/lib/dawn/kb/cve_2011_0995.rb +0 -61
  71. data/lib/dawn/kb/cve_2011_1004.rb +0 -34
  72. data/lib/dawn/kb/cve_2011_1005.rb +0 -31
  73. data/lib/dawn/kb/cve_2011_2197.rb +0 -27
  74. data/lib/dawn/kb/cve_2011_2686.rb +0 -29
  75. data/lib/dawn/kb/cve_2011_2705.rb +0 -32
  76. data/lib/dawn/kb/cve_2011_2929.rb +0 -27
  77. data/lib/dawn/kb/cve_2011_2930.rb +0 -28
  78. data/lib/dawn/kb/cve_2011_2931.rb +0 -30
  79. data/lib/dawn/kb/cve_2011_2932.rb +0 -27
  80. data/lib/dawn/kb/cve_2011_3009.rb +0 -28
  81. data/lib/dawn/kb/cve_2011_3186.rb +0 -29
  82. data/lib/dawn/kb/cve_2011_3187.rb +0 -29
  83. data/lib/dawn/kb/cve_2011_4319.rb +0 -30
  84. data/lib/dawn/kb/cve_2011_4815.rb +0 -28
  85. data/lib/dawn/kb/cve_2011_5036.rb +0 -26
  86. data/lib/dawn/kb/cve_2012_1098.rb +0 -30
  87. data/lib/dawn/kb/cve_2012_1099.rb +0 -27
  88. data/lib/dawn/kb/cve_2012_1241.rb +0 -27
  89. data/lib/dawn/kb/cve_2012_2139.rb +0 -26
  90. data/lib/dawn/kb/cve_2012_2140.rb +0 -27
  91. data/lib/dawn/kb/cve_2012_2660.rb +0 -28
  92. data/lib/dawn/kb/cve_2012_2661.rb +0 -27
  93. data/lib/dawn/kb/cve_2012_2671.rb +0 -28
  94. data/lib/dawn/kb/cve_2012_2694.rb +0 -30
  95. data/lib/dawn/kb/cve_2012_2695.rb +0 -27
  96. data/lib/dawn/kb/cve_2012_3424.rb +0 -29
  97. data/lib/dawn/kb/cve_2012_3463.rb +0 -27
  98. data/lib/dawn/kb/cve_2012_3464.rb +0 -27
  99. data/lib/dawn/kb/cve_2012_3465.rb +0 -26
  100. data/lib/dawn/kb/cve_2012_4464.rb +0 -27
  101. data/lib/dawn/kb/cve_2012_4466.rb +0 -27
  102. data/lib/dawn/kb/cve_2012_4481.rb +0 -26
  103. data/lib/dawn/kb/cve_2012_4522.rb +0 -27
  104. data/lib/dawn/kb/cve_2012_5370.rb +0 -27
  105. data/lib/dawn/kb/cve_2012_5371.rb +0 -27
  106. data/lib/dawn/kb/cve_2012_5380.rb +0 -28
  107. data/lib/dawn/kb/cve_2012_6109.rb +0 -25
  108. data/lib/dawn/kb/cve_2012_6134.rb +0 -27
  109. data/lib/dawn/kb/cve_2012_6496.rb +0 -28
  110. data/lib/dawn/kb/cve_2012_6497.rb +0 -28
  111. data/lib/dawn/kb/cve_2012_6684.rb +0 -28
  112. data/lib/dawn/kb/cve_2013_0155.rb +0 -29
  113. data/lib/dawn/kb/cve_2013_0156.rb +0 -27
  114. data/lib/dawn/kb/cve_2013_0162.rb +0 -28
  115. data/lib/dawn/kb/cve_2013_0175.rb +0 -27
  116. data/lib/dawn/kb/cve_2013_0183.rb +0 -25
  117. data/lib/dawn/kb/cve_2013_0184.rb +0 -25
  118. data/lib/dawn/kb/cve_2013_0233.rb +0 -26
  119. data/lib/dawn/kb/cve_2013_0256.rb +0 -59
  120. data/lib/dawn/kb/cve_2013_0262.rb +0 -26
  121. data/lib/dawn/kb/cve_2013_0263.rb +0 -26
  122. data/lib/dawn/kb/cve_2013_0269.rb +0 -27
  123. data/lib/dawn/kb/cve_2013_0276.rb +0 -28
  124. data/lib/dawn/kb/cve_2013_0277.rb +0 -25
  125. data/lib/dawn/kb/cve_2013_0284.rb +0 -27
  126. data/lib/dawn/kb/cve_2013_0285.rb +0 -27
  127. data/lib/dawn/kb/cve_2013_0333.rb +0 -28
  128. data/lib/dawn/kb/cve_2013_0334.rb +0 -25
  129. data/lib/dawn/kb/cve_2013_1607.rb +0 -25
  130. data/lib/dawn/kb/cve_2013_1655.rb +0 -65
  131. data/lib/dawn/kb/cve_2013_1656.rb +0 -28
  132. data/lib/dawn/kb/cve_2013_1756.rb +0 -26
  133. data/lib/dawn/kb/cve_2013_1800.rb +0 -26
  134. data/lib/dawn/kb/cve_2013_1801.rb +0 -27
  135. data/lib/dawn/kb/cve_2013_1802.rb +0 -27
  136. data/lib/dawn/kb/cve_2013_1812.rb +0 -27
  137. data/lib/dawn/kb/cve_2013_1821.rb +0 -28
  138. data/lib/dawn/kb/cve_2013_1854.rb +0 -26
  139. data/lib/dawn/kb/cve_2013_1855.rb +0 -25
  140. data/lib/dawn/kb/cve_2013_1856.rb +0 -26
  141. data/lib/dawn/kb/cve_2013_1857.rb +0 -27
  142. data/lib/dawn/kb/cve_2013_1875.rb +0 -27
  143. data/lib/dawn/kb/cve_2013_1898.rb +0 -27
  144. data/lib/dawn/kb/cve_2013_1911.rb +0 -28
  145. data/lib/dawn/kb/cve_2013_1933.rb +0 -27
  146. data/lib/dawn/kb/cve_2013_1947.rb +0 -27
  147. data/lib/dawn/kb/cve_2013_1948.rb +0 -27
  148. data/lib/dawn/kb/cve_2013_2065.rb +0 -29
  149. data/lib/dawn/kb/cve_2013_2090.rb +0 -28
  150. data/lib/dawn/kb/cve_2013_2105.rb +0 -26
  151. data/lib/dawn/kb/cve_2013_2119.rb +0 -27
  152. data/lib/dawn/kb/cve_2013_2512.rb +0 -26
  153. data/lib/dawn/kb/cve_2013_2513.rb +0 -25
  154. data/lib/dawn/kb/cve_2013_2516.rb +0 -26
  155. data/lib/dawn/kb/cve_2013_2615.rb +0 -27
  156. data/lib/dawn/kb/cve_2013_2616.rb +0 -27
  157. data/lib/dawn/kb/cve_2013_2617.rb +0 -28
  158. data/lib/dawn/kb/cve_2013_3221.rb +0 -27
  159. data/lib/dawn/kb/cve_2013_4164.rb +0 -30
  160. data/lib/dawn/kb/cve_2013_4203.rb +0 -25
  161. data/lib/dawn/kb/cve_2013_4389.rb +0 -26
  162. data/lib/dawn/kb/cve_2013_4413.rb +0 -27
  163. data/lib/dawn/kb/cve_2013_4457.rb +0 -29
  164. data/lib/dawn/kb/cve_2013_4478.rb +0 -26
  165. data/lib/dawn/kb/cve_2013_4479.rb +0 -26
  166. data/lib/dawn/kb/cve_2013_4489.rb +0 -28
  167. data/lib/dawn/kb/cve_2013_4491.rb +0 -29
  168. data/lib/dawn/kb/cve_2013_4492.rb +0 -29
  169. data/lib/dawn/kb/cve_2013_4562.rb +0 -27
  170. data/lib/dawn/kb/cve_2013_4593.rb +0 -27
  171. data/lib/dawn/kb/cve_2013_5647.rb +0 -29
  172. data/lib/dawn/kb/cve_2013_5671.rb +0 -26
  173. data/lib/dawn/kb/cve_2013_6414.rb +0 -30
  174. data/lib/dawn/kb/cve_2013_6415.rb +0 -29
  175. data/lib/dawn/kb/cve_2013_6416.rb +0 -29
  176. data/lib/dawn/kb/cve_2013_6417.rb +0 -30
  177. data/lib/dawn/kb/cve_2013_6421.rb +0 -28
  178. data/lib/dawn/kb/cve_2013_6459.rb +0 -28
  179. data/lib/dawn/kb/cve_2013_6460.rb +0 -53
  180. data/lib/dawn/kb/cve_2013_6461.rb +0 -57
  181. data/lib/dawn/kb/cve_2013_7086.rb +0 -27
  182. data/lib/dawn/kb/cve_2014_0036.rb +0 -27
  183. data/lib/dawn/kb/cve_2014_0080.rb +0 -29
  184. data/lib/dawn/kb/cve_2014_0081.rb +0 -27
  185. data/lib/dawn/kb/cve_2014_0082.rb +0 -27
  186. data/lib/dawn/kb/cve_2014_0130.rb +0 -27
  187. data/lib/dawn/kb/cve_2014_1233.rb +0 -27
  188. data/lib/dawn/kb/cve_2014_1234.rb +0 -26
  189. data/lib/dawn/kb/cve_2014_2322.rb +0 -28
  190. data/lib/dawn/kb/cve_2014_2525.rb +0 -59
  191. data/lib/dawn/kb/cve_2014_2538.rb +0 -26
  192. data/lib/dawn/kb/cve_2014_3482.rb +0 -28
  193. data/lib/dawn/kb/cve_2014_3483.rb +0 -28
  194. data/lib/dawn/kb/cve_2014_3916.rb +0 -29
  195. data/lib/dawn/kb/cve_2014_4975.rb +0 -28
  196. data/lib/dawn/kb/cve_2014_7818.rb +0 -27
  197. data/lib/dawn/kb/cve_2014_7819.rb +0 -31
  198. data/lib/dawn/kb/cve_2014_7829.rb +0 -30
  199. data/lib/dawn/kb/cve_2014_8090.rb +0 -30
  200. data/lib/dawn/kb/cve_2014_9490.rb +0 -29
  201. data/lib/dawn/kb/cve_2015_1819.rb +0 -34
  202. data/lib/dawn/kb/cve_2015_1840/cve_2015_1840_a.rb +0 -28
  203. data/lib/dawn/kb/cve_2015_1840/cve_2015_1840_b.rb +0 -28
  204. data/lib/dawn/kb/cve_2015_2963.rb +0 -27
  205. data/lib/dawn/kb/cve_2015_3224.rb +0 -26
  206. data/lib/dawn/kb/cve_2015_3225.rb +0 -28
  207. data/lib/dawn/kb/cve_2015_3226.rb +0 -27
  208. data/lib/dawn/kb/cve_2015_3227.rb +0 -28
  209. data/lib/dawn/kb/cve_2015_3448.rb +0 -29
  210. data/lib/dawn/kb/cve_2015_4020.rb +0 -34
  211. data/lib/dawn/kb/cve_2015_5312.rb +0 -30
  212. data/lib/dawn/kb/cve_2015_7497.rb +0 -32
  213. data/lib/dawn/kb/cve_2015_7498.rb +0 -32
  214. data/lib/dawn/kb/cve_2015_7499.rb +0 -32
  215. data/lib/dawn/kb/cve_2015_7500.rb +0 -32
  216. data/lib/dawn/kb/cve_2015_7519.rb +0 -31
  217. data/lib/dawn/kb/cve_2015_7541.rb +0 -31
  218. data/lib/dawn/kb/cve_2015_7576.rb +0 -35
  219. data/lib/dawn/kb/cve_2015_7577.rb +0 -34
  220. data/lib/dawn/kb/cve_2015_7578.rb +0 -30
  221. data/lib/dawn/kb/cve_2015_7579.rb +0 -30
  222. data/lib/dawn/kb/cve_2015_7581.rb +0 -33
  223. data/lib/dawn/kb/cve_2015_8241.rb +0 -32
  224. data/lib/dawn/kb/cve_2015_8242.rb +0 -32
  225. data/lib/dawn/kb/cve_2015_8317.rb +0 -32
  226. data/lib/dawn/kb/cve_2016_0751.rb +0 -32
  227. data/lib/dawn/kb/cve_2016_0752.rb +0 -35
  228. data/lib/dawn/kb/cve_2016_0753.rb +0 -31
  229. data/lib/dawn/kb/cve_2016_2097.rb +0 -35
  230. data/lib/dawn/kb/cve_2016_2098.rb +0 -35
  231. data/lib/dawn/kb/cve_2016_5697.rb +0 -30
  232. data/lib/dawn/kb/cve_2016_6316.rb +0 -33
  233. data/lib/dawn/kb/cve_2016_6317.rb +0 -32
  234. data/lib/dawn/kb/cve_2016_6582.rb +0 -43
  235. data/lib/dawn/kb/not_revised_code.rb +0 -22
  236. data/lib/dawn/kb/osvdb_105971.rb +0 -29
  237. data/lib/dawn/kb/osvdb_108530.rb +0 -27
  238. data/lib/dawn/kb/osvdb_108563.rb +0 -28
  239. data/lib/dawn/kb/osvdb_108569.rb +0 -28
  240. data/lib/dawn/kb/osvdb_108570.rb +0 -27
  241. data/lib/dawn/kb/osvdb_115654.rb +0 -33
  242. data/lib/dawn/kb/osvdb_116010.rb +0 -30
  243. data/lib/dawn/kb/osvdb_117903.rb +0 -30
  244. data/lib/dawn/kb/osvdb_118579.rb +0 -31
  245. data/lib/dawn/kb/osvdb_118830.rb +0 -32
  246. data/lib/dawn/kb/osvdb_118954.rb +0 -33
  247. data/lib/dawn/kb/osvdb_119878.rb +0 -32
  248. data/lib/dawn/kb/osvdb_119927.rb +0 -33
  249. data/lib/dawn/kb/osvdb_120415.rb +0 -31
  250. data/lib/dawn/kb/osvdb_120857.rb +0 -34
  251. data/lib/dawn/kb/osvdb_121701.rb +0 -30
  252. data/lib/dawn/kb/osvdb_132234.rb +0 -34
  253. data/lib/dawn/kb/owasp_ror_cheatsheet.rb +0 -33
  254. data/lib/dawn/kb/owasp_ror_cheatsheet/check_for_backup_files.rb +0 -18
  255. data/lib/dawn/kb/owasp_ror_cheatsheet/check_for_safe_redirect_and_forward.rb +0 -57
  256. data/lib/dawn/kb/owasp_ror_cheatsheet/command_injection.rb +0 -28
  257. data/lib/dawn/kb/owasp_ror_cheatsheet/csrf.rb +0 -29
  258. data/lib/dawn/kb/owasp_ror_cheatsheet/mass_assignment_in_model.rb +0 -33
  259. data/lib/dawn/kb/owasp_ror_cheatsheet/security_related_headers.rb +0 -35
  260. data/lib/dawn/kb/owasp_ror_cheatsheet/sensitive_files.rb +0 -29
  261. data/lib/dawn/kb/owasp_ror_cheatsheet/session_stored_in_database.rb +0 -31
  262. data/lib/dawn/kb/simpleform_xss_20131129.rb +0 -28
  263. data/lib/dawn/knowledge_base_experimental.rb +0 -245
  264. data/spec/lib/kb/cve_2011_2705_spec.rb +0 -35
  265. data/spec/lib/kb/cve_2011_2930_spec.rb +0 -31
  266. data/spec/lib/kb/cve_2011_3009_spec.rb +0 -25
  267. data/spec/lib/kb/cve_2011_3187_spec.rb +0 -24
  268. data/spec/lib/kb/cve_2011_4319_spec.rb +0 -44
  269. data/spec/lib/kb/cve_2011_5036_spec.rb +0 -95
  270. data/spec/lib/kb/cve_2012_1098_spec.rb +0 -36
  271. data/spec/lib/kb/cve_2012_2139_spec.rb +0 -20
  272. data/spec/lib/kb/cve_2012_2671_spec.rb +0 -23
  273. data/spec/lib/kb/cve_2012_6109_spec.rb +0 -112
  274. data/spec/lib/kb/cve_2012_6684_spec.rb +0 -16
  275. data/spec/lib/kb/cve_2013_0162_spec.rb +0 -23
  276. data/spec/lib/kb/cve_2013_0183_spec.rb +0 -54
  277. data/spec/lib/kb/cve_2013_0184_spec.rb +0 -115
  278. data/spec/lib/kb/cve_2013_0256_spec.rb +0 -34
  279. data/spec/lib/kb/cve_2013_0262_spec.rb +0 -44
  280. data/spec/lib/kb/cve_2013_0263_spec.rb +0 -11
  281. data/spec/lib/kb/cve_2013_0334_spec.rb +0 -35
  282. data/spec/lib/kb/cve_2013_1607_spec.rb +0 -15
  283. data/spec/lib/kb/cve_2013_1655_spec.rb +0 -31
  284. data/spec/lib/kb/cve_2013_1756_spec.rb +0 -23
  285. data/spec/lib/kb/cve_2013_2090_spec.rb +0 -15
  286. data/spec/lib/kb/cve_2013_2105_spec.rb +0 -11
  287. data/spec/lib/kb/cve_2013_2119_spec.rb +0 -27
  288. data/spec/lib/kb/cve_2013_2512_spec.rb +0 -15
  289. data/spec/lib/kb/cve_2013_2513_spec.rb +0 -15
  290. data/spec/lib/kb/cve_2013_2516_spec.rb +0 -15
  291. data/spec/lib/kb/cve_2013_4203_spec.rb +0 -15
  292. data/spec/lib/kb/cve_2013_4413_spec.rb +0 -16
  293. data/spec/lib/kb/cve_2013_4489_spec.rb +0 -63
  294. data/spec/lib/kb/cve_2013_4491_spec.rb +0 -16
  295. data/spec/lib/kb/cve_2013_4593_spec.rb +0 -16
  296. data/spec/lib/kb/cve_2013_5647_spec.rb +0 -19
  297. data/spec/lib/kb/cve_2013_5671_spec.rb +0 -27
  298. data/spec/lib/kb/cve_2013_6414_spec.rb +0 -26
  299. data/spec/lib/kb/cve_2013_6416_spec.rb +0 -31
  300. data/spec/lib/kb/cve_2013_6459_spec.rb +0 -15
  301. data/spec/lib/kb/cve_2013_7086_spec.rb +0 -22
  302. data/spec/lib/kb/cve_2014_0036_spec.rb +0 -15
  303. data/spec/lib/kb/cve_2014_0080_spec.rb +0 -33
  304. data/spec/lib/kb/cve_2014_0081_spec.rb +0 -50
  305. data/spec/lib/kb/cve_2014_0082_spec.rb +0 -52
  306. data/spec/lib/kb/cve_2014_0130_spec.rb +0 -19
  307. data/spec/lib/kb/cve_2014_1233_spec.rb +0 -15
  308. data/spec/lib/kb/cve_2014_1234_spec.rb +0 -16
  309. data/spec/lib/kb/cve_2014_2322_spec.rb +0 -15
  310. data/spec/lib/kb/cve_2014_2538_spec.rb +0 -15
  311. data/spec/lib/kb/cve_2014_3482_spec.rb +0 -15
  312. data/spec/lib/kb/cve_2014_3483_spec.rb +0 -27
  313. data/spec/lib/kb/cve_2014_7818_spec.rb +0 -42
  314. data/spec/lib/kb/cve_2014_7819_spec.rb +0 -139
  315. data/spec/lib/kb/cve_2014_7829_spec.rb +0 -50
  316. data/spec/lib/kb/cve_2014_9490_spec.rb +0 -17
  317. data/spec/lib/kb/cve_2015_1819_spec.rb +0 -16
  318. data/spec/lib/kb/cve_2015_1840_spec.rb +0 -39
  319. data/spec/lib/kb/cve_2015_2963_spec.rb +0 -17
  320. data/spec/lib/kb/cve_2015_3224_spec.rb +0 -16
  321. data/spec/lib/kb/cve_2015_3225_spec.rb +0 -27
  322. data/spec/lib/kb/cve_2015_3226_spec.rb +0 -35
  323. data/spec/lib/kb/cve_2015_3227_spec.rb +0 -31
  324. data/spec/lib/kb/cve_2015_3448_spec.rb +0 -16
  325. data/spec/lib/kb/cve_2015_4020_spec.rb +0 -24
  326. data/spec/lib/kb/cve_2015_5312_spec.rb +0 -31
  327. data/spec/lib/kb/cve_2015_7497_spec.rb +0 -31
  328. data/spec/lib/kb/cve_2015_7498_spec.rb +0 -31
  329. data/spec/lib/kb/cve_2015_7499_spec.rb +0 -31
  330. data/spec/lib/kb/cve_2015_7500_spec.rb +0 -31
  331. data/spec/lib/kb/cve_2015_7519_spec.rb +0 -23
  332. data/spec/lib/kb/cve_2015_7541_spec.rb +0 -15
  333. data/spec/lib/kb/cve_2015_7576_spec.rb +0 -51
  334. data/spec/lib/kb/cve_2015_7577_spec.rb +0 -63
  335. data/spec/lib/kb/cve_2015_7578_spec.rb +0 -15
  336. data/spec/lib/kb/cve_2015_7579_spec.rb +0 -23
  337. data/spec/lib/kb/cve_2015_7581_spec.rb +0 -51
  338. data/spec/lib/kb/cve_2015_8241_spec.rb +0 -31
  339. data/spec/lib/kb/cve_2015_8242_spec.rb +0 -31
  340. data/spec/lib/kb/cve_2015_8317_spec.rb +0 -31
  341. data/spec/lib/kb/cve_2016_0751_spec.rb +0 -55
  342. data/spec/lib/kb/cve_2016_0752_spec.rb +0 -51
  343. data/spec/lib/kb/cve_2016_0753_spec.rb +0 -51
  344. data/spec/lib/kb/cve_2016_2097_spec.rb +0 -35
  345. data/spec/lib/kb/cve_2016_2098_spec.rb +0 -59
  346. data/spec/lib/kb/cve_2016_5697_spec.rb +0 -15
  347. data/spec/lib/kb/cve_2016_6316_spec.rb +0 -44
  348. data/spec/lib/kb/cve_2016_6317_spec.rb +0 -35
  349. data/spec/lib/kb/cve_2016_6582_spec.rb +0 -29
  350. data/spec/lib/kb/osvdb_105971_spec.rb +0 -15
  351. data/spec/lib/kb/osvdb_108530_spec.rb +0 -22
  352. data/spec/lib/kb/osvdb_108563_spec.rb +0 -18
  353. data/spec/lib/kb/osvdb_108569_spec.rb +0 -17
  354. data/spec/lib/kb/osvdb_108570_spec.rb +0 -17
  355. data/spec/lib/kb/osvdb_115654_spec.rb +0 -15
  356. data/spec/lib/kb/osvdb_116010_spec.rb +0 -15
  357. data/spec/lib/kb/osvdb_117903_spec.rb +0 -23
  358. data/spec/lib/kb/osvdb_118579_spec.rb +0 -8
  359. data/spec/lib/kb/osvdb_118830_spec.rb +0 -16
  360. data/spec/lib/kb/osvdb_118954_spec.rb +0 -20
  361. data/spec/lib/kb/osvdb_119878_spec.rb +0 -92
  362. data/spec/lib/kb/osvdb_119927_spec.rb +0 -16
  363. data/spec/lib/kb/osvdb_120415_spec.rb +0 -16
  364. data/spec/lib/kb/osvdb_120857_spec.rb +0 -32
  365. data/spec/lib/kb/osvdb_121701_spec.rb +0 -15
  366. data/spec/lib/kb/osvdb_132234_spec.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 269664ca2d6f8f14993ab85be4b78b81bba739743f25b560cc2e5c724e7d40e2
4
- data.tar.gz: 88a2ad2f4e4e9a130e349ccde068d857b1b3eab17b531855f09e0262b7914be0
3
+ metadata.gz: fedb521a49d75d72343489c68b9871fea0df9de953a3907dbe57e1ca375d5f65
4
+ data.tar.gz: b1e3c420155adf6c0ed829fad272970bca0c17245fcfea1da38ebd2f69d6043c
5
5
  SHA512:
6
- metadata.gz: fa2a9f80292666ddfec7e62f3f75559dbbcf72f09b8787b7b67a31d2c89da87a0c51a9041bbf6958a6b51df0a29cd504b45e893a0a0949d0c63fcb611894bad5
7
- data.tar.gz: d0a70f5255f423d5da629946efbc46531e2e7d881157a6a5800e9be7f11e1fa1dd6f5e64642a5fa103be9b138194693188f0d28da4c96bda8f541047c45302c9
6
+ metadata.gz: f5f5496969dd2f55cde87c9156e2d4ee55b70516af1b73a08fad3b8c140ad008c77cfb12d701229539ef430caabb4cbfc4cd27413ebe13c4d19d38de8ca87b59
7
+ data.tar.gz: 0727f9f752bbb2f99e977ae893cafd765fe602241894a793bfe8000e5327f92932059669313ed7bb0c167b9102d60afc4f3cdfaf229d702f42c750e828eb4b90
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.5.1
@@ -7,6 +7,14 @@ frameworks.
7
7
 
8
8
  _latest update: mer 28 nov 2018, 11.03.53, CET_
9
9
 
10
+ ## Version 2.0.0 - codename: Finn McMissile (2019-xx-xx)
11
+
12
+ * New knowledge base, YAML based and distributed separately from the ruby gem.
13
+ * New CLI based on Thor library. Please read README.md file to know how to
14
+ invoke dawn the right way or use the 'dawn help' command
15
+ * Added a new debug\_verbosely API for engines and checks
16
+ * Removed rake osvdb[name] and rake cve[name] tasks
17
+
10
18
  ## Version 1.6.9 - codename: Tow Mater (2018-11-28)
11
19
 
12
20
  * Removed signing certificate. This will solve issue #233 and #229
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013-2015 Paolo Perego
1
+ Copyright (c) 2013-2019 Paolo Perego
2
2
 
3
3
  MIT License
4
4
 
data/Rakefile CHANGED
@@ -8,7 +8,6 @@ require 'cucumber/rake/task'
8
8
  require 'fileutils'
9
9
  require "dawn/utils"
10
10
  require "dawn/knowledge_base"
11
- require "dawn/knowledge_base_experimental"
12
11
 
13
12
  Cucumber::Rake::Task.new(:features) do |t|
14
13
  t.cucumber_opts = "features --format pretty -x"
@@ -63,214 +62,6 @@ namespace :version do
63
62
  end
64
63
  end
65
64
 
66
- # namespace :check do
67
- # desc "Create a dependency check"
68
- # task :dependency, :name do |t, args|
69
- # end
70
-
71
- # end
72
- desc "Create a new CVE test"
73
- task :cve, :name do |t,args|
74
- name = args.name
75
- SRC_DIR = "./lib/dawn/kb/"
76
- SPEC_DIR = "./spec/lib/kb/"
77
-
78
- raise "### It seems that #{name} is already in Dawn knowledge base" unless Dawn::KnowledgeBase.find(nil, name).nil?
79
- raise "### Invalid CVE title: #{name}" if name.nil? or name.empty? or /CVE-\d{4}-\d{4}/.match(name).nil?
80
- raise "### No target directory: #{SRC_DIR}" unless Dir.exists?(SRC_DIR)
81
- raise "### No rspec directory: #{SPEC_DIR}" unless Dir.exists?(SPEC_DIR)
82
-
83
- puts "Adding #{name} to knowledge base..."
84
-
85
- rb_filename = SRC_DIR+name.downcase.gsub("-", "_")+".rb"
86
- spec_filename = SPEC_DIR+name.downcase.gsub("-", "_")+"_spec.rb"
87
- class_name = name.gsub("-", "_")
88
-
89
- open(rb_filename, "w") do |file|
90
- file.puts "module Dawn"
91
- file.puts "\t\tmodule Kb"
92
- file.puts "\t\t\t# Automatically created with rake on #{Time.now.strftime('%Y-%m-%d')}"
93
- file.puts "\t\t\tclass #{class_name}"
94
- file.puts "\t\t\t\t# Include the testing skeleton for this CVE"
95
- file.puts "\t\t\t\t# include PatternMatchCheck"
96
- file.puts "\t\t\t\t# include DependencyCheck"
97
- file.puts "\t\t\t\t# include RubyVersionCheck"
98
- file.puts ""
99
- file.puts "\t\t\t\tdef initialize"
100
- file.puts "\t\t\t\t\ttitle = \"\""
101
- file.puts "\t\t\t\t\tmessage = \"\""
102
- file.puts "\t\t\t\tend"
103
- file.puts "\t\t\tend"
104
- file.puts "\t\tend"
105
- file.puts "end"
106
- end
107
- puts "#{rb_filename} created"
108
-
109
- open(spec_filename, "w") do |file|
110
- file.puts "require 'spec_helper'"
111
-
112
- file.puts "describe \"The #{name} vulnerability\" do"
113
- file.puts "\tbefore(:all) do"
114
- file.puts "\t\t@check = Dawn::Kb::#{class_name}.new"
115
- file.puts "\t\t# @check.debug = true"
116
- file.puts "\tend"
117
- file.puts "\tit \"is reported when the vulnerable gem is detected\" do"
118
- file.puts "\t\t@check.dependencies = [{:name=>\"\", :version=>\"\"}]"
119
- file.puts "\t\texpect(@check.vuln?).to eq(true)"
120
- file.puts "\tend"
121
- file.puts "\tit \"is not reported when a fixed release is detected\" do"
122
- file.puts "\t\t@check.dependencies = [{:name=>\"\", :version=>\"\"}]"
123
- file.puts "\t\texpect(@check.vuln?).to eq(false)"
124
- file.puts "\tend"
125
- file.puts "end"
126
- end
127
- puts "#{spec_filename} created"
128
-
129
- puts "*** PLEASE IMPLEMENT TEST FOR #{name} IN ./spec/lib/dawn/codesake_knowledgebase_spec.rb in order to reflect changes"
130
- puts "*** PLEASE ADD THIS CODE IN ./lib/dawn/knowledge_base.rb in order to reflect changes"
131
- puts "require \"dawn/kb/#{class_name.downcase}\""
132
- puts "it \"must have test for #{name}\" do"
133
- puts " sc = kb.find(\"#{name}\")"
134
- puts " expect(sc).not_to be_nil"
135
- puts " expect(sc.class).to eq(Dawn::Kb::#{class_name})"
136
- puts "end"
137
-
138
-
139
- end
140
-
141
- desc "Create a new OSVDB security check"
142
- task :osvdb, :name do |t,args|
143
- name = args.name
144
- SRC_DIR = "./lib/dawn/kb/"
145
- SPEC_DIR = "./spec/lib/kb/"
146
-
147
- raise "### It seems that #{name} is already in Dawn knowledge base" unless Dawn::KnowledgeBase.find(nil, name).nil?
148
- raise "### Invalid OSVDB identifier: #{name}" if name.nil? or name.empty? or /\d{6}/.match(name).nil?
149
- raise "### No target directory: #{SRC_DIR}" unless Dir.exists?(SRC_DIR)
150
- raise "### No rspec directory: #{SPEC_DIR}" unless Dir.exists?(SPEC_DIR)
151
-
152
- puts "Adding #{name} to knowledge base..."
153
-
154
- name = "OSVDB_"+name
155
-
156
- rb_filename = SRC_DIR+name.downcase.gsub("-", "_")+".rb"
157
- spec_filename = SPEC_DIR+name.downcase.gsub("-", "_")+"_spec.rb"
158
- class_name = name.gsub("-", "_")
159
-
160
- open(rb_filename, "w") do |file|
161
- file.puts "module Dawn"
162
- file.puts "\t\tmodule Kb"
163
- file.puts "\t\t\t# Automatically created with rake on #{Time.now.strftime('%Y-%m-%d')}"
164
- file.puts "\t\t\tclass #{class_name}"
165
- file.puts "\t\t\t\t# Include the testing skeleton for this Security Check"
166
- file.puts "\t\t\t\t# include PatternMatchCheck"
167
- file.puts "\t\t\t\t# include DependencyCheck"
168
- file.puts "\t\t\t\t# include RubyVersionCheck"
169
- file.puts ""
170
- file.puts "\t\t\t\tdef initialize"
171
- file.puts "\t\t\t\t\ttitle = \"\""
172
- file.puts "\t\t\t\t\tmessage = \"\""
173
- file.puts "\t\t\t\tend"
174
- file.puts "\t\t\tend"
175
- file.puts "\t\tend"
176
- file.puts "end"
177
- end
178
- puts "#{rb_filename} created"
179
-
180
- open(spec_filename, "w") do |file|
181
- file.puts "require 'spec_helper'"
182
-
183
- file.puts "describe \"The #{name} vulnerability\" do"
184
- file.puts "\tbefore(:all) do"
185
- file.puts "\t\t@check = Dawn::Kb::#{class_name}.new"
186
- file.puts "\t\t# @check.debug = true"
187
- file.puts "\tend"
188
- file.puts "\tit \"is reported when the vulnerable gem is detected\" do"
189
- file.puts "\t\t@check.dependencies = [{:name=>\"\", :version=>\"\"}]"
190
- file.puts "\t\texpect(@check.vuln?).to eq(true)"
191
- file.puts "\tend"
192
- file.puts "\tit \"is not reported when a fixed release is detected\" do"
193
- file.puts "\t\t@check.dependencies = [{:name=>\"\", :version=>\"\"}]"
194
- file.puts "\t\texpect(@check.vuln?).to eq(false)"
195
- file.puts "\tend"
196
- file.puts "end"
197
- end
198
- puts "#{spec_filename} created"
199
-
200
-
201
- puts "*** PLEASE IMPLEMENT TEST FOR #{name} IN ./spec/lib/dawn/codesake_knowledgebase_spec.rb in order to reflect changes"
202
- puts "*** PLEASE ADD THIS CODE IN ./lib/dawn/knowledge_base.rb in order to reflect changes"
203
- puts "require \"dawn/kb/#{class_name.downcase}\""
204
- puts "it \"must have test for #{name}\" do"
205
- puts " sc = kb.find(\"#{name}\")"
206
- puts " expect(sc).not_to be_nil"
207
- puts " expect(sc.class).to eq(Dawn::Kb::#{class_name})"
208
- puts "end"
209
-
210
- end
211
-
212
-
213
-
214
- desc "Create a new Generic security check"
215
- task :check, :name do |t,args|
216
- name = args.name
217
- SRC_DIR = "./lib/dawn/kb/"
218
- SPEC_DIR = "./spec/lib/kb/"
219
-
220
- raise "### It seems that #{name} is already in Dawn knowledge base" unless Dawn::KnowledgeBase.find(nil, name).nil?
221
- raise "### No target directory: #{SRC_DIR}" unless Dir.exists?(SRC_DIR)
222
- raise "### No rspec directory: #{SPEC_DIR}" unless Dir.exists?(SPEC_DIR)
223
-
224
- puts "Adding #{name} to knowledge base..."
225
-
226
- rb_filename = SRC_DIR+name.downcase.gsub("-", "_")+".rb"
227
- spec_filename = SPEC_DIR+name.downcase.gsub("-", "_")+"_spec.rb"
228
- class_name = name.gsub("-", "_")
229
-
230
- open(rb_filename, "w") do |file|
231
- file.puts "module Dawn"
232
- file.puts "\t\tmodule Kb"
233
- file.puts "\t\t\t# Automatically created with rake on #{Time.now.strftime('%Y-%m-%d')}"
234
- file.puts "\t\t\tclass #{class_name}"
235
- file.puts "\t\t\t\t# Include the testing skeleton for this Security Check"
236
- file.puts "\t\t\t\t# include PatternMatchCheck"
237
- file.puts "\t\t\t\t# include DependencyCheck"
238
- file.puts "\t\t\t\t# include RubyVersionCheck"
239
- file.puts ""
240
- file.puts "\t\t\t\tdef initialize"
241
- file.puts "\t\t\t\tend"
242
- file.puts "\t\t\tend"
243
- file.puts "\t\tend"
244
- file.puts "end"
245
- end
246
- puts "#{rb_filename} created"
247
-
248
- open(spec_filename, "w") do |file|
249
- file.puts "require 'spec_helper'"
250
-
251
- file.puts "describe \"The #{name} vulnerability\" do"
252
- file.puts "\tbefore(:all) do"
253
- file.puts "\t\t@check = Dawn::Kb::#{class_name}.new"
254
- file.puts "\t\t# @check.debug = true"
255
- file.puts "\tend"
256
- file.puts "\tit \"is reported when...\""
257
- file.puts "end"
258
- end
259
- puts "#{spec_filename} created"
260
-
261
-
262
- puts "*** PLEASE IMPLEMENT TEST FOR #{name} IN ./spec/lib/dawn/codesake_knowledgebase_spec.rb in order to reflect changes"
263
- puts "*** PLEASE ADD THIS CODE IN ./lib/dawn/knowledge_base.rb in order to reflect changes"
264
- puts "require \"dawn/kb/#{class_name.downcase}\""
265
- puts "it \"must have test for #{name}\" do"
266
- puts " sc = kb.find(\"#{name}\")"
267
- puts " sc.should_not be_nil"
268
- puts " sc.class.should == Dawn::Kb::#{class_name}"
269
- puts "end"
270
-
271
-
272
- end
273
-
274
65
  namespace :kb do
275
66
  desc 'Check information lint'
276
67
  task :lint do
@@ -287,26 +78,6 @@ namespace :kb do
287
78
  __kb_pack
288
79
  end
289
80
 
290
- desc 'Transform all checks to YAML file and pack the library for shipping'
291
- task :to_yaml do
292
- YAML_KB = File.join(Dir.pwd, 'db')
293
- FileUtils.rm_rf YAML_KB
294
- FileUtils.mkdir_p YAML_KB
295
-
296
- Dawn::KnowledgeBase.new.all.each do |check|
297
- out_dir = File.join(YAML_KB, check.check_family.to_s)
298
- FileUtils.mkdir_p(out_dir) unless Dir.exists? out_dir
299
-
300
- filename = File.join(out_dir, check.name.gsub(" ", "_").gsub("-", "_") + '.yml')
301
- open(filename, 'w') do |f|
302
- f.puts(check.to_yaml)
303
- end
304
- puts "#{filename} created"
305
- end
306
-
307
- __kb_pack
308
- end
309
-
310
81
  desc 'Creates a KnowledgeBase.md file'
311
82
  task :create do
312
83
  checks = Dawn::KnowledgeBase.new.all
@@ -393,35 +164,35 @@ end
393
164
 
394
165
  def __kb_pack
395
166
  if Dir.exists? "#{YAML_KB}/bulletin"
396
- system "tar cfvz #{YAML_KB}/bulletin.tar.gz #{YAML_KB}/bulletin"
167
+ system "tar cfvz #{YAML_KB}/bulletin.tar.gz -C #{YAML_KB} bulletin"
397
168
  system "rm -rf #{YAML_KB}/bulletin"
398
169
  system "shasum -a 256 #{YAML_KB}/bulletin.tar.gz > #{YAML_KB}/bulletin.tar.gz.sig"
399
170
  end
400
171
 
401
172
  if Dir.exists? "#{YAML_KB}/generic_check"
402
- system "tar cfvz #{YAML_KB}/generic_check.tar.gz #{YAML_KB}/generic_check"
173
+ system "tar cfvz #{YAML_KB}/generic_check.tar.gz -C #{YAML_KB} generic_check"
403
174
  system "rm -rf #{YAML_KB}/generic_check"
404
175
  system "shasum -a 256 #{YAML_KB}/generic_check.tar.gz > #{YAML_KB}/generic_check.tar.gz.sig"
405
176
  end
406
177
 
407
178
  if Dir.exists? "#{YAML_KB}/owasp_ror_cheatsheet"
408
- system "tar cfvz #{YAML_KB}/owasp_ror_cheatsheet.tar.gz #{YAML_KB}/owasp_ror_cheatsheet"
179
+ system "tar cfvz #{YAML_KB}/owasp_ror_cheatsheet.tar.gz -C #{YAML_KB} owasp_ror_cheatsheet"
409
180
  system "rm -rf #{YAML_KB}/owasp_ror_cheatsheet"
410
181
  system "shasum -a 256 #{YAML_KB}/owasp_ror_cheatsheet.tar.gz > #{YAML_KB}/owasp_ror_cheatsheet.tar.gz.sig"
411
182
  end
412
183
 
413
184
  if Dir.exists? "#{YAML_KB}/code_style"
414
- system "tar cfvz #{YAML_KB}/code_style.tar.gz #{YAML_KB}/code_style"
185
+ system "tar cfvz #{YAML_KB}/code_style.tar.gz -C #{YAML_KB} code_style"
415
186
  system "rm -rf #{YAML_KB}/code_style"
416
187
  system "shasum -a 256 #{YAML_KB}/code_style.tar.gz > #{YAML_KB}/code_style.tar.gz.sig"
417
188
  end
418
189
  if Dir.exists? "#{YAML_KB}/code_quality"
419
- system "tar cfvz #{YAML_KB}/code_quality.tar.gz #{YAML_KB}/code_quality"
190
+ system "tar cfvz #{YAML_KB}/code_quality.tar.gz -C #{YAML_KB} code_quality"
420
191
  system "rm -rf #{YAML_KB}/code_quality"
421
192
  system "shasum -a 256 #{YAML_KB}/code_quality.tar.gz > #{YAML_KB}/code_quality.tar.gz.sig"
422
193
  end
423
194
  if Dir.exists? "#{YAML_KB}/owasp_top_10"
424
- system "tar cfvz #{YAML_KB}/owasp_top_10.tar.gz #{YAML_KB}/owasp_top_10"
195
+ system "tar cfvz #{YAML_KB}/owasp_top_10.tar.gz -C #{YAML_KB} owasp_top_10"
425
196
  system "rm -rf #{YAML_KB}/owasp_top_10"
426
197
  system "shasum -a 256 #{YAML_KB}/owasp_top_10.tar.gz > #{YAML_KB}/owasp_top_10.tar.gz.sig"
427
198
  end
@@ -433,10 +204,6 @@ def __kb_pack
433
204
  puts "kb.yaml created"
434
205
  system "shasum -a 256 #{YAML_KB}/kb.yaml > #{YAML_KB}/kb.yaml.sig"
435
206
 
436
- system "tar cfvz #{YAML_KB}/signatures.tar.gz #{YAML_KB}/*.tar.gz.sig"
437
- system "rm -rf #{YAML_KB}/*.tar.gz.sig "
438
- puts "#{YAML_KB}/signatures.tar.gz created"
439
-
440
207
  puts "Library ready to be shipped"
441
208
 
442
209
  end
data/VERSION CHANGED
@@ -12,4 +12,4 @@
12
12
  # | "Guido" | x.x.0 |
13
13
  # | "Luigi" | x.x.0 |
14
14
  # | "Doc Hudson" | x.x.0 |
15
- 1.6.9 - Tow Mater
15
+ 2.0.0.rc1 - Finn McMissile
data/bin/dawn CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'bundler'
4
- require 'getoptlong'
5
4
  require 'json'
6
5
  require 'terminal-table'
7
6
  require 'justify'
@@ -22,55 +21,19 @@ require 'logger'
22
21
  $logger = Logger.new(STDOUT)
23
22
  $logger.datetime_format = '%Y-%m-%d %H:%M:%S'
24
23
 
25
- opts = GetoptLong.new(
26
- # report formatting options
27
-
28
- [ '--ascii-tabular-report', '-a', GetoptLong::NO_ARGUMENT], # Deprecated in 1.5.x - To be removed in 2.0.0
29
- [ '--tabular', '-T', GetoptLong::NO_ARGUMENT],
30
- [ '--json', '-j', GetoptLong::NO_ARGUMENT],
31
- [ '--html', '-H', GetoptLong::NO_ARGUMENT],
32
- [ '--console', '-K', GetoptLong::NO_ARGUMENT],
33
-
34
- [ '--gem-lock', '-G', GetoptLong::REQUIRED_ARGUMENT], # Deprecated in 1.5.x - To be removed in 2.0.0
35
- [ '--dependencies', '-d', GetoptLong::REQUIRED_ARGUMENT],
36
-
37
- [ '--count-only', '-C', GetoptLong::NO_ARGUMENT],
38
- [ '--exit-on-warn', '-z', GetoptLong::NO_ARGUMENT],
39
-
40
- # Disable checks by family type
41
- [ '--disable-cve-bulletins', GetoptLong::NO_ARGUMENT],
42
- [ '--disable-code-quality', GetoptLong::NO_ARGUMENT],
43
- [ '--disable-code-style', GetoptLong::NO_ARGUMENT],
44
- [ '--disable-owasp-ror-cheatsheet', GetoptLong::NO_ARGUMENT],
45
- [ '--disable-owasp-top-10', GetoptLong::NO_ARGUMENT],
46
-
47
- # Search knowledge base
48
- [ '--search-knowledge-base', '-S', GetoptLong::REQUIRED_ARGUMENT],
49
- # List stuff
50
- [ '--list-knowledge-base', GetoptLong::NO_ARGUMENT],
51
- [ '--list-known-framework', GetoptLong::NO_ARGUMENT],
52
- [ '--list-known-families', GetoptLong::NO_ARGUMENT],
53
- [ '--list-scan-registry', GetoptLong::NO_ARGUMENT],
54
- # please save output to file
55
- [ '--file', '-F', GetoptLong::REQUIRED_ARGUMENT],
56
- # specify an alternate config file
57
- [ '--config-file', '-c', GetoptLong::REQUIRED_ARGUMENT],
58
-
59
- # service options
60
- [ '--verbose', '-V', GetoptLong::NO_ARGUMENT],
61
- [ '--debug', '-D', GetoptLong::NO_ARGUMENT],
62
- [ '--version', '-v', GetoptLong::NO_ARGUMENT],
63
- [ '--help', '-h', GetoptLong::NO_ARGUMENT]
64
- )
65
- opts.quiet=true
66
-
67
24
  engine = nil
25
+ $debug=false
26
+ $verbose=false
68
27
 
69
28
 
70
29
  options = Dawn::Core.read_conf(Dawn::Core.find_conf(true))
71
30
  check = ""
72
31
  guess = {:name=>"", :version=>"", :connected_gems=>[]}
73
32
 
33
+ Dawn::Cli::DawnCli.start
34
+ $logger.bye
35
+ Kernel.exit(0)
36
+
74
37
  ###############################################################################
75
38
  # CLI argument start.
76
39
  #
@@ -179,7 +142,6 @@ target=ARGV.shift
179
142
 
180
143
  target = File.expand_path(".") if target == "."
181
144
 
182
- $logger.helo APPNAME, Dawn::VERSION
183
145
 
184
146
  ## It will be migrated to active record in 2019
185
147
  # r = Dawn::Registry.new
@@ -222,7 +184,6 @@ end
222
184
  if options[:exit_on_warn]
223
185
  Kernel.at_exit do
224
186
  if engine.count_vulnerabilities != 0
225
- # r.do_save({:target=>engine.target, :scan_started=>engine.scan_start, :scan_duration => engine.scan_time.round(3), :issues_found=>engine.vulnerabilities.count, :output_dir=>engine.output_dir_name, :scan_status=>:completed})
226
187
  Kernel.exit(engine.count_vulnerabilities)
227
188
  end
228
189
  end
@@ -270,4 +231,3 @@ Dawn::Reporter.new({:engine=>engine, :apply_all_code=>ret, :format=>options[:out
270
231
  # $logger.error error
271
232
  # end
272
233
  #end
273
- $logger.bye
@@ -27,7 +27,12 @@ Gem::Specification.new do |gem|
27
27
  gem.add_dependency 'justify'
28
28
  gem.add_dependency 'logger-colors'
29
29
  gem.add_dependency 'ptools'
30
- gem.add_dependency 'sqlite3'
30
+ gem.add_dependency 'psych'
31
+
32
+ # For CLI we will use thor
33
+ gem.add_dependency 'thor'
34
+
35
+ # gem.add_dependency 'sqlite3'
31
36
  # gem.add_dependency 'datamapper'
32
37
  # gem.add_dependency 'dm-sqlite-adapter'
33
38