inspec 2.1.30 → 2.1.43

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -0
  3. data/CHANGELOG.md +39 -18
  4. data/Gemfile +0 -0
  5. data/LICENSE +0 -0
  6. data/MAINTAINERS.md +0 -0
  7. data/MAINTAINERS.toml +0 -0
  8. data/README.md +2 -2
  9. data/Rakefile +4 -2
  10. data/docs/.gitignore +0 -0
  11. data/docs/README.md +0 -0
  12. data/docs/dsl_inspec.md +0 -0
  13. data/docs/dsl_resource.md +0 -0
  14. data/docs/glossary.md +0 -0
  15. data/docs/habitat.md +0 -0
  16. data/docs/inspec_and_friends.md +0 -0
  17. data/docs/matchers.md +0 -0
  18. data/docs/migration.md +0 -0
  19. data/docs/platforms.md +0 -0
  20. data/docs/plugin_kitchen_inspec.md +0 -0
  21. data/docs/profiles.md +2 -0
  22. data/docs/reporters.md +0 -0
  23. data/docs/resources/aide_conf.md.erb +0 -0
  24. data/docs/resources/apache.md.erb +0 -0
  25. data/docs/resources/apache_conf.md.erb +0 -0
  26. data/docs/resources/apt.md.erb +0 -0
  27. data/docs/resources/audit_policy.md.erb +0 -0
  28. data/docs/resources/auditd.md.erb +0 -0
  29. data/docs/resources/auditd_conf.md.erb +0 -0
  30. data/docs/resources/aws_cloudtrail_trail.md.erb +9 -0
  31. data/docs/resources/aws_cloudtrail_trails.md.erb +0 -0
  32. data/docs/resources/aws_cloudwatch_alarm.md.erb +1 -1
  33. data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +0 -0
  34. data/docs/resources/aws_config_delivery_channel.md +0 -0
  35. data/docs/resources/aws_config_recorder.md.erb +0 -0
  36. data/docs/resources/aws_ec2_instance.md.erb +0 -0
  37. data/docs/resources/aws_iam_access_key.md.erb +0 -0
  38. data/docs/resources/aws_iam_access_keys.md.erb +0 -0
  39. data/docs/resources/aws_iam_group.md.erb +12 -0
  40. data/docs/resources/aws_iam_groups.md.erb +0 -0
  41. data/docs/resources/aws_iam_password_policy.md.erb +0 -0
  42. data/docs/resources/aws_iam_policies.md.erb +0 -0
  43. data/docs/resources/aws_iam_policy.md.erb +99 -4
  44. data/docs/resources/aws_iam_role.md.erb +0 -0
  45. data/docs/resources/aws_iam_root_user.md.erb +2 -2
  46. data/docs/resources/aws_iam_user.md.erb +0 -0
  47. data/docs/resources/aws_iam_users.md.erb +0 -0
  48. data/docs/resources/aws_kms_key.md.erb +0 -0
  49. data/docs/resources/aws_kms_keys.md.erb +0 -0
  50. data/docs/resources/aws_rds_instance.md.erb +0 -0
  51. data/docs/resources/aws_route_table.md.erb +0 -0
  52. data/docs/resources/aws_route_tables.md.erb +0 -0
  53. data/docs/resources/aws_s3_bucket.md.erb +0 -0
  54. data/docs/resources/aws_s3_bucket_object.md.erb +0 -0
  55. data/docs/resources/aws_s3_buckets.md.erb +0 -0
  56. data/docs/resources/aws_security_group.md.erb +160 -21
  57. data/docs/resources/aws_security_groups.md.erb +0 -0
  58. data/docs/resources/aws_sns_subscription.md.erb +0 -0
  59. data/docs/resources/aws_sns_topic.md.erb +0 -0
  60. data/docs/resources/aws_sns_topics.md.erb +0 -0
  61. data/docs/resources/aws_subnet.md.erb +0 -0
  62. data/docs/resources/aws_subnets.md.erb +0 -0
  63. data/docs/resources/aws_vpc.md.erb +0 -0
  64. data/docs/resources/aws_vpcs.md.erb +73 -2
  65. data/docs/resources/azure_generic_resource.md.erb +0 -0
  66. data/docs/resources/azure_resource_group.md.erb +0 -0
  67. data/docs/resources/azure_virtual_machine.md.erb +0 -0
  68. data/docs/resources/azure_virtual_machine_data_disk.md.erb +0 -0
  69. data/docs/resources/bash.md.erb +0 -0
  70. data/docs/resources/bond.md.erb +0 -0
  71. data/docs/resources/bridge.md.erb +0 -0
  72. data/docs/resources/bsd_service.md.erb +0 -0
  73. data/docs/resources/chocolatey_package.md.erb +0 -0
  74. data/docs/resources/command.md.erb +0 -0
  75. data/docs/resources/cpan.md.erb +0 -0
  76. data/docs/resources/cran.md.erb +0 -0
  77. data/docs/resources/crontab.md.erb +0 -0
  78. data/docs/resources/csv.md.erb +0 -0
  79. data/docs/resources/dh_params.md.erb +0 -0
  80. data/docs/resources/directory.md.erb +0 -0
  81. data/docs/resources/docker.md.erb +0 -0
  82. data/docs/resources/docker_container.md.erb +0 -0
  83. data/docs/resources/docker_image.md.erb +0 -0
  84. data/docs/resources/docker_service.md.erb +0 -0
  85. data/docs/resources/elasticsearch.md.erb +0 -0
  86. data/docs/resources/etc_fstab.md.erb +0 -0
  87. data/docs/resources/etc_group.md.erb +0 -0
  88. data/docs/resources/etc_hosts.md.erb +0 -0
  89. data/docs/resources/etc_hosts_allow.md.erb +0 -0
  90. data/docs/resources/etc_hosts_deny.md.erb +0 -0
  91. data/docs/resources/file.md.erb +0 -0
  92. data/docs/resources/filesystem.md.erb +1 -1
  93. data/docs/resources/firewalld.md.erb +0 -0
  94. data/docs/resources/gem.md.erb +0 -0
  95. data/docs/resources/group.md.erb +0 -0
  96. data/docs/resources/grub_conf.md.erb +0 -0
  97. data/docs/resources/host.md.erb +0 -0
  98. data/docs/resources/http.md.erb +0 -0
  99. data/docs/resources/iis_app.md.erb +0 -0
  100. data/docs/resources/iis_site.md.erb +0 -0
  101. data/docs/resources/inetd_conf.md.erb +0 -0
  102. data/docs/resources/ini.md.erb +0 -0
  103. data/docs/resources/interface.md.erb +0 -0
  104. data/docs/resources/iptables.md.erb +0 -0
  105. data/docs/resources/json.md.erb +0 -0
  106. data/docs/resources/kernel_module.md.erb +0 -0
  107. data/docs/resources/kernel_parameter.md.erb +0 -0
  108. data/docs/resources/key_rsa.md.erb +0 -0
  109. data/docs/resources/launchd_service.md.erb +0 -0
  110. data/docs/resources/limits_conf.md.erb +0 -0
  111. data/docs/resources/login_defs.md.erb +0 -0
  112. data/docs/resources/mount.md.erb +0 -0
  113. data/docs/resources/mssql_session.md.erb +0 -0
  114. data/docs/resources/mysql_conf.md.erb +0 -0
  115. data/docs/resources/mysql_session.md.erb +0 -0
  116. data/docs/resources/nginx.md.erb +0 -0
  117. data/docs/resources/nginx_conf.md.erb +0 -0
  118. data/docs/resources/npm.md.erb +0 -0
  119. data/docs/resources/ntp_conf.md.erb +0 -0
  120. data/docs/resources/oneget.md.erb +0 -0
  121. data/docs/resources/oracledb_session.md.erb +0 -0
  122. data/docs/resources/os.md.erb +0 -0
  123. data/docs/resources/os_env.md.erb +0 -0
  124. data/docs/resources/package.md.erb +4 -4
  125. data/docs/resources/packages.md.erb +0 -0
  126. data/docs/resources/parse_config.md.erb +0 -0
  127. data/docs/resources/parse_config_file.md.erb +0 -0
  128. data/docs/resources/passwd.md.erb +0 -0
  129. data/docs/resources/pip.md.erb +0 -0
  130. data/docs/resources/port.md.erb +0 -0
  131. data/docs/resources/postgres_conf.md.erb +0 -0
  132. data/docs/resources/postgres_hba_conf.md.erb +0 -0
  133. data/docs/resources/postgres_ident_conf.md.erb +0 -0
  134. data/docs/resources/postgres_session.md.erb +0 -0
  135. data/docs/resources/powershell.md.erb +0 -0
  136. data/docs/resources/processes.md.erb +0 -0
  137. data/docs/resources/rabbitmq_config.md.erb +0 -0
  138. data/docs/resources/registry_key.md.erb +0 -0
  139. data/docs/resources/runit_service.md.erb +0 -0
  140. data/docs/resources/security_policy.md.erb +0 -0
  141. data/docs/resources/service.md.erb +0 -0
  142. data/docs/resources/shadow.md.erb +0 -0
  143. data/docs/resources/ssh_config.md.erb +0 -0
  144. data/docs/resources/sshd_config.md.erb +0 -0
  145. data/docs/resources/ssl.md.erb +0 -0
  146. data/docs/resources/sys_info.md.erb +0 -0
  147. data/docs/resources/systemd_service.md.erb +0 -0
  148. data/docs/resources/sysv_service.md.erb +0 -0
  149. data/docs/resources/upstart_service.md.erb +0 -0
  150. data/docs/resources/user.md.erb +0 -0
  151. data/docs/resources/users.md.erb +0 -0
  152. data/docs/resources/vbscript.md.erb +0 -0
  153. data/docs/resources/virtualization.md.erb +0 -0
  154. data/docs/resources/windows_feature.md.erb +0 -0
  155. data/docs/resources/windows_hotfix.md.erb +0 -0
  156. data/docs/resources/windows_task.md.erb +0 -0
  157. data/docs/resources/wmi.md.erb +0 -0
  158. data/docs/resources/x509_certificate.md.erb +0 -0
  159. data/docs/resources/xinetd_conf.md.erb +0 -0
  160. data/docs/resources/xml.md.erb +0 -0
  161. data/docs/resources/yaml.md.erb +0 -0
  162. data/docs/resources/yum.md.erb +0 -0
  163. data/docs/resources/zfs_dataset.md.erb +0 -0
  164. data/docs/resources/zfs_pool.md.erb +0 -0
  165. data/docs/ruby_usage.md +0 -0
  166. data/docs/shared/matcher_be.md.erb +0 -0
  167. data/docs/shared/matcher_cmp.md.erb +0 -0
  168. data/docs/shared/matcher_eq.md.erb +0 -0
  169. data/docs/shared/matcher_include.md.erb +0 -0
  170. data/docs/shared/matcher_match.md.erb +0 -0
  171. data/docs/shell.md +0 -0
  172. data/examples/README.md +0 -0
  173. data/examples/inheritance/README.md +0 -0
  174. data/examples/inheritance/controls/example.rb +0 -0
  175. data/examples/inheritance/inspec.yml +0 -0
  176. data/examples/kitchen-ansible/.kitchen.yml +0 -0
  177. data/examples/kitchen-ansible/Gemfile +0 -0
  178. data/examples/kitchen-ansible/README.md +0 -0
  179. data/examples/kitchen-ansible/files/nginx.repo +0 -0
  180. data/examples/kitchen-ansible/tasks/main.yml +0 -0
  181. data/examples/kitchen-ansible/test/integration/default/default.yml +0 -0
  182. data/examples/kitchen-ansible/test/integration/default/web_spec.rb +0 -0
  183. data/examples/kitchen-chef/.kitchen.yml +0 -0
  184. data/examples/kitchen-chef/Berksfile +0 -0
  185. data/examples/kitchen-chef/Gemfile +0 -0
  186. data/examples/kitchen-chef/README.md +0 -0
  187. data/examples/kitchen-chef/metadata.rb +0 -0
  188. data/examples/kitchen-chef/recipes/default.rb +0 -0
  189. data/examples/kitchen-chef/recipes/nginx.rb +0 -0
  190. data/examples/kitchen-chef/test/integration/default/web_spec.rb +0 -0
  191. data/examples/kitchen-puppet/.kitchen.yml +0 -0
  192. data/examples/kitchen-puppet/Gemfile +0 -0
  193. data/examples/kitchen-puppet/Puppetfile +0 -0
  194. data/examples/kitchen-puppet/README.md +0 -0
  195. data/examples/kitchen-puppet/manifests/site.pp +0 -0
  196. data/examples/kitchen-puppet/metadata.json +0 -0
  197. data/examples/kitchen-puppet/test/integration/default/web_spec.rb +0 -0
  198. data/examples/meta-profile/README.md +0 -0
  199. data/examples/meta-profile/controls/example.rb +0 -0
  200. data/examples/meta-profile/inspec.yml +0 -0
  201. data/examples/profile-attribute.yml +0 -0
  202. data/examples/profile-attribute/README.md +0 -0
  203. data/examples/profile-attribute/controls/example.rb +0 -0
  204. data/examples/profile-attribute/inspec.yml +0 -0
  205. data/examples/profile-aws/controls/iam_password_policy_expiration.rb +0 -0
  206. data/examples/profile-aws/controls/iam_password_policy_max_age.rb +0 -0
  207. data/examples/profile-aws/controls/iam_root_user_mfa.rb +0 -0
  208. data/examples/profile-aws/controls/iam_users_access_key_age.rb +0 -0
  209. data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +0 -0
  210. data/examples/profile-aws/inspec.yml +0 -0
  211. data/examples/profile-azure/controls/azure_resource_group_example.rb +0 -0
  212. data/examples/profile-azure/controls/azure_vm_example.rb +0 -0
  213. data/examples/profile-azure/inspec.yml +0 -0
  214. data/examples/profile-sensitive/README.md +0 -0
  215. data/examples/profile-sensitive/controls/sensitive-failures.rb +0 -0
  216. data/examples/profile-sensitive/controls/sensitive.rb +0 -0
  217. data/examples/profile-sensitive/inspec.yml +0 -0
  218. data/examples/profile/README.md +0 -0
  219. data/examples/profile/controls/example.rb +0 -0
  220. data/examples/profile/controls/gordon.rb +0 -0
  221. data/examples/profile/controls/meta.rb +0 -0
  222. data/examples/profile/inspec.yml +0 -0
  223. data/examples/profile/libraries/gordon_config.rb +0 -0
  224. data/inspec.gemspec +1 -1
  225. data/lib/bundles/README.md +0 -0
  226. data/lib/bundles/inspec-artifact.rb +0 -0
  227. data/lib/bundles/inspec-artifact/README.md +0 -0
  228. data/lib/bundles/inspec-artifact/cli.rb +0 -0
  229. data/lib/bundles/inspec-compliance.rb +0 -0
  230. data/lib/bundles/inspec-compliance/.kitchen.yml +0 -0
  231. data/lib/bundles/inspec-compliance/README.md +0 -0
  232. data/lib/bundles/inspec-compliance/api/login.rb +0 -0
  233. data/lib/bundles/inspec-compliance/bootstrap.sh +0 -0
  234. data/lib/bundles/inspec-compliance/cli.rb +0 -0
  235. data/lib/bundles/inspec-compliance/configuration.rb +0 -0
  236. data/lib/bundles/inspec-compliance/http.rb +0 -0
  237. data/lib/bundles/inspec-compliance/images/cc-token.png +0 -0
  238. data/lib/bundles/inspec-compliance/support.rb +0 -0
  239. data/lib/bundles/inspec-compliance/target.rb +0 -0
  240. data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +0 -0
  241. data/lib/bundles/inspec-habitat.rb +0 -0
  242. data/lib/bundles/inspec-habitat/cli.rb +0 -0
  243. data/lib/bundles/inspec-habitat/log.rb +0 -0
  244. data/lib/bundles/inspec-habitat/profile.rb +0 -0
  245. data/lib/bundles/inspec-init.rb +0 -0
  246. data/lib/bundles/inspec-init/README.md +0 -0
  247. data/lib/bundles/inspec-init/cli.rb +0 -0
  248. data/lib/bundles/inspec-init/templates/profile/README.md +0 -0
  249. data/lib/bundles/inspec-init/templates/profile/controls/example.rb +0 -0
  250. data/lib/bundles/inspec-init/templates/profile/inspec.yml +0 -0
  251. data/lib/bundles/inspec-init/templates/profile/libraries/.gitkeep +0 -0
  252. data/lib/bundles/inspec-supermarket.rb +0 -0
  253. data/lib/bundles/inspec-supermarket/README.md +0 -0
  254. data/lib/bundles/inspec-supermarket/api.rb +0 -0
  255. data/lib/bundles/inspec-supermarket/cli.rb +0 -0
  256. data/lib/bundles/inspec-supermarket/target.rb +0 -0
  257. data/lib/fetchers/git.rb +0 -0
  258. data/lib/fetchers/local.rb +0 -0
  259. data/lib/fetchers/mock.rb +0 -0
  260. data/lib/fetchers/url.rb +0 -0
  261. data/lib/inspec.rb +0 -0
  262. data/lib/inspec/archive/tar.rb +0 -0
  263. data/lib/inspec/archive/zip.rb +0 -0
  264. data/lib/inspec/backend.rb +0 -0
  265. data/lib/inspec/base_cli.rb +2 -0
  266. data/lib/inspec/cached_fetcher.rb +0 -0
  267. data/lib/inspec/cli.rb +0 -0
  268. data/lib/inspec/completions/bash.sh.erb +0 -0
  269. data/lib/inspec/completions/fish.sh.erb +0 -0
  270. data/lib/inspec/completions/zsh.sh.erb +0 -0
  271. data/lib/inspec/control_eval_context.rb +0 -0
  272. data/lib/inspec/dependencies/cache.rb +0 -0
  273. data/lib/inspec/dependencies/dependency_set.rb +0 -0
  274. data/lib/inspec/dependencies/lockfile.rb +0 -0
  275. data/lib/inspec/dependencies/requirement.rb +0 -0
  276. data/lib/inspec/dependencies/resolver.rb +0 -0
  277. data/lib/inspec/describe.rb +0 -0
  278. data/lib/inspec/dsl.rb +0 -0
  279. data/lib/inspec/dsl_shared.rb +0 -0
  280. data/lib/inspec/env_printer.rb +0 -0
  281. data/lib/inspec/errors.rb +0 -0
  282. data/lib/inspec/exceptions.rb +0 -0
  283. data/lib/inspec/expect.rb +0 -0
  284. data/lib/inspec/fetcher.rb +0 -0
  285. data/lib/inspec/file_provider.rb +0 -0
  286. data/lib/inspec/formatters.rb +0 -0
  287. data/lib/inspec/formatters/base.rb +0 -0
  288. data/lib/inspec/formatters/json_rspec.rb +0 -0
  289. data/lib/inspec/formatters/show_progress.rb +0 -0
  290. data/lib/inspec/library_eval_context.rb +0 -0
  291. data/lib/inspec/log.rb +0 -0
  292. data/lib/inspec/metadata.rb +0 -0
  293. data/lib/inspec/method_source.rb +0 -0
  294. data/lib/inspec/objects.rb +0 -0
  295. data/lib/inspec/objects/attribute.rb +11 -1
  296. data/lib/inspec/objects/control.rb +0 -0
  297. data/lib/inspec/objects/describe.rb +0 -0
  298. data/lib/inspec/objects/each_loop.rb +0 -0
  299. data/lib/inspec/objects/list.rb +0 -0
  300. data/lib/inspec/objects/or_test.rb +0 -0
  301. data/lib/inspec/objects/ruby_helper.rb +0 -0
  302. data/lib/inspec/objects/tag.rb +0 -0
  303. data/lib/inspec/objects/test.rb +0 -0
  304. data/lib/inspec/objects/value.rb +0 -0
  305. data/lib/inspec/plugins.rb +0 -0
  306. data/lib/inspec/plugins/cli.rb +0 -0
  307. data/lib/inspec/plugins/fetcher.rb +0 -0
  308. data/lib/inspec/plugins/resource.rb +0 -0
  309. data/lib/inspec/plugins/secret.rb +0 -0
  310. data/lib/inspec/plugins/source_reader.rb +0 -0
  311. data/lib/inspec/polyfill.rb +0 -0
  312. data/lib/inspec/profile.rb +0 -0
  313. data/lib/inspec/profile_context.rb +0 -0
  314. data/lib/inspec/profile_vendor.rb +0 -0
  315. data/lib/inspec/reporters.rb +0 -0
  316. data/lib/inspec/reporters/automate.rb +0 -0
  317. data/lib/inspec/reporters/base.rb +0 -0
  318. data/lib/inspec/reporters/cli.rb +0 -0
  319. data/lib/inspec/reporters/json.rb +0 -0
  320. data/lib/inspec/reporters/json_min.rb +0 -0
  321. data/lib/inspec/reporters/junit.rb +1 -0
  322. data/lib/inspec/require_loader.rb +0 -0
  323. data/lib/inspec/resource.rb +0 -0
  324. data/lib/inspec/rule.rb +0 -0
  325. data/lib/inspec/runner.rb +0 -0
  326. data/lib/inspec/runner_mock.rb +0 -0
  327. data/lib/inspec/runner_rspec.rb +0 -0
  328. data/lib/inspec/runtime_profile.rb +0 -0
  329. data/lib/inspec/schema.rb +0 -0
  330. data/lib/inspec/secrets.rb +0 -0
  331. data/lib/inspec/secrets/yaml.rb +0 -0
  332. data/lib/inspec/shell.rb +0 -0
  333. data/lib/inspec/shell_detector.rb +0 -0
  334. data/lib/inspec/source_reader.rb +0 -0
  335. data/lib/inspec/version.rb +1 -1
  336. data/lib/matchers/matchers.rb +0 -0
  337. data/lib/resource_support/aws.rb +0 -0
  338. data/lib/resource_support/aws/aws_backend_base.rb +0 -0
  339. data/lib/resource_support/aws/aws_backend_factory_mixin.rb +0 -0
  340. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +0 -0
  341. data/lib/resource_support/aws/aws_resource_mixin.rb +0 -0
  342. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +0 -0
  343. data/lib/resources/aide_conf.rb +0 -0
  344. data/lib/resources/apache.rb +0 -0
  345. data/lib/resources/apache_conf.rb +0 -0
  346. data/lib/resources/apt.rb +0 -0
  347. data/lib/resources/audit_policy.rb +0 -0
  348. data/lib/resources/auditd.rb +0 -0
  349. data/lib/resources/auditd_conf.rb +0 -0
  350. data/lib/resources/aws/aws_cloudtrail_trail.rb +16 -0
  351. data/lib/resources/aws/aws_cloudtrail_trails.rb +0 -0
  352. data/lib/resources/aws/aws_cloudwatch_alarm.rb +1 -1
  353. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +0 -0
  354. data/lib/resources/aws/aws_config_delivery_channel.rb +0 -0
  355. data/lib/resources/aws/aws_config_recorder.rb +0 -0
  356. data/lib/resources/aws/aws_ec2_instance.rb +0 -0
  357. data/lib/resources/aws/aws_iam_access_key.rb +0 -0
  358. data/lib/resources/aws/aws_iam_access_keys.rb +0 -0
  359. data/lib/resources/aws/aws_iam_group.rb +4 -2
  360. data/lib/resources/aws/aws_iam_groups.rb +0 -0
  361. data/lib/resources/aws/aws_iam_password_policy.rb +0 -0
  362. data/lib/resources/aws/aws_iam_policies.rb +0 -0
  363. data/lib/resources/aws/aws_iam_policy.rb +148 -0
  364. data/lib/resources/aws/aws_iam_role.rb +0 -0
  365. data/lib/resources/aws/aws_iam_root_user.rb +0 -0
  366. data/lib/resources/aws/aws_iam_user.rb +0 -0
  367. data/lib/resources/aws/aws_iam_users.rb +0 -0
  368. data/lib/resources/aws/aws_kms_key.rb +0 -0
  369. data/lib/resources/aws/aws_kms_keys.rb +0 -0
  370. data/lib/resources/aws/aws_rds_instance.rb +0 -0
  371. data/lib/resources/aws/aws_route_table.rb +0 -0
  372. data/lib/resources/aws/aws_route_tables.rb +0 -0
  373. data/lib/resources/aws/aws_s3_bucket.rb +0 -0
  374. data/lib/resources/aws/aws_s3_bucket_object.rb +0 -0
  375. data/lib/resources/aws/aws_s3_buckets.rb +0 -0
  376. data/lib/resources/aws/aws_security_group.rb +163 -7
  377. data/lib/resources/aws/aws_security_groups.rb +0 -0
  378. data/lib/resources/aws/aws_sns_subscription.rb +0 -0
  379. data/lib/resources/aws/aws_sns_topic.rb +0 -0
  380. data/lib/resources/aws/aws_sns_topics.rb +0 -0
  381. data/lib/resources/aws/aws_subnet.rb +0 -0
  382. data/lib/resources/aws/aws_subnets.rb +0 -0
  383. data/lib/resources/aws/aws_vpc.rb +12 -8
  384. data/lib/resources/aws/aws_vpcs.rb +8 -1
  385. data/lib/resources/azure/azure_backend.rb +0 -0
  386. data/lib/resources/azure/azure_generic_resource.rb +0 -0
  387. data/lib/resources/azure/azure_resource_group.rb +0 -0
  388. data/lib/resources/azure/azure_virtual_machine.rb +0 -0
  389. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +0 -0
  390. data/lib/resources/bash.rb +0 -0
  391. data/lib/resources/bond.rb +0 -0
  392. data/lib/resources/bridge.rb +0 -0
  393. data/lib/resources/chocolatey_package.rb +0 -0
  394. data/lib/resources/command.rb +0 -0
  395. data/lib/resources/cpan.rb +0 -0
  396. data/lib/resources/cran.rb +0 -0
  397. data/lib/resources/crontab.rb +0 -0
  398. data/lib/resources/csv.rb +0 -0
  399. data/lib/resources/dh_params.rb +0 -0
  400. data/lib/resources/directory.rb +0 -0
  401. data/lib/resources/docker.rb +0 -0
  402. data/lib/resources/docker_container.rb +0 -0
  403. data/lib/resources/docker_image.rb +0 -0
  404. data/lib/resources/docker_object.rb +0 -0
  405. data/lib/resources/docker_service.rb +0 -0
  406. data/lib/resources/elasticsearch.rb +0 -0
  407. data/lib/resources/etc_fstab.rb +0 -0
  408. data/lib/resources/etc_group.rb +0 -0
  409. data/lib/resources/etc_hosts.rb +0 -0
  410. data/lib/resources/etc_hosts_allow_deny.rb +0 -0
  411. data/lib/resources/file.rb +0 -0
  412. data/lib/resources/filesystem.rb +0 -0
  413. data/lib/resources/firewalld.rb +0 -0
  414. data/lib/resources/gem.rb +0 -0
  415. data/lib/resources/groups.rb +0 -0
  416. data/lib/resources/grub_conf.rb +0 -0
  417. data/lib/resources/host.rb +0 -0
  418. data/lib/resources/http.rb +0 -0
  419. data/lib/resources/iis_app.rb +0 -0
  420. data/lib/resources/iis_site.rb +0 -0
  421. data/lib/resources/inetd_conf.rb +0 -0
  422. data/lib/resources/ini.rb +0 -0
  423. data/lib/resources/interface.rb +0 -0
  424. data/lib/resources/iptables.rb +0 -0
  425. data/lib/resources/json.rb +0 -0
  426. data/lib/resources/kernel_module.rb +0 -0
  427. data/lib/resources/kernel_parameter.rb +0 -0
  428. data/lib/resources/key_rsa.rb +3 -1
  429. data/lib/resources/limits_conf.rb +0 -0
  430. data/lib/resources/login_def.rb +0 -0
  431. data/lib/resources/mount.rb +0 -0
  432. data/lib/resources/mssql_session.rb +0 -0
  433. data/lib/resources/mysql.rb +0 -0
  434. data/lib/resources/mysql_conf.rb +0 -0
  435. data/lib/resources/mysql_session.rb +0 -0
  436. data/lib/resources/nginx.rb +0 -0
  437. data/lib/resources/nginx_conf.rb +0 -0
  438. data/lib/resources/npm.rb +0 -0
  439. data/lib/resources/ntp_conf.rb +0 -0
  440. data/lib/resources/oneget.rb +0 -0
  441. data/lib/resources/oracledb_session.rb +0 -0
  442. data/lib/resources/os.rb +0 -0
  443. data/lib/resources/os_env.rb +0 -0
  444. data/lib/resources/package.rb +0 -0
  445. data/lib/resources/packages.rb +0 -0
  446. data/lib/resources/parse_config.rb +0 -0
  447. data/lib/resources/passwd.rb +0 -0
  448. data/lib/resources/pip.rb +0 -0
  449. data/lib/resources/platform.rb +0 -0
  450. data/lib/resources/port.rb +0 -0
  451. data/lib/resources/postgres.rb +0 -0
  452. data/lib/resources/postgres_conf.rb +0 -0
  453. data/lib/resources/postgres_hba_conf.rb +0 -0
  454. data/lib/resources/postgres_ident_conf.rb +0 -0
  455. data/lib/resources/postgres_session.rb +0 -0
  456. data/lib/resources/powershell.rb +1 -0
  457. data/lib/resources/processes.rb +0 -0
  458. data/lib/resources/rabbitmq_conf.rb +0 -0
  459. data/lib/resources/registry_key.rb +0 -0
  460. data/lib/resources/security_policy.rb +0 -0
  461. data/lib/resources/service.rb +0 -0
  462. data/lib/resources/shadow.rb +20 -10
  463. data/lib/resources/ssh_conf.rb +0 -0
  464. data/lib/resources/ssl.rb +0 -0
  465. data/lib/resources/sys_info.rb +0 -0
  466. data/lib/resources/toml.rb +0 -0
  467. data/lib/resources/users.rb +0 -0
  468. data/lib/resources/vbscript.rb +0 -0
  469. data/lib/resources/virtualization.rb +0 -0
  470. data/lib/resources/windows_feature.rb +0 -0
  471. data/lib/resources/windows_hotfix.rb +0 -0
  472. data/lib/resources/windows_task.rb +0 -0
  473. data/lib/resources/wmi.rb +0 -0
  474. data/lib/resources/x509_certificate.rb +0 -0
  475. data/lib/resources/xinetd.rb +0 -0
  476. data/lib/resources/xml.rb +0 -0
  477. data/lib/resources/yaml.rb +0 -0
  478. data/lib/resources/yum.rb +0 -0
  479. data/lib/resources/zfs_dataset.rb +0 -0
  480. data/lib/resources/zfs_pool.rb +0 -0
  481. data/lib/source_readers/flat.rb +0 -0
  482. data/lib/source_readers/inspec.rb +0 -0
  483. data/lib/utils/command_wrapper.rb +0 -0
  484. data/lib/utils/convert.rb +0 -0
  485. data/lib/utils/database_helpers.rb +0 -0
  486. data/lib/utils/erlang_parser.rb +0 -0
  487. data/lib/utils/file_reader.rb +0 -0
  488. data/lib/utils/filter.rb +0 -0
  489. data/lib/utils/filter_array.rb +0 -0
  490. data/lib/utils/find_files.rb +0 -0
  491. data/lib/utils/hash.rb +0 -0
  492. data/lib/utils/json_log.rb +0 -0
  493. data/lib/utils/latest_version.rb +0 -0
  494. data/lib/utils/modulator.rb +0 -0
  495. data/lib/utils/nginx_parser.rb +0 -0
  496. data/lib/utils/object_traversal.rb +0 -0
  497. data/lib/utils/parser.rb +0 -0
  498. data/lib/utils/pkey_reader.rb +15 -0
  499. data/lib/utils/plugin_registry.rb +0 -0
  500. data/lib/utils/simpleconfig.rb +0 -0
  501. data/lib/utils/spdx.rb +0 -0
  502. data/lib/utils/spdx.txt +0 -0
  503. metadata +5 -4
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/fetchers/git.rb CHANGED
File without changes
File without changes
data/lib/fetchers/mock.rb CHANGED
File without changes
data/lib/fetchers/url.rb CHANGED
File without changes
data/lib/inspec.rb CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -26,6 +26,8 @@ module Inspec
26
26
  desc: 'The login user for a remote scan.'
27
27
  option :password, type: :string, lazy_default: -1,
28
28
  desc: 'Login password for a remote scan, if required.'
29
+ option :enable_password, type: :string, lazy_default: -1,
30
+ desc: 'Password for enable mode on Cisco IOS devices.'
29
31
  option :key_files, aliases: :i, type: :array,
30
32
  desc: 'Login key or certificate file for a remote scan.'
31
33
  option :path, type: :string,
File without changes
data/lib/inspec/cli.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/inspec/dsl.rb CHANGED
File without changes
File without changes
File without changes
data/lib/inspec/errors.rb CHANGED
File without changes
File without changes
data/lib/inspec/expect.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/inspec/log.rb CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -6,7 +6,17 @@ module Inspec
6
6
  attr_writer :value
7
7
 
8
8
  DEFAULT_ATTRIBUTE = Class.new do
9
+ def initialize(name)
10
+ @name = name
11
+ end
12
+
9
13
  def method_missing(*_)
14
+ Inspec::Log.warn(
15
+ "Returning DEFAULT_ATTRIBUTE for '#{@name}'. "\
16
+ "Use --attrs to provide a value for '#{@name}' or specify a default "\
17
+ "value with `attribute('#{@name}', default: 'somedefault', ...)`.",
18
+ )
19
+
10
20
  self
11
21
  end
12
22
 
@@ -27,7 +37,7 @@ module Inspec
27
37
  end
28
38
 
29
39
  def default
30
- @opts.key?(:default) ? @opts[:default] : DEFAULT_ATTRIBUTE.new
40
+ @opts.key?(:default) ? @opts[:default] : DEFAULT_ATTRIBUTE.new(@name)
31
41
  end
32
42
 
33
43
  def title
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -43,6 +43,7 @@ module Inspec::Reporters
43
43
  result_xml = REXML::Element.new('testcase')
44
44
  result_xml.add_attribute('name', result[:code_desc])
45
45
  result_xml.add_attribute('classname', control[:title].nil? ? "#{profile_name}.Anonymous" : "#{profile_name}.#{control[:id]}")
46
+ result_xml.add_attribute('target', run_data[:platform][:target].nil? ? '' : run_data[:platform][:target].to_s)
46
47
  result_xml.add_attribute('time', result[:run_time])
47
48
 
48
49
  if result[:status] == 'failed'
File without changes
File without changes
data/lib/inspec/rule.rb CHANGED
File without changes
data/lib/inspec/runner.rb CHANGED
File without changes
File without changes
File without changes
File without changes
data/lib/inspec/schema.rb CHANGED
File without changes
File without changes
File without changes
data/lib/inspec/shell.rb CHANGED
File without changes
File without changes
File without changes
@@ -4,5 +4,5 @@
4
4
  # author: Christoph Hartmann
5
5
 
6
6
  module Inspec
7
- VERSION = '2.1.30'
7
+ VERSION = '2.1.43'
8
8
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/resources/apt.rb CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -29,6 +29,18 @@ class AwsCloudTrailTrail < Inspec.resource(1)
29
29
  !kms_key_id.nil?
30
30
  end
31
31
 
32
+ def delivered_logs_days_ago
33
+ query = { name: @trail_name }
34
+ catch_aws_errors do
35
+ begin
36
+ resp = BackendFactory.create(inspec_runner).get_trail_status(query).to_h
37
+ ((Time.now - resp[:latest_cloud_watch_logs_delivery_time])/(24*60*60)).to_i unless resp[:latest_cloud_watch_logs_delivery_time].nil?
38
+ rescue Aws::CloudTrail::Errors::TrailNotFoundException
39
+ nil
40
+ end
41
+ end
42
+ end
43
+
32
44
  private
33
45
 
34
46
  def validate_params(raw_params)
@@ -72,6 +84,10 @@ class AwsCloudTrailTrail < Inspec.resource(1)
72
84
  def describe_trails(query)
73
85
  aws_service_client.describe_trails(query)
74
86
  end
87
+
88
+ def get_trail_status(query)
89
+ aws_service_client.get_trail_status(query)
90
+ end
75
91
  end
76
92
  end
77
93
  end
File without changes
@@ -3,7 +3,7 @@ class AwsCloudwatchAlarm < Inspec.resource(1)
3
3
  desc <<-EOD
4
4
  # Look for a specific alarm
5
5
  aws_cloudwatch_alarm(
6
- metric: 'my-metric-name',
6
+ metric_name: 'my-metric-name',
7
7
  metric_namespace: 'my-metric-namespace',
8
8
  ) do
9
9
  it { should exist }
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -9,7 +9,7 @@ class AwsIamGroup < Inspec.resource(1)
9
9
  supports platform: 'aws'
10
10
 
11
11
  include AwsSingularResourceMixin
12
- attr_reader :group_name
12
+ attr_reader :group_name, :users
13
13
 
14
14
  def to_s
15
15
  "IAM Group #{group_name}"
@@ -36,8 +36,10 @@ class AwsIamGroup < Inspec.resource(1)
36
36
  backend = AwsIamGroup::BackendFactory.create(inspec_runner)
37
37
 
38
38
  begin
39
- @aws_group_struct = backend.get_group(group_name: group_name)[:group]
39
+ resp = backend.get_group(group_name: group_name)
40
40
  @exists = true
41
+ @aws_group_struct = resp[:group]
42
+ @users = resp[:users].map(&:user_name)
41
43
  rescue Aws::IAM::Errors::NoSuchEntity
42
44
  @exists = false
43
45
  end
File without changes
File without changes
File without changes
@@ -1,3 +1,7 @@
1
+ require 'json'
2
+ require 'set'
3
+ require 'uri'
4
+
1
5
  class AwsIamPolicy < Inspec.resource(1)
2
6
  name 'aws_iam_policy'
3
7
  desc 'Verifies settings for individual AWS IAM Policy'
@@ -12,6 +16,21 @@ class AwsIamPolicy < Inspec.resource(1)
12
16
 
13
17
  attr_reader :arn, :attachment_count, :default_version_id
14
18
 
19
+ EXPECTED_CRITERIA = %w{
20
+ Action
21
+ Effect
22
+ Resource
23
+ Sid
24
+ }.freeze
25
+
26
+ UNIMPLEMENTED_CRITERIA = %w{
27
+ Conditional
28
+ NotAction
29
+ NotPrincipal
30
+ NotResource
31
+ Principal
32
+ }.freeze
33
+
15
34
  def to_s
16
35
  "Policy #{@policy_name}"
17
36
  end
@@ -50,8 +69,133 @@ class AwsIamPolicy < Inspec.resource(1)
50
69
  attached_roles.include?(role_name)
51
70
  end
52
71
 
72
+ def policy
73
+ return nil unless exists?
74
+ return @policy if defined?(@policy)
75
+
76
+ catch_aws_errors do
77
+ backend = BackendFactory.create(inspec_runner)
78
+ gpv_response = backend.get_policy_version(policy_arn: arn, version_id: default_version_id)
79
+ @policy = JSON.parse(URI.decode_www_form_component(gpv_response.policy_version.document))
80
+ end
81
+ @policy
82
+ end
83
+
84
+ def statement_count
85
+ return nil unless exists?
86
+ policy['Statement'].count
87
+ end
88
+
89
+ def has_statement?(raw_criteria = {})
90
+ return nil unless exists?
91
+ criteria = has_statement__normalize_criteria(has_statement__validate_criteria(raw_criteria))
92
+ @normalized_statements ||= has_statement__normalize_statements
93
+ statements = has_statement__focus_on_sid(@normalized_statements, criteria)
94
+ statements.any? do |statement|
95
+ true && \
96
+ has_statement__effect(statement, criteria) && \
97
+ has_statement__array_criterion(:action, statement, criteria) && \
98
+ has_statement__array_criterion(:resource, statement, criteria)
99
+ end
100
+ end
101
+
53
102
  private
54
103
 
104
+ def has_statement__validate_criteria(raw_criteria)
105
+ recognized_criteria = {}
106
+ EXPECTED_CRITERIA.each do |expected_criterion|
107
+ if raw_criteria.key?(expected_criterion)
108
+ recognized_criteria[expected_criterion] = raw_criteria.delete(expected_criterion)
109
+ end
110
+ end
111
+
112
+ # Special message for valid, but unimplemented statement attributes
113
+ UNIMPLEMENTED_CRITERIA.each do |unimplemented_criterion|
114
+ if raw_criteria.key?(unimplemented_criterion)
115
+ raise ArgumentError, "Criterion '#{unimplemented_criterion}' is not supported for performing have_statement queries."
116
+ end
117
+ end
118
+
119
+ # If anything is left, it's spurious
120
+ unless raw_criteria.empty?
121
+ raise ArgumentError, "Unrecognized criteria #{raw_criteria.keys.join(', ')} to have_statement. Recognized criteria: #{EXPECTED_CRITERIA.join(', ')}"
122
+ end
123
+
124
+ # Effect has only 2 permitted values
125
+ if recognized_criteria.key?('Effect')
126
+ unless %w{Allow Deny}.include?(recognized_criteria['Effect'])
127
+ raise ArgumentError, "Criterion 'Effect' for have_statement must be one of 'Allow' or 'Deny' - got '#{recognized_criteria['Effect']}'"
128
+ end
129
+ end
130
+
131
+ recognized_criteria
132
+ end
133
+
134
+ def has_statement__normalize_criteria(criteria)
135
+ # Transform keys into lowercase symbols
136
+ criteria.keys.each do |provided_key|
137
+ criteria[provided_key.downcase.to_sym] = criteria.delete(provided_key)
138
+ end
139
+
140
+ criteria
141
+ end
142
+
143
+ def has_statement__normalize_statements
144
+ policy['Statement'].map do |statement|
145
+ # Coerce some values into arrays
146
+ %w{Action Resource}.each do |field|
147
+ if statement.key?(field)
148
+ statement[field] = Array(statement[field])
149
+ end
150
+ end
151
+
152
+ # Symbolize all keys
153
+ statement.keys.each do |field|
154
+ statement[field.downcase.to_sym] = statement.delete(field)
155
+ end
156
+
157
+ statement
158
+ end
159
+ end
160
+
161
+ def has_statement__focus_on_sid(statements, criteria)
162
+ return statements unless criteria.key?(:sid)
163
+ sid_seek = criteria[:sid]
164
+ statements.select do |statement|
165
+ if sid_seek.is_a? Regexp
166
+ statement[:sid] =~ sid_seek
167
+ else
168
+ statement[:sid] == sid_seek
169
+ end
170
+ end
171
+ end
172
+
173
+ def has_statement__effect(statement, criteria)
174
+ !criteria.key?(:effect) || criteria[:effect] == statement[:effect]
175
+ end
176
+
177
+ def has_statement__array_criterion(crit_name, statement, criteria)
178
+ return true unless criteria.key?(crit_name)
179
+ check = criteria[crit_name]
180
+ values = statement[crit_name] # This is an array due to normalize_statements
181
+
182
+ if check.is_a?(String)
183
+ # If check is a string, it only has to match one of the values
184
+ values.any? { |v| v == check }
185
+ elsif check.is_a?(Regexp)
186
+ # If check is a regex, it only has to match one of the values
187
+ values.any? { |v| v =~ check }
188
+ elsif check.is_a?(Array) && check.all? { |c| c.is_a? String }
189
+ # If check is an array of strings, perform setwise check
190
+ Set.new(values) == Set.new(check)
191
+ elsif check.is_a?(Array) && check.all? { |c| c.is_a? Regexp }
192
+ # If check is an array of regexes, all values must match all regexes
193
+ values.all? { |v| check.all? { |r| v =~ r } }
194
+ else
195
+ false
196
+ end
197
+ end
198
+
55
199
  def validate_params(raw_params)
56
200
  validated_params = check_resource_param_names(
57
201
  raw_params: raw_params,
@@ -113,6 +257,10 @@ class AwsIamPolicy < Inspec.resource(1)
113
257
  BackendFactory.set_default_backend(self)
114
258
  self.aws_client_class = Aws::IAM::Client
115
259
 
260
+ def get_policy_version(criteria)
261
+ aws_service_client.get_policy_version(criteria)
262
+ end
263
+
116
264
  def list_policies(criteria)
117
265
  aws_service_client.list_policies(criteria)
118
266
  end