qualys 0.1.2 → 0.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6a46cedfa5961875af503af600cb5a1c0e37800
4
- data.tar.gz: 075cbebe73c86adf984e75450702a9f3403e9681
3
+ metadata.gz: e957c9f5a99607890d0f0c19e0e0cf76518a8a71
4
+ data.tar.gz: 87dbbf0f630a150cc16d177c9c7a1e07e585fa24
5
5
  SHA512:
6
- metadata.gz: 8cdaa1a3650ab9178de86d4f62b6338347c1f93102438d642c08197e8ce8b9bd25282f211bc890b4d907420b7dbddc5423cc8143af25ab42e5c90ec221fcdffa
7
- data.tar.gz: d65a1e6edd53d6f2b5f81187ca87b9625b18f30ee563fe40978c588560097f0e00c90052cd6034d0f7753da989a6afe1089dc58a204dadd440047664ca147f48
6
+ metadata.gz: 2cba8be57e2c3d8dcf4a40139baf178f09f7e084d3c3aa2b5a9ecb3ffe3c766f0e14229dfca580c605b4e821c96ed6a548a09c6905e55f69f080c118b801989b
7
+ data.tar.gz: ec85b2412fb86b9150b3d0f5e84c3dd6b11a2f6295fd88f1185c558d6a0825b21e71502b9b9af4082ab11be9e88c4deab9b2bf585cdd32e2fd08106e058dbb62
data/README.md CHANGED
@@ -45,6 +45,17 @@ You can easily get a list of all scans within your Qualys account by accessing t
45
45
 
46
46
  ```ruby
47
47
  scans = Qualys::Scans.all
48
+ #-> [#<Qualys::Scan:0x007fad4c4645c8 @ref="scan/refid", @title="Scan Title", @type="Scheduled", @date="2015-04-15T12:02:12Z", @duration="01:51:38", @status="Finished", @target="ip ranges", @user="managing_user">...
49
+ ```
50
+
51
+ You can get more details from each scan like:
52
+
53
+ ```ruby
54
+ scans = Qualys::Scans.all
55
+ puts scans.first.details
56
+ #-> {"ip"=>"x.x.x.x", "dns"=>"mikemackintosh.com", "netbios"=>nil, "qid"=>86000, "result"=>"Server Version\tServer Banner\nnginx\tnginx", "protocol"=>"tcp", "port"=>"80", "ssl"=>"no", "fqdn"=>""},
57
+ # {"ip"=>"x.x.x.x", "dns"=>"mikemackintosh.com", "netbios"=>nil, "qid"=>86189, "result"=>"Number of web servers behind load balancer:\n2 - based on IP Identification values", "protocol"=>"tcp", "port"=>"80", "ssl"=>"no", "fqdn"=>""},
58
+ # {"ip"=>"x.x.x.x, "dns"=>"mikemackintosh.com", "netbios"=>nil, "qid"=>86001, "result"=>"Server Version\tServer Banner\nnginx\tnginx", "protocol"=>"tcp", "port"=>"443", "ssl"=>"no", "fqdn"=>""}
48
59
  ```
49
60
 
50
61
  ## References
@@ -0,0 +1,21 @@
1
+ module Qualys
2
+ class Compliance < Api
3
+
4
+ def self.all
5
+ response = api_get("compliance/control/", { :query => { :action => 'list' }} )
6
+
7
+ unless response.parsed_response['<COMPLIANCE_SCAN_RESULT_OUTPUT']['RESPONSE'].has_key? 'COMPLIANCE_SCAN'
8
+ return []
9
+ end
10
+
11
+ response.parsed_response['COMPLIANCE_SCAN_RESULT_OUTPUT']['RESPONSE']['COMPLIANCE_SCAN']
12
+
13
+ end
14
+
15
+ def self.each
16
+ self.all
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,47 @@
1
+ module Qualys
2
+ class Reports < Api
3
+
4
+ def self.all
5
+ response = api_get("report/", { :query => { :action => 'list' }} )
6
+ puts response.parsed_response.inspect
7
+ unless response.parsed_response['SCAN_LIST_OUTPUT']['RESPONSE'].has_key? 'SCAN_LIST'
8
+ return []
9
+ end
10
+
11
+ #scanlist = response.parsed_response['SCAN_LIST_OUTPUT']['RESPONSE']['SCAN_LIST']['SCAN']
12
+ #scanlist.map!{|scan| Scan.new(scan)}
13
+
14
+ end
15
+
16
+ def self.each
17
+ self.all
18
+ end
19
+
20
+ end
21
+
22
+ class Report
23
+
24
+ attr_accessor :ref, :title, :type, :date, :duration, :status, :target, :user
25
+
26
+ def initialize(scan)
27
+ @ref = scan['REF']
28
+ @title = scan['TITLE']
29
+ @type = scan['TYPE']
30
+ @date = scan['LAUNCH_DATETIME']
31
+ @duration = scan['DURATION']
32
+ @status = scan['STATUS']['STATE']
33
+ @target = scan['TARGET']
34
+ @user = scan['USER_LOGIN']
35
+ end
36
+
37
+ end
38
+
39
+ def finished?
40
+ if @status.eql? 'Finished'
41
+ return true
42
+ end
43
+
44
+ false
45
+ end
46
+
47
+ end
@@ -16,6 +16,18 @@ module Qualys
16
16
  self.all
17
17
  end
18
18
 
19
+ def self.get(ref)
20
+ response = api_get("scan/", {
21
+ :query => {
22
+ :action => 'fetch',
23
+ :scan_ref => ref,
24
+ :mode => 'extended',
25
+ :output_format => 'json'
26
+ }} )
27
+
28
+ JSON.parse(response.parsed_response)
29
+ end
30
+
19
31
  end
20
32
 
21
33
  class Scan
@@ -33,14 +45,20 @@ module Qualys
33
45
  @user = scan['USER_LOGIN']
34
46
  end
35
47
 
36
- end
37
-
38
- def finished?
39
- if @status.eql? 'Finished'
40
- return true
48
+ def details
49
+ Scans.get(@ref)
41
50
  end
42
51
 
43
- false
52
+ def finished?
53
+ if @status.eql? 'Finished'
54
+ return true
55
+ end
56
+
57
+ false
58
+ end
44
59
  end
45
60
 
61
+ class Details
62
+
63
+ end
46
64
  end
@@ -1,3 +1,3 @@
1
1
  module Qualys
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qualys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Mackintosh
@@ -154,7 +154,9 @@ files:
154
154
  - lib/qualys.rb
155
155
  - lib/qualys/api.rb
156
156
  - lib/qualys/auth.rb
157
+ - lib/qualys/compliance.rb
157
158
  - lib/qualys/config.rb
159
+ - lib/qualys/reports.rb
158
160
  - lib/qualys/scans.rb
159
161
  - lib/qualys/version.rb
160
162
  - qualys.gemspec