inspec 1.31.0 → 1.45.9

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.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/CHANGELOG.md +2599 -1
  4. data/Gemfile +0 -1
  5. data/README.md +24 -34
  6. data/Rakefile +0 -31
  7. data/docs/dsl_inspec.md +10 -0
  8. data/docs/matchers.md +29 -0
  9. data/docs/plugin_kitchen_inspec.md +18 -24
  10. data/docs/profiles.md +101 -81
  11. data/docs/resources/aide_conf.md.erb +71 -0
  12. data/docs/resources/apache_conf.md.erb +19 -33
  13. data/docs/resources/apt.md.erb +22 -36
  14. data/docs/resources/audit_policy.md.erb +9 -24
  15. data/docs/resources/auditd.md.erb +78 -0
  16. data/docs/resources/auditd_conf.md.erb +20 -34
  17. data/docs/resources/auditd_rules.md.erb +8 -24
  18. data/docs/resources/bash.md.erb +4 -26
  19. data/docs/resources/bond.md.erb +25 -40
  20. data/docs/resources/bridge.md.erb +5 -25
  21. data/docs/resources/bsd_service.md.erb +5 -25
  22. data/docs/resources/command.md.erb +35 -50
  23. data/docs/resources/cpan.md.erb +62 -0
  24. data/docs/resources/cran.md.erb +54 -0
  25. data/docs/resources/crontab.md.erb +9 -23
  26. data/docs/resources/csv.md.erb +12 -27
  27. data/docs/resources/dh_params.md +1 -0
  28. data/docs/resources/directory.md.erb +5 -25
  29. data/docs/resources/docker.md.erb +61 -58
  30. data/docs/resources/docker_container.md.erb +23 -19
  31. data/docs/resources/docker_image.md.erb +20 -16
  32. data/docs/resources/elasticsearch.md.erb +245 -0
  33. data/docs/resources/etc_fstab.md.erb +120 -0
  34. data/docs/resources/etc_group.md.erb +29 -45
  35. data/docs/resources/etc_hosts.md.erb +68 -0
  36. data/docs/resources/etc_hosts_allow.md.erb +68 -0
  37. data/docs/resources/etc_hosts_deny.md.erb +68 -0
  38. data/docs/resources/file.md.erb +227 -216
  39. data/docs/resources/firewalld.md.erb +104 -0
  40. data/docs/resources/gem.md.erb +21 -35
  41. data/docs/resources/group.md.erb +16 -30
  42. data/docs/resources/grub_conf.md.erb +9 -24
  43. data/docs/resources/host.md.erb +32 -49
  44. data/docs/resources/http.md.erb +38 -44
  45. data/docs/resources/iis_app.md.erb +25 -35
  46. data/docs/resources/iis_site.md.erb +26 -40
  47. data/docs/resources/inetd_conf.md.erb +27 -42
  48. data/docs/resources/ini.md.erb +9 -23
  49. data/docs/resources/interface.md.erb +5 -25
  50. data/docs/resources/iptables.md.erb +15 -29
  51. data/docs/resources/json.md.erb +12 -27
  52. data/docs/resources/kernel_module.md.erb +47 -61
  53. data/docs/resources/kernel_parameter.md.erb +15 -29
  54. data/docs/resources/key_rsa.md.erb +3 -0
  55. data/docs/resources/launchd_service.md.erb +5 -25
  56. data/docs/resources/limits_conf.md.erb +15 -29
  57. data/docs/resources/login_def.md.erb +15 -30
  58. data/docs/resources/mount.md.erb +18 -33
  59. data/docs/resources/mssql_session.md.erb +9 -12
  60. data/docs/resources/mysql_conf.md.erb +28 -32
  61. data/docs/resources/mysql_session.md.erb +15 -29
  62. data/docs/resources/nginx.md.erb +78 -0
  63. data/docs/resources/nginx_conf.md.erb +127 -0
  64. data/docs/resources/npm.md.erb +19 -35
  65. data/docs/resources/ntp_conf.md.erb +20 -37
  66. data/docs/resources/oneget.md.erb +15 -30
  67. data/docs/resources/oracledb_session.md.erb +9 -11
  68. data/docs/resources/os.md.erb +29 -43
  69. data/docs/resources/os_env.md.erb +23 -44
  70. data/docs/resources/package.md.erb +34 -36
  71. data/docs/resources/parse_config.md.erb +5 -25
  72. data/docs/resources/parse_config_file.md.erb +31 -43
  73. data/docs/resources/{etc_passwd.md.erb → passwd.md.erb} +24 -39
  74. data/docs/resources/pip.md.erb +20 -35
  75. data/docs/resources/port.md.erb +43 -57
  76. data/docs/resources/postgres_conf.md.erb +17 -31
  77. data/docs/resources/postgres_hba_conf.md.erb +26 -38
  78. data/docs/resources/postgres_ident_conf.md.erb +25 -37
  79. data/docs/resources/postgres_session.md.erb +15 -29
  80. data/docs/resources/powershell.md.erb +27 -42
  81. data/docs/resources/processes.md.erb +17 -33
  82. data/docs/resources/rabbitmq_config.md.erb +9 -24
  83. data/docs/resources/registry_key.md.erb +27 -42
  84. data/docs/resources/runit_service.md.erb +5 -25
  85. data/docs/resources/security_policy.md.erb +12 -27
  86. data/docs/resources/service.md.erb +27 -42
  87. data/docs/resources/{etc_shadow.md.erb → shadow.md.erb} +41 -47
  88. data/docs/resources/ssh_config.md.erb +19 -34
  89. data/docs/resources/sshd_config.md.erb +19 -34
  90. data/docs/resources/ssl.md.erb +39 -54
  91. data/docs/resources/sys_info.md.erb +12 -26
  92. data/docs/resources/systemd_service.md.erb +5 -25
  93. data/docs/resources/sysv_service.md.erb +5 -25
  94. data/docs/resources/upstart_service.md.erb +5 -25
  95. data/docs/resources/user.md.erb +29 -44
  96. data/docs/resources/users.md.erb +12 -26
  97. data/docs/resources/vbscript.md.erb +9 -24
  98. data/docs/resources/virtualization.md.erb +8 -23
  99. data/docs/resources/windows_feature.md.erb +15 -30
  100. data/docs/resources/windows_hotfix.md.erb +50 -0
  101. data/docs/resources/windows_task.md.erb +12 -26
  102. data/docs/resources/wmi.md.erb +9 -24
  103. data/docs/resources/x509_certificate.md.erb +4 -0
  104. data/docs/resources/xinetd_conf.md.erb +65 -80
  105. data/docs/resources/xml.md.erb +61 -0
  106. data/docs/resources/yaml.md.erb +12 -27
  107. data/docs/resources/yum.md.erb +37 -51
  108. data/docs/resources/zfs_dataset.md.erb +15 -26
  109. data/docs/resources/zfs_pool.md.erb +9 -20
  110. data/docs/ruby_usage.md +0 -1
  111. data/examples/meta-profile/README.md +1 -1
  112. data/examples/profile-sensitive/README.md +29 -0
  113. data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -0
  114. data/examples/profile-sensitive/controls/sensitive.rb +9 -0
  115. data/examples/profile-sensitive/inspec.yml +8 -0
  116. data/inspec.gemspec +3 -3
  117. data/lib/bundles/inspec-artifact/cli.rb +5 -5
  118. data/lib/bundles/inspec-compliance/README.md +24 -22
  119. data/lib/bundles/inspec-compliance/api/login.rb +152 -0
  120. data/lib/bundles/inspec-compliance/api.rb +46 -16
  121. data/lib/bundles/inspec-compliance/cli.rb +58 -165
  122. data/lib/bundles/inspec-compliance/target.rb +2 -3
  123. data/lib/bundles/inspec-habitat/cli.rb +7 -2
  124. data/lib/bundles/inspec-habitat/profile.rb +44 -20
  125. data/lib/bundles/inspec-init/templates/profile/README.md +1 -1
  126. data/lib/bundles/inspec-init/templates/profile/controls/example.rb +1 -1
  127. data/lib/bundles/inspec-supermarket/api.rb +1 -1
  128. data/lib/inspec/backend.rb +8 -0
  129. data/lib/inspec/cli.rb +1 -1
  130. data/lib/inspec/control_eval_context.rb +16 -6
  131. data/lib/inspec/dependencies/requirement.rb +22 -8
  132. data/lib/inspec/dependencies/resolver.rb +1 -1
  133. data/lib/inspec/exceptions.rb +4 -0
  134. data/lib/inspec/file_provider.rb +38 -9
  135. data/lib/inspec/metadata.rb +17 -3
  136. data/lib/inspec/objects/attribute.rb +16 -7
  137. data/lib/inspec/objects/control.rb +10 -2
  138. data/lib/inspec/plugins/resource.rb +34 -5
  139. data/lib/inspec/profile.rb +10 -1
  140. data/lib/inspec/profile_context.rb +3 -1
  141. data/lib/inspec/resource.rb +17 -5
  142. data/lib/inspec/rspec_json_formatter.rb +48 -14
  143. data/lib/inspec/rule.rb +4 -0
  144. data/lib/inspec/runner.rb +72 -30
  145. data/lib/inspec/shell.rb +24 -19
  146. data/lib/inspec/version.rb +1 -1
  147. data/lib/matchers/matchers.rb +40 -0
  148. data/lib/resources/aide_conf.rb +162 -0
  149. data/lib/resources/auditd.rb +231 -0
  150. data/lib/resources/auditd_rules.rb +3 -1
  151. data/lib/resources/command.rb +1 -1
  152. data/lib/resources/cpan.rb +60 -0
  153. data/lib/resources/cran.rb +66 -0
  154. data/lib/resources/docker.rb +8 -1
  155. data/lib/resources/docker_container.rb +19 -2
  156. data/lib/resources/elasticsearch.rb +172 -0
  157. data/lib/resources/etc_fstab.rb +102 -0
  158. data/lib/resources/etc_group.rb +1 -1
  159. data/lib/resources/etc_hosts.rb +81 -0
  160. data/lib/resources/etc_hosts_allow_deny.rb +122 -0
  161. data/lib/resources/file.rb +87 -10
  162. data/lib/resources/firewalld.rb +144 -0
  163. data/lib/resources/groups.rb +0 -1
  164. data/lib/resources/host.rb +30 -15
  165. data/lib/resources/http.rb +178 -22
  166. data/lib/resources/mssql_session.rb +3 -3
  167. data/lib/resources/mysql_conf.rb +10 -0
  168. data/lib/resources/mysql_session.rb +1 -1
  169. data/lib/resources/nginx.rb +97 -0
  170. data/lib/resources/nginx_conf.rb +134 -1
  171. data/lib/resources/oracledb_session.rb +9 -8
  172. data/lib/resources/os_env.rb +7 -4
  173. data/lib/resources/package.rb +14 -2
  174. data/lib/resources/packages.rb +1 -1
  175. data/lib/resources/pip.rb +28 -20
  176. data/lib/resources/port.rb +251 -3
  177. data/lib/resources/postgres.rb +1 -1
  178. data/lib/resources/postgres_session.rb +1 -1
  179. data/lib/resources/processes.rb +106 -20
  180. data/lib/resources/registry_key.rb +11 -2
  181. data/lib/resources/service.rb +5 -24
  182. data/lib/resources/ssh_conf.rb +1 -1
  183. data/lib/resources/ssl.rb +4 -3
  184. data/lib/resources/toml.rb +2 -2
  185. data/lib/resources/windows_hotfix.rb +35 -0
  186. data/lib/resources/xinetd.rb +4 -6
  187. data/lib/resources/xml.rb +27 -0
  188. data/lib/source_readers/inspec.rb +3 -3
  189. data/lib/utils/find_files.rb +2 -1
  190. data/lib/utils/nginx_parser.rb +10 -1
  191. data/lib/utils/object_traversal.rb +35 -10
  192. data/lib/utils/parser.rb +21 -3
  193. metadata +48 -18
  194. data/docs/cli.md +0 -392
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+ # author: Jonathan Morley
3
+
4
+ module Inspec::Resources
5
+ class XmlConfig < JsonConfig
6
+ name 'xml'
7
+ desc 'Use the xml InSpec resource to test configuration data in an XML file'
8
+ example "
9
+ describe xml('default.xml') do
10
+ its('key/sub_key') { should eq(['value']) }
11
+ end
12
+ "
13
+
14
+ def parse(content)
15
+ require 'rexml/document'
16
+ REXML::Document.new(content)
17
+ end
18
+
19
+ def value(key)
20
+ REXML::XPath.each(@params, key.first.to_s).map(&:text)
21
+ end
22
+
23
+ def to_s
24
+ "XML #{@path}"
25
+ end
26
+ end
27
+ end
@@ -54,21 +54,21 @@ module SourceReaders
54
54
  tests = @target.files.find_all do |path|
55
55
  path.start_with?('controls') && path.end_with?('.rb')
56
56
  end
57
- Hash[tests.map { |x| [x, @target.read(x)] }]
57
+ Hash[tests.map { |x| [x, @target.read(x)] }.delete_if { |_file, contents| contents.nil? }]
58
58
  end
59
59
 
60
60
  def load_libs
61
61
  tests = @target.files.find_all do |path|
62
62
  path.start_with?('libraries') && path.end_with?('.rb')
63
63
  end
64
- Hash[tests.map { |x| [x, @target.read(x)] }]
64
+ Hash[tests.map { |x| [x, @target.read(x)] }.delete_if { |_file, contents| contents.nil? }]
65
65
  end
66
66
 
67
67
  def load_data_files
68
68
  files = @target.files.find_all do |path|
69
69
  path.start_with?('files' + File::SEPARATOR)
70
70
  end
71
- Hash[files.map { |x| [x, @target.read(x)] }]
71
+ Hash[files.map { |x| [x, @target.read(x)] }.delete_if { |_file, contents| contents.nil? }]
72
72
  end
73
73
  end
74
74
  end
@@ -24,9 +24,10 @@ module FindFiles
24
24
  depth = opts[:depth]
25
25
  type = TYPES[opts[:type].to_sym] if opts[:type]
26
26
 
27
- cmd = "find #{path}"
27
+ cmd = "sh -c \'find #{path}"
28
28
  cmd += " -type #{type}" unless type.nil?
29
29
  cmd += " -maxdepth #{depth.to_i}" if depth.to_i > 0
30
+ cmd += "\'"
30
31
 
31
32
  result = inspec.command(cmd)
32
33
  exit_status = result.exit_status
@@ -21,15 +21,24 @@ class NginxParser < Parslet::Parser
21
21
  (identifier >> values.maybe.as(:args)).as(:assignment) >> str(';') >> filler?
22
22
  }
23
23
 
24
- rule(:identifier) {
24
+ rule(:standard_identifier) {
25
25
  (match('[a-zA-Z]') >> match('\S').repeat).as(:identifier) >> space >> space.repeat
26
26
  }
27
27
 
28
+ rule(:quoted_identifier) {
29
+ str('"') >> (str('"').absent? >> any).repeat.as(:identifier) >> str('"') >> space.repeat
30
+ }
31
+
32
+ rule(:identifier) {
33
+ standard_identifier | quoted_identifier
34
+ }
35
+
28
36
  rule(:value) {
29
37
  ((match('[#;{]').absent? >> any) >> (
30
38
  str('\\') >> any | match('[#;{]|\s').absent? >> any
31
39
  ).repeat).as(:value) >> space.repeat
32
40
  }
41
+
33
42
  rule(:values) {
34
43
  value.repeat >> space.maybe
35
44
  }
@@ -3,22 +3,47 @@
3
3
  # author: Christoph Hartmann
4
4
  module ObjectTraverser
5
5
  def extract_value(keys, value)
6
+ return nil if value.nil?
7
+
6
8
  key = keys.shift
7
- return nil if key.nil? || value.nil?
9
+ return nil if key.nil?
8
10
 
9
- if value.is_a?(Array)
10
- value = if key.is_a?(Fixnum)
11
- value[key]
12
- elsif value.respond_to?(key.to_sym)
13
- value.send(key.to_sym)
14
- end
15
- else
16
- value = value[key.to_s].nil? ? nil : value[key.to_s]
17
- end
11
+ # if the current value is not a Hash or Array, it is undefined
12
+ # behavior so value will be assigned nil by default.
13
+ value = if value.is_a?(Array)
14
+ extract_from_array(key, value)
15
+ elsif value.is_a?(Hash)
16
+ extract_from_hash(key, value)
17
+ end
18
18
 
19
19
  # if there are no more keys, just return the value
20
20
  return value if keys.first.nil?
21
21
  # if there are more keys, extract more
22
22
  extract_value(keys.clone, value)
23
23
  end
24
+
25
+ private
26
+
27
+ # If the values to return from is an Array, allow returning by index.
28
+ # Otherwise, support methods on the Array itself.
29
+ def extract_from_array(key, value)
30
+ if key.is_a?(Fixnum)
31
+ value[key]
32
+ elsif value.respond_to?(key.to_sym)
33
+ value.send(key.to_sym)
34
+ end
35
+ end
36
+
37
+ # for Hashes, try to return the value by the key.
38
+ # We first try to find by the raw key before we stringify
39
+ # if the keys themselves are symbols, for example.
40
+ #
41
+ # This will return nil default if we can't find the key.
42
+ def extract_from_hash(key, value)
43
+ if value.key?(key)
44
+ value[key]
45
+ elsif value.key?(key.to_s)
46
+ value[key.to_s]
47
+ end
48
+ end
24
49
  end
data/lib/utils/parser.rb CHANGED
@@ -67,7 +67,19 @@ module LinuxMountParser
67
67
  # this parses the output of mount command (only tested on linux)
68
68
  # this method expects only one line of the mount output
69
69
  def parse_mount_options(mount_line, compatibility = false)
70
- mount = mount_line.scan(/\S+/)
70
+ if includes_whitespaces?(mount_line)
71
+ # Device-/Sharenames and Mountpoints including whitespaces require special treatment:
72
+ # We use the keyword ' type ' to split up and rebuild the desired array of fields
73
+ type_split = mount_line.split(' type ')
74
+ fs_path = type_split[0]
75
+ other_opts = type_split[1]
76
+ fs, path = fs_path.match(%r{^(.+?)\son\s(/.+?)$}).captures
77
+ mount = [fs, 'on', path, 'type']
78
+ mount.concat(other_opts.scan(/\S+/))
79
+ else
80
+ # ... otherwise we just split the fields by whitespaces
81
+ mount = mount_line.scan(/\S+/)
82
+ end
71
83
 
72
84
  # parse device and type
73
85
  mount_options = { device: mount[0], type: mount[4] }
@@ -92,6 +104,12 @@ module LinuxMountParser
92
104
 
93
105
  mount_options
94
106
  end
107
+
108
+ # Device-/Sharename or Mountpoint includes whitespaces?
109
+ def includes_whitespaces?(mount_line)
110
+ ws = mount_line.match(/^(.+)\son\s(.+)\stype\s.*$/)
111
+ ws.captures[0].include?(' ') or ws.captures[1].include?(' ')
112
+ end
95
113
  end
96
114
 
97
115
  module BsdMountParser
@@ -199,7 +217,7 @@ module XinetdParser
199
217
  return [] if dir.nil?
200
218
 
201
219
  unless inspec.file(dir).directory?
202
- return skip_resource "Cannot read folder in #{dir}"
220
+ raise Inspec::Exceptions::ResourceSkipped, "Can't find folder: #{dir}"
203
221
  end
204
222
 
205
223
  files = inspec.command("find #{dir} -type f").stdout.split("\n")
@@ -211,7 +229,7 @@ module XinetdParser
211
229
  res = {}
212
230
  cur_group = nil
213
231
  simple_conf = []
214
- rest = raw
232
+ rest = raw + "\n"
215
233
  until rest.empty?
216
234
  # extract content line
217
235
  nl = rest.index("\n") || (rest.length-1)
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.31.0
4
+ version: 1.45.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-06 00:00:00.000000000 Z
11
+ date: 2017-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: train
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.24.0
20
- - - "<"
19
+ version: '0.29'
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '1.0'
22
+ version: 0.29.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
27
+ - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 0.24.0
30
- - - "<"
29
+ version: '0.29'
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '1.0'
32
+ version: 0.29.1
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: thor
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -219,19 +219,19 @@ dependencies:
219
219
  - !ruby/object:Gem::Version
220
220
  version: 0.9.0
221
221
  - !ruby/object:Gem::Dependency
222
- name: toml
222
+ name: tomlrb
223
223
  requirement: !ruby/object:Gem::Requirement
224
224
  requirements:
225
225
  - - "~>"
226
226
  - !ruby/object:Gem::Version
227
- version: '0.1'
227
+ version: '1.2'
228
228
  type: :runtime
229
229
  prerelease: false
230
230
  version_requirements: !ruby/object:Gem::Requirement
231
231
  requirements:
232
232
  - - "~>"
233
233
  - !ruby/object:Gem::Version
234
- version: '0.1'
234
+ version: '1.2'
235
235
  - !ruby/object:Gem::Dependency
236
236
  name: addressable
237
237
  requirement: !ruby/object:Gem::Requirement
@@ -310,7 +310,6 @@ files:
310
310
  - bin/inspec
311
311
  - docs/.gitignore
312
312
  - docs/README.md
313
- - docs/cli.md
314
313
  - docs/dsl_inspec.md
315
314
  - docs/dsl_resource.md
316
315
  - docs/habitat.md
@@ -319,9 +318,11 @@ files:
319
318
  - docs/migration.md
320
319
  - docs/plugin_kitchen_inspec.md
321
320
  - docs/profiles.md
321
+ - docs/resources/aide_conf.md.erb
322
322
  - docs/resources/apache_conf.md.erb
323
323
  - docs/resources/apt.md.erb
324
324
  - docs/resources/audit_policy.md.erb
325
+ - docs/resources/auditd.md.erb
325
326
  - docs/resources/auditd_conf.md.erb
326
327
  - docs/resources/auditd_rules.md.erb
327
328
  - docs/resources/bash.md.erb
@@ -329,6 +330,8 @@ files:
329
330
  - docs/resources/bridge.md.erb
330
331
  - docs/resources/bsd_service.md.erb
331
332
  - docs/resources/command.md.erb
333
+ - docs/resources/cpan.md.erb
334
+ - docs/resources/cran.md.erb
332
335
  - docs/resources/crontab.md.erb
333
336
  - docs/resources/csv.md.erb
334
337
  - docs/resources/dh_params.md
@@ -336,10 +339,14 @@ files:
336
339
  - docs/resources/docker.md.erb
337
340
  - docs/resources/docker_container.md.erb
338
341
  - docs/resources/docker_image.md.erb
342
+ - docs/resources/elasticsearch.md.erb
343
+ - docs/resources/etc_fstab.md.erb
339
344
  - docs/resources/etc_group.md.erb
340
- - docs/resources/etc_passwd.md.erb
341
- - docs/resources/etc_shadow.md.erb
345
+ - docs/resources/etc_hosts.md.erb
346
+ - docs/resources/etc_hosts_allow.md.erb
347
+ - docs/resources/etc_hosts_deny.md.erb
342
348
  - docs/resources/file.md.erb
349
+ - docs/resources/firewalld.md.erb
343
350
  - docs/resources/gem.md.erb
344
351
  - docs/resources/group.md.erb
345
352
  - docs/resources/grub_conf.md.erb
@@ -362,6 +369,8 @@ files:
362
369
  - docs/resources/mssql_session.md.erb
363
370
  - docs/resources/mysql_conf.md.erb
364
371
  - docs/resources/mysql_session.md.erb
372
+ - docs/resources/nginx.md.erb
373
+ - docs/resources/nginx_conf.md.erb
365
374
  - docs/resources/npm.md.erb
366
375
  - docs/resources/ntp_conf.md.erb
367
376
  - docs/resources/oneget.md.erb
@@ -371,6 +380,7 @@ files:
371
380
  - docs/resources/package.md.erb
372
381
  - docs/resources/parse_config.md.erb
373
382
  - docs/resources/parse_config_file.md.erb
383
+ - docs/resources/passwd.md.erb
374
384
  - docs/resources/pip.md.erb
375
385
  - docs/resources/port.md.erb
376
386
  - docs/resources/postgres_conf.md.erb
@@ -384,6 +394,7 @@ files:
384
394
  - docs/resources/runit_service.md.erb
385
395
  - docs/resources/security_policy.md.erb
386
396
  - docs/resources/service.md.erb
397
+ - docs/resources/shadow.md.erb
387
398
  - docs/resources/ssh_config.md.erb
388
399
  - docs/resources/sshd_config.md.erb
389
400
  - docs/resources/ssl.md.erb
@@ -396,10 +407,12 @@ files:
396
407
  - docs/resources/vbscript.md.erb
397
408
  - docs/resources/virtualization.md.erb
398
409
  - docs/resources/windows_feature.md.erb
410
+ - docs/resources/windows_hotfix.md.erb
399
411
  - docs/resources/windows_task.md.erb
400
412
  - docs/resources/wmi.md.erb
401
413
  - docs/resources/x509_certificate.md.erb
402
414
  - docs/resources/xinetd_conf.md.erb
415
+ - docs/resources/xml.md.erb
403
416
  - docs/resources/yaml.md.erb
404
417
  - docs/resources/yum.md.erb
405
418
  - docs/resources/zfs_dataset.md.erb
@@ -444,6 +457,10 @@ files:
444
457
  - examples/profile-attribute/README.md
445
458
  - examples/profile-attribute/controls/example.rb
446
459
  - examples/profile-attribute/inspec.yml
460
+ - examples/profile-sensitive/README.md
461
+ - examples/profile-sensitive/controls/sensitive-failures.rb
462
+ - examples/profile-sensitive/controls/sensitive.rb
463
+ - examples/profile-sensitive/inspec.yml
447
464
  - examples/profile/README.md
448
465
  - examples/profile/controls/example.rb
449
466
  - examples/profile/controls/gordon.rb
@@ -459,6 +476,7 @@ files:
459
476
  - lib/bundles/inspec-compliance/.kitchen.yml
460
477
  - lib/bundles/inspec-compliance/README.md
461
478
  - lib/bundles/inspec-compliance/api.rb
479
+ - lib/bundles/inspec-compliance/api/login.rb
462
480
  - lib/bundles/inspec-compliance/bootstrap.sh
463
481
  - lib/bundles/inspec-compliance/cli.rb
464
482
  - lib/bundles/inspec-compliance/configuration.rb
@@ -552,16 +570,20 @@ files:
552
570
  - lib/inspec/source_reader.rb
553
571
  - lib/inspec/version.rb
554
572
  - lib/matchers/matchers.rb
573
+ - lib/resources/aide_conf.rb
555
574
  - lib/resources/apache.rb
556
575
  - lib/resources/apache_conf.rb
557
576
  - lib/resources/apt.rb
558
577
  - lib/resources/audit_policy.rb
578
+ - lib/resources/auditd.rb
559
579
  - lib/resources/auditd_conf.rb
560
580
  - lib/resources/auditd_rules.rb
561
581
  - lib/resources/bash.rb
562
582
  - lib/resources/bond.rb
563
583
  - lib/resources/bridge.rb
564
584
  - lib/resources/command.rb
585
+ - lib/resources/cpan.rb
586
+ - lib/resources/cran.rb
565
587
  - lib/resources/crontab.rb
566
588
  - lib/resources/csv.rb
567
589
  - lib/resources/dh_params.rb
@@ -569,8 +591,13 @@ files:
569
591
  - lib/resources/docker.rb
570
592
  - lib/resources/docker_container.rb
571
593
  - lib/resources/docker_image.rb
594
+ - lib/resources/elasticsearch.rb
595
+ - lib/resources/etc_fstab.rb
572
596
  - lib/resources/etc_group.rb
597
+ - lib/resources/etc_hosts.rb
598
+ - lib/resources/etc_hosts_allow_deny.rb
573
599
  - lib/resources/file.rb
600
+ - lib/resources/firewalld.rb
574
601
  - lib/resources/gem.rb
575
602
  - lib/resources/groups.rb
576
603
  - lib/resources/grub_conf.rb
@@ -593,6 +620,7 @@ files:
593
620
  - lib/resources/mysql.rb
594
621
  - lib/resources/mysql_conf.rb
595
622
  - lib/resources/mysql_session.rb
623
+ - lib/resources/nginx.rb
596
624
  - lib/resources/nginx_conf.rb
597
625
  - lib/resources/npm.rb
598
626
  - lib/resources/ntp_conf.rb
@@ -626,10 +654,12 @@ files:
626
654
  - lib/resources/vbscript.rb
627
655
  - lib/resources/virtualization.rb
628
656
  - lib/resources/windows_feature.rb
657
+ - lib/resources/windows_hotfix.rb
629
658
  - lib/resources/windows_task.rb
630
659
  - lib/resources/wmi.rb
631
660
  - lib/resources/x509_certificate.rb
632
661
  - lib/resources/xinetd.rb
662
+ - lib/resources/xml.rb
633
663
  - lib/resources/yaml.rb
634
664
  - lib/resources/yum.rb
635
665
  - lib/resources/zfs_dataset.rb
@@ -666,7 +696,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
666
696
  requirements:
667
697
  - - ">="
668
698
  - !ruby/object:Gem::Version
669
- version: '2.1'
699
+ version: '2.3'
670
700
  required_rubygems_version: !ruby/object:Gem::Requirement
671
701
  requirements:
672
702
  - - ">="
@@ -674,7 +704,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
674
704
  version: '0'
675
705
  requirements: []
676
706
  rubyforge_project:
677
- rubygems_version: 2.6.11
707
+ rubygems_version: 2.6.14
678
708
  signing_key:
679
709
  specification_version: 4
680
710
  summary: Infrastructure and compliance testing.