aws_recon 0.2.33 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '049b5ee7040e057fade76bdfaa07078ad216d95b134049ca5d0575bb540f5547'
4
- data.tar.gz: f4e8d67b732aa5b15252bf2acbf1a2f31aa7cc2341d058c9ad9ffe51290d532e
3
+ metadata.gz: 3f7ece5998d62559623442fbd5435c0a6949abb140c00a72007ab28b19cefa0a
4
+ data.tar.gz: b7ebfdc20a895b60a29435b4f70456c73c99d99ae1a642e06bbab9a86f70fd5a
5
5
  SHA512:
6
- metadata.gz: 9ee4a95c41437dc33a6b9e7089ab76be8caf0055b06a50f60347258bbc1f487ddae10574c6b1b5f744a58ad91776af4555c3e67e8753cda7b59e6a27a4757665
7
- data.tar.gz: 7bff1e16da379ec100973e0928c56b861c8c0fbf48705add34fe00e52e30da37655b93133516df78ac4c6b9fbcae3612ceb86c7baa5fa0ce5a2448e474d5cff3
6
+ metadata.gz: 027ee08ba24948e23d96988410aea58b95803dbf3f6e54b496c6da20f36a6913b1e590ca434a0301bf19900cc540989759c38ea96cc4986270d239183effbcdb
7
+ data.tar.gz: c714d6d005d95806a89fe9ff1b82ec4d5dfc12a05ace708505849a84acc594576a9b53b8843cd6b36cc9a0d49a7dc0ca2830a5ae48f0faa9ae21c2cd8cf63cd2
@@ -29,6 +29,7 @@ class EC2 < Mapper
29
29
  struct = OpenStruct.new
30
30
  struct.attributes = response.account_attributes.map(&:to_h)
31
31
  struct.type = 'account'
32
+ struct.arn = "arn:aws::#{@account}"
32
33
 
33
34
  resources.push(struct.to_h)
34
35
  end
@@ -18,6 +18,7 @@ class EMR < Mapper
18
18
 
19
19
  struct = OpenStruct.new(response.block_public_access_configuration.to_h)
20
20
  struct.type = 'configuration'
21
+ struct.arn = "arn:aws:emr:#{@region}:#{@account}/block_public_access_configuration"
21
22
 
22
23
  resources.push(struct.to_h)
23
24
  end
@@ -22,20 +22,26 @@ class GuardDuty < Mapper
22
22
  # get_detector
23
23
  struct = OpenStruct.new(@client.get_detector({ detector_id: detector }).to_h)
24
24
  struct.type = 'detector'
25
- struct.arn = "arn:aws:guardduty:#{@region}:detector/#{detector}"
25
+ struct.arn = "arn:aws:guardduty:#{@region}:#{@account}:detector/#{detector}"
26
26
 
27
27
  # get_findings_statistics (only active findings)
28
28
  struct.findings_statistics = @client.get_findings_statistics({
29
29
  detector_id: detector,
30
30
  finding_statistic_types: ['COUNT_BY_SEVERITY'],
31
- finding_criteria: {
32
- criterion: {
33
- 'service.archived': {
34
- eq: ['false']
35
- }
36
- }
37
- }
31
+ finding_criteria: finding_criteria
38
32
  }).finding_statistics.to_h
33
+ # get_findings_statistics (only active findings older than 7 days)
34
+ struct.findings_statistics_aged_short = @client.get_findings_statistics({
35
+ detector_id: detector,
36
+ finding_statistic_types: ['COUNT_BY_SEVERITY'],
37
+ finding_criteria: finding_criteria(7)
38
+ }).finding_statistics.to_h
39
+ # get_findings_statistics (only active findings older than 30 days)
40
+ struct.findings_statistics_aged_long = @client.get_findings_statistics({
41
+ detector_id: detector,
42
+ finding_statistic_types: ['COUNT_BY_SEVERITY'],
43
+ finding_criteria: finding_criteria(30)
44
+ }).finding_statistics.to_h
39
45
 
40
46
  # get_master_account
41
47
  struct.master_account = @client.get_master_account({ detector_id: detector }).master.to_h
@@ -46,4 +52,27 @@ class GuardDuty < Mapper
46
52
 
47
53
  resources
48
54
  end
55
+
56
+ private
57
+
58
+ def finding_criteria(days = 1)
59
+ criteria = {
60
+ criterion: {
61
+ 'service.archived': { eq: ['false'] }
62
+ }
63
+ }
64
+
65
+ if days > 1
66
+ days_ago = (Time.now.to_f * 1000).to_i - (60 * 60 * 24 * 1000 * days) # with miliseconds
67
+
68
+ criteria = {
69
+ criterion: {
70
+ 'service.archived': { eq: ['false'] },
71
+ 'updatedAt': { less_than: days_ago }
72
+ }
73
+ }
74
+ end
75
+
76
+ criteria
77
+ end
49
78
  end
@@ -88,18 +88,18 @@ class RDS < Mapper
88
88
  #
89
89
  # describe_db_engine_versions
90
90
  #
91
- unless @options.skip_slow
92
- @client.describe_db_engine_versions.each_with_index do |response, page|
93
- log(response.context.operation_name, page)
94
-
95
- response.db_engine_versions.each do |version|
96
- struct = OpenStruct.new(version.to_h)
97
- struct.type = 'db_engine_version'
98
-
99
- resources.push(struct.to_h)
100
- end
101
- end
102
- end
91
+ ### unless @options.skip_slow
92
+ ### @client.describe_db_engine_versions.each_with_index do |response, page|
93
+ ### log(response.context.operation_name, page)
94
+
95
+ ### response.db_engine_versions.each do |version|
96
+ ### struct = OpenStruct.new(version.to_h)
97
+ ### struct.type = 'db_engine_version'
98
+
99
+ ### resources.push(struct.to_h)
100
+ ### end
101
+ ### end
102
+ ### end
103
103
 
104
104
  resources
105
105
  end
@@ -19,7 +19,7 @@ class Route53 < Mapper
19
19
  response.hosted_zones.each do |zone|
20
20
  struct = OpenStruct.new(zone.to_h)
21
21
  struct.type = 'zone'
22
- struct.arn = zone.id
22
+ struct.arn = "aws:route53:#{@region}:#{@account}:zone/#{zone.name}"
23
23
  struct.logging_config = @client
24
24
  .list_query_logging_configs({ hosted_zone_id: zone.id })
25
25
  .query_logging_configs.first.to_h
@@ -19,7 +19,7 @@ class SES < Mapper
19
19
  response.identities.each do |identity|
20
20
  struct = OpenStruct.new
21
21
  struct.type = 'identity'
22
- struct.arn = "aws:ses:#{@region}::identity/#{identity}"
22
+ struct.arn = "arn:aws:ses:#{@region}:#{@account}:identity/#{identity}"
23
23
 
24
24
  # get_identity_dkim_attributes
25
25
  struct.dkim_attributes = @client.get_identity_dkim_attributes({ identities: [identity] }).dkim_attributes[identity].to_h
@@ -35,7 +35,7 @@ class SSM < Mapper
35
35
  struct = OpenStruct.new(parameter.to_h)
36
36
  struct.string_type = parameter.type
37
37
  struct.type = 'parameter'
38
- struct.arn = "arn:aws:#{@service}:#{@region}::parameter:#{parameter.name}"
38
+ struct.arn = "arn:aws:#{@service}:#{@region}:#{@account}:parameter:#{parameter.name}"
39
39
 
40
40
  resources.push(struct.to_h)
41
41
  end
@@ -34,14 +34,14 @@ class WAFV2 < Mapper
34
34
  }
35
35
 
36
36
  # get_web_acl
37
- @client.get_web_acl(params).each do |response|
38
- struct.arn = response.web_acl.arn
39
- struct.details = response.web_acl
37
+ @client.get_web_acl(params).each do |r|
38
+ struct.arn = r.web_acl.arn
39
+ struct.details = r.web_acl
40
40
  end
41
41
 
42
42
  # list_resources_for_web_acl
43
- @client.list_resources_for_web_acl({ web_acl_arn: 'ResourceArn' }).each do |response|
44
- struct.resources = response.resource_arns.map(&:to_h)
43
+ @client.list_resources_for_web_acl({ web_acl_arn: 'ResourceArn' }).each do |r|
44
+ struct.resources = r.resource_arns.map(&:to_h)
45
45
  end
46
46
 
47
47
  resources.push(struct.to_h)
@@ -16,6 +16,7 @@ class XRay < Mapper
16
16
  struct = OpenStruct.new
17
17
  struct.config = @client.get_encryption_config.encryption_config.to_h
18
18
  struct.type = 'config'
19
+ struct.arn = "arn:aws:xray:#{@region}:#{@account}/config"
19
20
 
20
21
  resources.push(struct.to_h)
21
22
 
@@ -1,3 +1,3 @@
1
1
  module AwsRecon
2
- VERSION = "0.2.33"
2
+ VERSION = "0.3.1"
3
3
  end
data/readme.md CHANGED
@@ -54,13 +54,13 @@ To run locally, first install the gem:
54
54
 
55
55
  ```
56
56
  $ gem install aws_recon
57
- Fetching aws_recon-0.2.28.gem
57
+ Fetching aws_recon-0.3.0.gem
58
58
  Fetching aws-sdk-3.0.1.gem
59
59
  Fetching parallel-1.20.1.gem
60
60
  ...
61
61
  Successfully installed aws-sdk-3.0.1
62
62
  Successfully installed parallel-1.20.1
63
- Successfully installed aws_recon-0.2.28
63
+ Successfully installed aws_recon-0.3.0
64
64
  ```
65
65
 
66
66
  Or add it to your Gemfile using `bundle`:
@@ -72,7 +72,7 @@ Resolving dependencies...
72
72
  ...
73
73
  Using aws-sdk 3.0.1
74
74
  Using parallel-1.20.1
75
- Using aws_recon 0.2.28
75
+ Using aws_recon 0.3.0
76
76
  ```
77
77
 
78
78
  ## Usage
@@ -225,7 +225,7 @@ Most users will want to limit collection to relevant services and regions. Runni
225
225
  ```
226
226
  $ aws_recon -h
227
227
 
228
- AWS Recon - AWS Inventory Collector (0.2.28)
228
+ AWS Recon - AWS Inventory Collector (0.3.0)
229
229
 
230
230
  Usage: aws_recon [options]
231
231
  -r, --regions [REGIONS] Regions to scan, separated by comma (default: all)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_recon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.33
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Larsen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-01-31 00:00:00.000000000 Z
12
+ date: 2021-02-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk