inspec_tools 2.0.2.pre7 → 2.0.2.pre8

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: 1410fb02c77dbcd0c595447a1cef161810c2ae471864d46afc16f5c966d00eb5
4
- data.tar.gz: 26ad8e5b1c328989827007a74c2fd6db2049c7e7d2cafa29a3b172f497e2f0b0
3
+ metadata.gz: 4c0c4c149888d3a7b8c1c4455e4110ca665cac3ed59544120a2cc0447a031544
4
+ data.tar.gz: dac8d2543995b1aaceb383b1a9239c1280cfd74b2effb99796f558a0e9ef2812
5
5
  SHA512:
6
- metadata.gz: b4aa66076589885a11df71770c48d6bc69688442b6bf8543f5cd4e91bd8967a2340f3a0bcb3e25cdd4873fa3b917123e58430fa41725ee7b4da772e8778973f4
7
- data.tar.gz: 38bded3989b79a3aa8e474a23c3c7cc0bc08ee9c08cb17250340cfb09d16fcdc041d4b2f58589be48b1c4e57f62e5c1be49d9cb94fcffb5c53b1fafb85e91346
6
+ metadata.gz: 020fd1249cbe919996fbc7037cb6d5d55bad2a99ee6f8eed7044afc3452804cc264940c471c110b003b59e24c31039c194e6553b7114c9be2b353d41682a01f8
7
+ data.tar.gz: 44911ab26c33046670a35a2a5919afb0c4a1b8de38838dd04dfc65720df9020018f566cfb1e027fe014209b72d18cd2800aa3d6fc2cfd9af84758bae39bbc73f
data/CHANGELOG.md CHANGED
@@ -2,7 +2,26 @@
2
2
 
3
3
  ## [Unreleased](https://github.com/mitre/inspec_tools/tree/HEAD)
4
4
 
5
- [Full Changelog](https://github.com/mitre/inspec_tools/compare/v2.0.2.pre6...HEAD)
5
+ [Full Changelog](https://github.com/mitre/inspec_tools/compare/v2.0.2.pre7...HEAD)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - CCI Information is blank in CKL output [\#147](https://github.com/mitre/inspec_tools/issues/147)
10
+ - STIG Viewer fails to validate CKL Schema [\#131](https://github.com/mitre/inspec_tools/issues/131)
11
+
12
+ **Closed issues:**
13
+
14
+ - Add integration tests to validate output Checklist against schema [\#62](https://github.com/mitre/inspec_tools/issues/62)
15
+
16
+ **Merged pull requests:**
17
+
18
+ - Break CCI Vuln Information into separate StigData [\#167](https://github.com/mitre/inspec_tools/pull/167) ([Bialogs](https://github.com/Bialogs))
19
+ - Missing array type for replace\_tags [\#166](https://github.com/mitre/inspec_tools/pull/166) ([Didar-Bhullar](https://github.com/Didar-Bhullar))
20
+ - 131 ckl schema [\#163](https://github.com/mitre/inspec_tools/pull/163) ([Bialogs](https://github.com/Bialogs))
21
+
22
+ ## [v2.0.2.pre7](https://github.com/mitre/inspec_tools/tree/v2.0.2.pre7) (2020-04-28)
23
+
24
+ [Full Changelog](https://github.com/mitre/inspec_tools/compare/v2.0.2.pre6...v2.0.2.pre7)
6
25
 
7
26
  **Implemented enhancements:**
8
27
 
@@ -19,7 +38,6 @@
19
38
  - Updated README to standardize wording [\#160](https://github.com/mitre/inspec_tools/pull/160) ([Bialogs](https://github.com/Bialogs))
20
39
  - Remove guardfile [\#159](https://github.com/mitre/inspec_tools/pull/159) ([Bialogs](https://github.com/Bialogs))
21
40
  - Remove unnecessary debug output from xccdf2inspec [\#158](https://github.com/mitre/inspec_tools/pull/158) ([rbclark](https://github.com/rbclark))
22
- - Add unit tests for XLSXTool and add system tests in CI [\#130](https://github.com/mitre/inspec_tools/pull/130) ([Bialogs](https://github.com/Bialogs))
23
41
 
24
42
  ## [v2.0.2.pre6](https://github.com/mitre/inspec_tools/tree/v2.0.2.pre6) (2020-04-28)
25
43
 
@@ -68,6 +86,7 @@
68
86
 
69
87
  **Merged pull requests:**
70
88
 
89
+ - Add unit tests for XLSXTool and add system tests in CI [\#130](https://github.com/mitre/inspec_tools/pull/130) ([Bialogs](https://github.com/Bialogs))
71
90
  - Apply fixes from CodeFactor [\#129](https://github.com/mitre/inspec_tools/pull/129) ([aaronlippold](https://github.com/aaronlippold))
72
91
 
73
92
  ## [v2.0.1.pre3](https://github.com/mitre/inspec_tools/tree/v2.0.1.pre3) (2020-04-03)
@@ -471,7 +490,6 @@
471
490
  **Merged pull requests:**
472
491
 
473
492
  - Updated rake version [\#69](https://github.com/mitre/inspec_tools/pull/69) ([robthew](https://github.com/robthew))
474
- - Add in 'inspec' and 'fileutils' require statements [\#65](https://github.com/mitre/inspec_tools/pull/65) ([samcornwell](https://github.com/samcornwell))
475
493
 
476
494
  ## [v1.4.1](https://github.com/mitre/inspec_tools/tree/v1.4.1) (2019-06-20)
477
495
 
@@ -483,6 +501,7 @@
483
501
 
484
502
  **Merged pull requests:**
485
503
 
504
+ - Add in 'inspec' and 'fileutils' require statements [\#65](https://github.com/mitre/inspec_tools/pull/65) ([samcornwell](https://github.com/samcornwell))
486
505
  - Apply fixes from CodeFactor [\#61](https://github.com/mitre/inspec_tools/pull/61) ([aaronlippold](https://github.com/aaronlippold))
487
506
 
488
507
  ## [v1.3.6](https://github.com/mitre/inspec_tools/tree/v1.3.6) (2019-05-02)
@@ -42,6 +42,12 @@ module HappyMapperTools
42
42
  # Class Asset maps from the 'STIG_DATA' from Checklist XML file using HappyMapper
43
43
  class StigData
44
44
  include HappyMapper
45
+
46
+ def initialize(attrib = nil, data = nil)
47
+ self.attrib = attrib
48
+ self.data = data
49
+ end
50
+
45
51
  tag 'STIG_DATA'
46
52
  has_one :attrib, String, tag: 'VULN_ATTRIBUTE'
47
53
  has_one :data, String, tag: 'ATTRIBUTE_DATA'
@@ -113,57 +113,6 @@ module InspecTools
113
113
  end
114
114
  end
115
115
 
116
- def generate_vuln_data(control)
117
- vuln = HappyMapperTools::StigChecklist::Vuln.new
118
- stig_data_list = []
119
-
120
- %w{
121
- Vuln_Num Severity Group_Title Rule_ID Rule_Ver Rule_Title Vuln_Discuss
122
- Check_Content Fix_Text CCI_REF
123
- }.each do |attrib|
124
- if attrib == 'Severity'
125
- key = :impact
126
- else
127
- key = attrib.downcase.to_sym
128
- end
129
-
130
- next if control[key].nil?
131
-
132
- if attrib == 'Severity'
133
- value = Utils::InspecUtil.get_impact_string(control[key])
134
- next if value == 'none'
135
-
136
- value = 'high' if value == 'critical'
137
- else
138
- value = control[key]
139
- end
140
-
141
- stigdata = HappyMapperTools::StigChecklist::StigData.new
142
- stigdata.attrib = attrib
143
- stigdata.data = value
144
- stig_data_list.push(stigdata)
145
- end
146
-
147
- stigdata = HappyMapperTools::StigChecklist::StigData.new
148
- stigdata.attrib = 'STIGRef'
149
- stigdata.data = @title
150
- stig_data_list.push(stigdata)
151
-
152
- vuln.stig_data = stig_data_list
153
- vuln.status = Utils::InspecUtil.control_status(control)
154
- vuln.comments = "\nAutomated compliance tests brought to you by the MITRE corporation and the InSpec project.\n\nInspec Profile: #{control[:profile_name]}\nProfile shasum: #{control[:profile_shasum]}"
155
- vuln.finding_details = Utils::InspecUtil.control_finding_details(control, vuln.status)
156
- vuln.severity_override = ''
157
- vuln.severity_justification = ''
158
-
159
- vuln
160
- end
161
-
162
- def generate_title(title, json, date)
163
- title ||= "Untitled - Checklist Created from Automated InSpec Results JSON; Profiles: #{json['profiles'].map { |x| x['name'] }.join(' | ')}"
164
- title + " Checklist Date: #{date || Date.today.to_s}"
165
- end
166
-
167
116
  def generate_ckl
168
117
  stigs = HappyMapperTools::StigChecklist::Stigs.new
169
118
  istig = HappyMapperTools::StigChecklist::IStig.new
@@ -191,6 +140,27 @@ module InspecTools
191
140
  @checklist.asset = generate_asset
192
141
  end
193
142
 
143
+ def generate_vuln_data(control)
144
+ vuln = HappyMapperTools::StigChecklist::Vuln.new
145
+ stig_data_list = []
146
+
147
+ %w{Vuln_Num Group_Title Rule_ID Rule_Ver Rule_Title Vuln_Discuss Check_Content Fix_Text}.each do |attribute|
148
+ stig_data_list << create_stig_data_element(attribute, control)
149
+ end
150
+ stig_data_list << handle_severity(control)
151
+ stig_data_list += handle_cci_ref(control)
152
+ stig_data_list << handle_stigref
153
+
154
+ vuln.stig_data = stig_data_list.reject!(&:nil?)
155
+ vuln.status = Utils::InspecUtil.control_status(control)
156
+ vuln.comments = "\nAutomated compliance tests brought to you by the MITRE corporation and the InSpec project.\n\nInspec Profile: #{control[:profile_name]}\nProfile shasum: #{control[:profile_shasum]}"
157
+ vuln.finding_details = Utils::InspecUtil.control_finding_details(control, vuln.status)
158
+ vuln.severity_override = ''
159
+ vuln.severity_justification = ''
160
+
161
+ vuln
162
+ end
163
+
194
164
  def generate_asset
195
165
  asset = HappyMapperTools::StigChecklist::Asset.new
196
166
  asset.role = !@metadata['role'].nil? ? @metadata['role'] : 'Workstation'
@@ -321,5 +291,43 @@ module InspecTools
321
291
  end
322
292
  @benchmark.group = group_array
323
293
  end
294
+
295
+ def generate_title(title, json, date)
296
+ title ||= "Untitled - Checklist Created from Automated InSpec Results JSON; Profiles: #{json['profiles'].map { |x| x['name'] }.join(' | ')}"
297
+ title + " Checklist Date: #{date || Date.today.to_s}"
298
+ end
299
+
300
+ def create_stig_data_element(attribute, control)
301
+ return HappyMapperTools::StigChecklist::StigData.new(attribute, control[attribute.downcase.to_sym]) unless control[attribute.downcase.to_sym].nil?
302
+ end
303
+
304
+ def handle_severity(control)
305
+ return if control[:impact].nil?
306
+
307
+ value = Utils::InspecUtil.get_impact_string(control[:impact])
308
+ return if value == 'none'
309
+
310
+ value = 'high' if value == 'critical'
311
+
312
+ HappyMapperTools::StigChecklist::StigData.new('Severity', value)
313
+ end
314
+
315
+ def handle_cci_ref(control)
316
+ return [] if control[:cci_ref].nil?
317
+
318
+ cci_data = []
319
+ if control[:cci_ref].respond_to?(:each)
320
+ control[:cci_ref].each do |cci_number|
321
+ cci_data << HappyMapperTools::StigChecklist::StigData.new('CCI_REF', cci_number)
322
+ end
323
+ cci_data
324
+ else
325
+ cci_data << HappyMapperTools::StigChecklist::StigData.new('CCI_REF', control[:cci_ref])
326
+ end
327
+ end
328
+
329
+ def handle_stigref
330
+ HappyMapperTools::StigChecklist::StigData.new('STIGRef', @title)
331
+ end
324
332
  end
325
333
  end
@@ -35,7 +35,7 @@ module InspecPlugins
35
35
  option :output, required: false, aliases: '-o', default: 'profile'
36
36
  option :format, required: false, aliases: '-f', enum: %w{ruby hash}, default: 'ruby'
37
37
  option :separate_files, required: false, type: :boolean, default: true, aliases: '-s'
38
- option :replace_tags, required: false, aliases: '-r'
38
+ option :replace_tags, type: :array, required: false, aliases: '-r'
39
39
  option :metadata, required: false, aliases: '-m'
40
40
  def xccdf2inspec
41
41
  xccdf = InspecTools::XCCDF.new(File.read(options[:xccdf]), options[:replace_tags])
@@ -145,20 +145,16 @@ module Utils
145
145
 
146
146
  def self.control_status(control)
147
147
  status_list = control[:status].uniq
148
- if status_list.include?('error')
149
- result = 'Profile_Error'
150
- elsif control[:impact].to_f.zero?
151
- result = 'Not_Applicable'
148
+ if control[:impact].to_f.zero?
149
+ 'Not_Applicable'
152
150
  elsif status_list.include?('failed')
153
- result = 'Open'
151
+ 'Open'
154
152
  elsif status_list.include?('passed')
155
- result = 'NotAFinding'
156
- elsif status_list.include?('skipped')
157
- result = 'Not_Reviewed'
153
+ 'NotAFinding'
158
154
  else
159
- result = 'Profile_Error'
155
+ # profile skipped or profile error
156
+ 'Not_Reviewed'
160
157
  end
161
- result
162
158
  end
163
159
 
164
160
  def self.control_finding_details(control, control_clk_status)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2.pre7
4
+ version: 2.0.2.pre8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Thew
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2020-04-28 00:00:00.000000000 Z
14
+ date: 2020-05-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: colorize