dawnscanner 2.0.0.rc2 → 2.0.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +2 -0
- data/README.md +2 -2
- data/VERSION +1 -1
- data/checksum/dawnscanner-2.0.0.rc2.gem.sha1 +1 -0
- data/lib/dawn/cli/dawn_cli.rb +11 -4
- data/lib/dawn/engine.rb +16 -15
- data/lib/dawn/version.rb +5 -5
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72552d751163f1b0a97daa602bf4251d879e66155cb213aaecb0e7b4e9654af1
|
4
|
+
data.tar.gz: 2f50331bf792286959cd79efb3fc36f106548e11f7c338318b84779b5cb3aa4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e1d78d9d5e1b8c407b560a5199d0a3536382e13ce09bda3de2e98a9bffde2e8a0b472acb90a18b16e252355bbfbdde35180072c034500388389613dabd8497a
|
7
|
+
data.tar.gz: 600b924b3801499ef17e75fbfd5b9e01f9973394f7a76d34828f2702ae76ad4b0364b75403fc0c12820089f9b56a55ec1d2c42a8b7c8c57d5e434f96dac621f1
|
data/Changelog.md
CHANGED
@@ -17,6 +17,8 @@ _latest update: mer 28 nov 2018, 11.03.53, CET_
|
|
17
17
|
* Adding telemetry
|
18
18
|
* Dawn::Utils include refactory. Now it's available application wide
|
19
19
|
* debug information refactory.
|
20
|
+
* engine class, apply_all method now accepts an optional parameter containing a
|
21
|
+
list of security checks to be excluded (issue #230).
|
20
22
|
|
21
23
|
## Version 1.6.9 - codename: Tow Mater (2018-11-28)
|
22
24
|
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Dawnscanner - The raising security scanner for ruby web applications
|
2
2
|
|
3
|
-
dawnscanner is a source code scanner designed to review your ruby code for
|
4
|
-
issues.
|
3
|
+
dawnscanner is a source code scanner designed to review your ruby code for
|
4
|
+
security issues.
|
5
5
|
|
6
6
|
dawnscanner is able to scan plain ruby scripts (e.g. command line applications) but
|
7
7
|
all its features are unleashed when dealing with web applications source code.
|
data/VERSION
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
1c96f786d3683b79311855a14b8ef7d7ebe7b13d
|
data/lib/dawn/cli/dawn_cli.rb
CHANGED
@@ -50,11 +50,13 @@ module Dawn
|
|
50
50
|
desc "kb SUBCOMMAND ... ARGS", "Interacts with the knowledge base"
|
51
51
|
subcommand "kb", Dawn::Cli::Kb
|
52
52
|
|
53
|
-
desc "scan", "scans a
|
53
|
+
desc "scan", "scans a ruby written application for security issues"
|
54
54
|
option :config_file
|
55
|
-
|
55
|
+
method_option :gemfile, :type=>:boolean, :default=>true, :aliases => "-G", :desc => "uses Gemfile.lock to detect MVC"
|
56
|
+
method_option :skip, :type=>:array, :aliases => "-S", :desc => "specify a list of security checks to be skipped"
|
56
57
|
option :exit_on_warn, :type=>:boolean
|
57
58
|
option :count, :type=>:boolean
|
59
|
+
option :s
|
58
60
|
option :output
|
59
61
|
|
60
62
|
def scan(target)
|
@@ -65,6 +67,10 @@ module Dawn
|
|
65
67
|
|
66
68
|
$debug = true if options[:debug]
|
67
69
|
$verbose = true if options[:verbose]
|
70
|
+
checks_to_be_skipped = []
|
71
|
+
checks_to_be_skipped = options[:skip] unless options[:skip].nil?
|
72
|
+
|
73
|
+
$logger.error("#{options[:skip]}")
|
68
74
|
|
69
75
|
debug_me("scanning #{target}")
|
70
76
|
|
@@ -73,9 +79,10 @@ module Dawn
|
|
73
79
|
|
74
80
|
$telemetry_url = $config[:telemetry][:endpoint] if $config[:telemetry][:enabled]
|
75
81
|
debug_me("telemetry url is " + $telemetry_url) unless @telemetry_url.nil?
|
82
|
+
|
76
83
|
$telemetry_id = $config[:telemetry][:id] if $config[:telemetry][:enabled]
|
77
|
-
|
78
84
|
debug_me("telemetry id is " + $telemetry_id) unless @telemetry_id.nil?
|
85
|
+
|
79
86
|
$logger.info("telemetry is disabled in config file") unless $config[:telemetry][:enabled]
|
80
87
|
|
81
88
|
engine = Dawn::Core.detect_mvc(target) unless options[:gemfile]
|
@@ -97,7 +104,7 @@ module Dawn
|
|
97
104
|
|
98
105
|
engine.load_knowledge_base
|
99
106
|
|
100
|
-
ret = engine.apply_all
|
107
|
+
ret = engine.apply_all(checks_to_be_skipped)
|
101
108
|
if options[:output]
|
102
109
|
STDERR.puts (ret)? engine.vulnerabilities.count : "-1" unless options[:output] == "json"
|
103
110
|
STDERR.puts (ret)? {:status=>"OK", :vulnerabilities_count=>engine.count_vulnerabilities}.to_json : {:status=>"KO", :vulnerabilities_count=>-1}.to_json if options[:output] == "json"
|
data/lib/dawn/engine.rb
CHANGED
@@ -332,28 +332,25 @@ module Dawn
|
|
332
332
|
request = Net::HTTP::Post.new(uri.request_uri, header)
|
333
333
|
request.body = tele.to_json
|
334
334
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
335
|
+
begin
|
336
|
+
response=http.request(request)
|
337
|
+
debug_me(response.inspect)
|
338
|
+
return true
|
339
|
+
rescue => e
|
340
|
+
$logger.error "telemetry: #{e.message}"
|
341
|
+
return false
|
342
|
+
end
|
340
343
|
end
|
341
344
|
|
342
|
-
def apply_all
|
345
|
+
def apply_all(checks_to_be_skipped=[])
|
343
346
|
@scan_start = Time.now
|
347
|
+
debug_me("I'm asked to skip those checks #{checks_to_be_skipped}")
|
344
348
|
debug_me("SCAN STARTED: #{@scan_start}")
|
345
349
|
|
346
350
|
telemetry
|
347
351
|
|
348
|
-
# FIXME.20140325
|
349
|
-
# Now if no checks are loaded because knowledge base was not previously called, apply and apply_all proudly refuse to run.
|
350
|
-
# Reason is simple, load_knowledge_base now needs enabled check array
|
351
|
-
# and I don't want to pollute engine API to propagate this value. It's
|
352
|
-
# a param to load_knowledge_base and then bin/dawn calls it
|
353
|
-
# accordingly.
|
354
|
-
# load_knowledge_base if @checks.nil?
|
355
352
|
if @checks.nil?
|
356
|
-
$logger.
|
353
|
+
$logger.error "you must load knowledge base before trying to apply security checks"
|
357
354
|
@scan_stop = Time.now
|
358
355
|
debug_me("SCAN STOPPED: #{@scan_stop}")
|
359
356
|
return false
|
@@ -366,7 +363,11 @@ module Dawn
|
|
366
363
|
end
|
367
364
|
|
368
365
|
@checks.each do |check|
|
369
|
-
|
366
|
+
if checks_to_be_skipped.include?(check.name)
|
367
|
+
$logger.info("skipping security check #{check.name}")
|
368
|
+
else
|
369
|
+
_do_apply(check)
|
370
|
+
end
|
370
371
|
end
|
371
372
|
|
372
373
|
@scan_stop = Time.now
|
data/lib/dawn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dawnscanner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.rc3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paolo Perego
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cvss
|
@@ -288,6 +288,7 @@ files:
|
|
288
288
|
- checksum/dawnscanner-1.6.7.gem.sha1
|
289
289
|
- checksum/dawnscanner-1.6.8.gem.sha1
|
290
290
|
- checksum/dawnscanner-2.0.0.rc1.gem.sha1
|
291
|
+
- checksum/dawnscanner-2.0.0.rc2.gem.sha1
|
291
292
|
- code_of_conduct.md
|
292
293
|
- dawnscanner.gemspec
|
293
294
|
- doc/change.sh
|