inspec 2.0.32 → 2.0.45
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 +4 -4
- data/.rubocop.yml +101 -101
- data/CHANGELOG.md +2991 -2970
- data/Gemfile +55 -55
- data/LICENSE +14 -14
- data/MAINTAINERS.md +33 -33
- data/MAINTAINERS.toml +52 -52
- data/README.md +446 -437
- data/Rakefile +322 -322
- data/bin/inspec +12 -12
- data/docs/.gitignore +2 -2
- data/docs/README.md +40 -40
- data/docs/dsl_inspec.md +258 -258
- data/docs/dsl_resource.md +93 -93
- data/docs/glossary.md +99 -99
- data/docs/habitat.md +191 -191
- data/docs/inspec_and_friends.md +107 -107
- data/docs/matchers.md +169 -168
- data/docs/migration.md +293 -293
- data/docs/platforms.md +118 -118
- data/docs/plugin_kitchen_inspec.md +49 -49
- data/docs/profiles.md +370 -370
- data/docs/reporters.md +105 -105
- data/docs/resources/aide_conf.md.erb +75 -75
- data/docs/resources/apache.md.erb +67 -67
- data/docs/resources/apache_conf.md.erb +68 -68
- data/docs/resources/apt.md.erb +71 -71
- data/docs/resources/audit_policy.md.erb +47 -47
- data/docs/resources/auditd.md.erb +79 -79
- data/docs/resources/auditd_conf.md.erb +68 -68
- data/docs/resources/aws_cloudtrail_trail.md.erb +140 -140
- data/docs/resources/aws_cloudtrail_trails.md.erb +81 -81
- data/docs/resources/aws_cloudwatch_alarm.md.erb +86 -86
- data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +151 -151
- data/docs/resources/aws_config_recorder.md.erb +71 -71
- data/docs/resources/aws_ec2_instance.md.erb +106 -106
- data/docs/resources/aws_iam_access_key.md.erb +123 -123
- data/docs/resources/aws_iam_access_keys.md.erb +198 -198
- data/docs/resources/aws_iam_group.md.erb +46 -46
- data/docs/resources/aws_iam_groups.md.erb +43 -43
- data/docs/resources/aws_iam_password_policy.md.erb +76 -76
- data/docs/resources/aws_iam_policies.md.erb +82 -82
- data/docs/resources/aws_iam_policy.md.erb +144 -144
- data/docs/resources/aws_iam_role.md.erb +63 -63
- data/docs/resources/aws_iam_root_user.md.erb +58 -58
- data/docs/resources/aws_iam_user.md.erb +64 -64
- data/docs/resources/aws_iam_users.md.erb +89 -89
- data/docs/resources/aws_kms_keys.md.erb +84 -84
- data/docs/resources/aws_route_table.md.erb +47 -47
- data/docs/resources/aws_s3_bucket.md.erb +134 -134
- data/docs/resources/aws_security_group.md.erb +151 -151
- data/docs/resources/aws_security_groups.md.erb +91 -91
- data/docs/resources/aws_sns_topic.md.erb +63 -63
- data/docs/resources/aws_subnet.md.erb +133 -133
- data/docs/resources/aws_subnets.md.erb +126 -126
- data/docs/resources/aws_vpc.md.erb +120 -120
- data/docs/resources/aws_vpcs.md.erb +48 -48
- data/docs/resources/azure_generic_resource.md.erb +170 -170
- data/docs/resources/azure_resource_group.md.erb +284 -284
- data/docs/resources/azure_virtual_machine.md.erb +347 -347
- data/docs/resources/azure_virtual_machine_data_disk.md.erb +224 -224
- data/docs/resources/bash.md.erb +75 -75
- data/docs/resources/bond.md.erb +90 -90
- data/docs/resources/bridge.md.erb +57 -57
- data/docs/resources/bsd_service.md.erb +67 -67
- data/docs/resources/command.md.erb +138 -138
- data/docs/resources/cpan.md.erb +79 -79
- data/docs/resources/cran.md.erb +64 -64
- data/docs/resources/crontab.md.erb +89 -89
- data/docs/resources/csv.md.erb +54 -54
- data/docs/resources/dh_params.md.erb +205 -205
- data/docs/resources/directory.md.erb +30 -30
- data/docs/resources/docker.md.erb +219 -219
- data/docs/resources/docker_container.md.erb +104 -104
- data/docs/resources/docker_image.md.erb +94 -94
- data/docs/resources/docker_service.md.erb +114 -114
- data/docs/resources/elasticsearch.md.erb +242 -242
- data/docs/resources/etc_fstab.md.erb +125 -125
- data/docs/resources/etc_group.md.erb +75 -75
- data/docs/resources/etc_hosts.md.erb +78 -78
- data/docs/resources/etc_hosts_allow.md.erb +74 -74
- data/docs/resources/etc_hosts_deny.md.erb +74 -74
- data/docs/resources/file.md.erb +526 -515
- data/docs/resources/filesystem.md.erb +41 -41
- data/docs/resources/firewalld.md.erb +107 -107
- data/docs/resources/gem.md.erb +79 -79
- data/docs/resources/group.md.erb +61 -61
- data/docs/resources/grub_conf.md.erb +101 -101
- data/docs/resources/host.md.erb +86 -86
- data/docs/resources/http.md.erb +196 -196
- data/docs/resources/iis_app.md.erb +122 -122
- data/docs/resources/iis_site.md.erb +135 -135
- data/docs/resources/inetd_conf.md.erb +94 -94
- data/docs/resources/ini.md.erb +76 -76
- data/docs/resources/interface.md.erb +58 -58
- data/docs/resources/iptables.md.erb +64 -64
- data/docs/resources/json.md.erb +63 -63
- data/docs/resources/kernel_module.md.erb +120 -120
- data/docs/resources/kernel_parameter.md.erb +53 -53
- data/docs/resources/key_rsa.md.erb +85 -85
- data/docs/resources/launchd_service.md.erb +57 -57
- data/docs/resources/limits_conf.md.erb +75 -75
- data/docs/resources/login_def.md.erb +71 -71
- data/docs/resources/mount.md.erb +69 -69
- data/docs/resources/mssql_session.md.erb +60 -60
- data/docs/resources/mysql_conf.md.erb +99 -99
- data/docs/resources/mysql_session.md.erb +74 -74
- data/docs/resources/nginx.md.erb +79 -79
- data/docs/resources/nginx_conf.md.erb +128 -128
- data/docs/resources/npm.md.erb +60 -60
- data/docs/resources/ntp_conf.md.erb +60 -60
- data/docs/resources/oneget.md.erb +53 -53
- data/docs/resources/oracledb_session.md.erb +52 -52
- data/docs/resources/os.md.erb +141 -141
- data/docs/resources/os_env.md.erb +78 -78
- data/docs/resources/package.md.erb +120 -120
- data/docs/resources/packages.md.erb +67 -67
- data/docs/resources/parse_config.md.erb +103 -103
- data/docs/resources/parse_config_file.md.erb +138 -138
- data/docs/resources/passwd.md.erb +141 -141
- data/docs/resources/pip.md.erb +67 -67
- data/docs/resources/port.md.erb +137 -137
- data/docs/resources/postgres_conf.md.erb +79 -79
- data/docs/resources/postgres_hba_conf.md.erb +93 -93
- data/docs/resources/postgres_ident_conf.md.erb +76 -76
- data/docs/resources/postgres_session.md.erb +69 -69
- data/docs/resources/powershell.md.erb +102 -102
- data/docs/resources/processes.md.erb +109 -109
- data/docs/resources/rabbitmq_config.md.erb +41 -41
- data/docs/resources/registry_key.md.erb +158 -158
- data/docs/resources/runit_service.md.erb +57 -57
- data/docs/resources/security_policy.md.erb +47 -47
- data/docs/resources/service.md.erb +121 -121
- data/docs/resources/shadow.md.erb +146 -144
- data/docs/resources/ssh_config.md.erb +80 -80
- data/docs/resources/sshd_config.md.erb +83 -83
- data/docs/resources/ssl.md.erb +119 -119
- data/docs/resources/sys_info.md.erb +42 -42
- data/docs/resources/systemd_service.md.erb +57 -57
- data/docs/resources/sysv_service.md.erb +57 -57
- data/docs/resources/upstart_service.md.erb +57 -57
- data/docs/resources/user.md.erb +140 -140
- data/docs/resources/users.md.erb +127 -127
- data/docs/resources/vbscript.md.erb +55 -55
- data/docs/resources/virtualization.md.erb +57 -57
- data/docs/resources/windows_feature.md.erb +47 -47
- data/docs/resources/windows_hotfix.md.erb +53 -53
- data/docs/resources/windows_task.md.erb +95 -95
- data/docs/resources/wmi.md.erb +81 -81
- data/docs/resources/x509_certificate.md.erb +151 -151
- data/docs/resources/xinetd_conf.md.erb +156 -156
- data/docs/resources/xml.md.erb +85 -85
- data/docs/resources/yaml.md.erb +69 -69
- data/docs/resources/yum.md.erb +98 -98
- data/docs/resources/zfs_dataset.md.erb +53 -53
- data/docs/resources/zfs_pool.md.erb +47 -47
- data/docs/ruby_usage.md +203 -203
- data/docs/shared/matcher_be.md.erb +1 -1
- data/docs/shared/matcher_cmp.md.erb +43 -43
- data/docs/shared/matcher_eq.md.erb +3 -3
- data/docs/shared/matcher_include.md.erb +1 -1
- data/docs/shared/matcher_match.md.erb +1 -1
- data/docs/shell.md +215 -215
- data/examples/README.md +8 -8
- data/examples/inheritance/README.md +65 -65
- data/examples/inheritance/controls/example.rb +14 -14
- data/examples/inheritance/inspec.yml +15 -15
- data/examples/kitchen-ansible/.kitchen.yml +25 -25
- data/examples/kitchen-ansible/Gemfile +19 -19
- data/examples/kitchen-ansible/README.md +53 -53
- data/examples/kitchen-ansible/files/nginx.repo +6 -6
- data/examples/kitchen-ansible/tasks/main.yml +16 -16
- data/examples/kitchen-ansible/test/integration/default/default.yml +5 -5
- data/examples/kitchen-ansible/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-chef/.kitchen.yml +20 -20
- data/examples/kitchen-chef/Berksfile +3 -3
- data/examples/kitchen-chef/Gemfile +19 -19
- data/examples/kitchen-chef/README.md +27 -27
- data/examples/kitchen-chef/metadata.rb +7 -7
- data/examples/kitchen-chef/recipes/default.rb +6 -6
- data/examples/kitchen-chef/recipes/nginx.rb +30 -30
- data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-puppet/.kitchen.yml +22 -22
- data/examples/kitchen-puppet/Gemfile +20 -20
- data/examples/kitchen-puppet/Puppetfile +25 -25
- data/examples/kitchen-puppet/README.md +53 -53
- data/examples/kitchen-puppet/manifests/site.pp +33 -33
- data/examples/kitchen-puppet/metadata.json +11 -11
- data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -28
- data/examples/meta-profile/README.md +37 -37
- data/examples/meta-profile/controls/example.rb +13 -13
- data/examples/meta-profile/inspec.yml +13 -13
- data/examples/profile-attribute.yml +2 -2
- data/examples/profile-attribute/README.md +14 -14
- data/examples/profile-attribute/controls/example.rb +11 -11
- data/examples/profile-attribute/inspec.yml +8 -8
- data/examples/profile-aws/controls/iam_password_policy_expiration.rb +8 -8
- data/examples/profile-aws/controls/iam_password_policy_max_age.rb +8 -8
- data/examples/profile-aws/controls/iam_root_user_mfa.rb +8 -8
- data/examples/profile-aws/controls/iam_users_access_key_age.rb +8 -8
- data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +8 -8
- data/examples/profile-aws/inspec.yml +11 -11
- data/examples/profile-azure/controls/azure_resource_group_example.rb +24 -24
- data/examples/profile-azure/controls/azure_vm_example.rb +29 -29
- data/examples/profile-azure/inspec.yml +11 -11
- data/examples/profile-sensitive/README.md +29 -29
- data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -9
- data/examples/profile-sensitive/controls/sensitive.rb +9 -9
- data/examples/profile-sensitive/inspec.yml +8 -8
- data/examples/profile/README.md +48 -48
- data/examples/profile/controls/example.rb +23 -23
- data/examples/profile/controls/gordon.rb +36 -36
- data/examples/profile/controls/meta.rb +34 -34
- data/examples/profile/inspec.yml +10 -10
- data/examples/profile/libraries/gordon_config.rb +53 -53
- data/inspec.gemspec +47 -47
- data/lib/bundles/README.md +3 -3
- data/lib/bundles/inspec-artifact.rb +7 -7
- data/lib/bundles/inspec-artifact/README.md +1 -1
- data/lib/bundles/inspec-artifact/cli.rb +277 -277
- data/lib/bundles/inspec-compliance.rb +16 -16
- data/lib/bundles/inspec-compliance/.kitchen.yml +20 -20
- data/lib/bundles/inspec-compliance/README.md +185 -185
- data/lib/bundles/inspec-compliance/api.rb +316 -316
- data/lib/bundles/inspec-compliance/api/login.rb +152 -152
- data/lib/bundles/inspec-compliance/bootstrap.sh +41 -41
- data/lib/bundles/inspec-compliance/cli.rb +254 -254
- data/lib/bundles/inspec-compliance/configuration.rb +103 -103
- data/lib/bundles/inspec-compliance/http.rb +86 -86
- data/lib/bundles/inspec-compliance/support.rb +36 -36
- data/lib/bundles/inspec-compliance/target.rb +98 -98
- data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +93 -93
- data/lib/bundles/inspec-habitat.rb +12 -12
- data/lib/bundles/inspec-habitat/cli.rb +36 -36
- data/lib/bundles/inspec-habitat/log.rb +10 -10
- data/lib/bundles/inspec-habitat/profile.rb +390 -390
- data/lib/bundles/inspec-init.rb +8 -8
- data/lib/bundles/inspec-init/README.md +31 -31
- data/lib/bundles/inspec-init/cli.rb +97 -97
- data/lib/bundles/inspec-init/templates/profile/README.md +3 -3
- data/lib/bundles/inspec-init/templates/profile/controls/example.rb +19 -19
- data/lib/bundles/inspec-init/templates/profile/inspec.yml +8 -8
- data/lib/bundles/inspec-supermarket.rb +13 -13
- data/lib/bundles/inspec-supermarket/README.md +45 -45
- data/lib/bundles/inspec-supermarket/api.rb +84 -84
- data/lib/bundles/inspec-supermarket/cli.rb +73 -73
- data/lib/bundles/inspec-supermarket/target.rb +34 -34
- data/lib/fetchers/git.rb +163 -163
- data/lib/fetchers/local.rb +74 -74
- data/lib/fetchers/mock.rb +35 -35
- data/lib/fetchers/url.rb +204 -204
- data/lib/inspec.rb +24 -24
- data/lib/inspec/archive/tar.rb +29 -29
- data/lib/inspec/archive/zip.rb +19 -19
- data/lib/inspec/backend.rb +92 -92
- data/lib/inspec/base_cli.rb +355 -350
- data/lib/inspec/cached_fetcher.rb +66 -66
- data/lib/inspec/cli.rb +292 -292
- data/lib/inspec/completions/bash.sh.erb +45 -45
- data/lib/inspec/completions/fish.sh.erb +34 -34
- data/lib/inspec/completions/zsh.sh.erb +61 -61
- data/lib/inspec/control_eval_context.rb +179 -179
- data/lib/inspec/dependencies/cache.rb +72 -72
- data/lib/inspec/dependencies/dependency_set.rb +92 -92
- data/lib/inspec/dependencies/lockfile.rb +115 -115
- data/lib/inspec/dependencies/requirement.rb +123 -123
- data/lib/inspec/dependencies/resolver.rb +86 -86
- data/lib/inspec/describe.rb +27 -27
- data/lib/inspec/dsl.rb +66 -66
- data/lib/inspec/dsl_shared.rb +33 -33
- data/lib/inspec/env_printer.rb +157 -157
- data/lib/inspec/errors.rb +13 -13
- data/lib/inspec/exceptions.rb +12 -12
- data/lib/inspec/expect.rb +45 -45
- data/lib/inspec/fetcher.rb +45 -45
- data/lib/inspec/file_provider.rb +275 -275
- data/lib/inspec/formatters.rb +3 -3
- data/lib/inspec/formatters/base.rb +250 -250
- data/lib/inspec/formatters/json_rspec.rb +20 -20
- data/lib/inspec/formatters/show_progress.rb +12 -12
- data/lib/inspec/library_eval_context.rb +58 -58
- data/lib/inspec/log.rb +11 -11
- data/lib/inspec/metadata.rb +247 -247
- data/lib/inspec/method_source.rb +24 -24
- data/lib/inspec/objects.rb +14 -14
- data/lib/inspec/objects/attribute.rb +65 -65
- data/lib/inspec/objects/control.rb +61 -61
- data/lib/inspec/objects/describe.rb +92 -92
- data/lib/inspec/objects/each_loop.rb +36 -36
- data/lib/inspec/objects/list.rb +15 -15
- data/lib/inspec/objects/or_test.rb +40 -40
- data/lib/inspec/objects/ruby_helper.rb +15 -15
- data/lib/inspec/objects/tag.rb +27 -27
- data/lib/inspec/objects/test.rb +87 -87
- data/lib/inspec/objects/value.rb +27 -27
- data/lib/inspec/plugins.rb +60 -60
- data/lib/inspec/plugins/cli.rb +24 -24
- data/lib/inspec/plugins/fetcher.rb +86 -86
- data/lib/inspec/plugins/resource.rb +135 -135
- data/lib/inspec/plugins/secret.rb +15 -15
- data/lib/inspec/plugins/source_reader.rb +40 -40
- data/lib/inspec/polyfill.rb +12 -12
- data/lib/inspec/profile.rb +510 -510
- data/lib/inspec/profile_context.rb +207 -207
- data/lib/inspec/profile_vendor.rb +66 -66
- data/lib/inspec/reporters.rb +54 -50
- data/lib/inspec/reporters/base.rb +24 -24
- data/lib/inspec/reporters/cli.rb +356 -356
- data/lib/inspec/reporters/json.rb +116 -116
- data/lib/inspec/reporters/json_min.rb +48 -48
- data/lib/inspec/reporters/junit.rb +77 -77
- data/lib/inspec/require_loader.rb +33 -33
- data/lib/inspec/resource.rb +186 -186
- data/lib/inspec/rule.rb +266 -266
- data/lib/inspec/runner.rb +345 -345
- data/lib/inspec/runner_mock.rb +41 -41
- data/lib/inspec/runner_rspec.rb +175 -175
- data/lib/inspec/runtime_profile.rb +26 -26
- data/lib/inspec/schema.rb +213 -213
- data/lib/inspec/secrets.rb +19 -19
- data/lib/inspec/secrets/yaml.rb +30 -30
- data/lib/inspec/shell.rb +220 -220
- data/lib/inspec/shell_detector.rb +90 -90
- data/lib/inspec/source_reader.rb +29 -29
- data/lib/inspec/version.rb +8 -8
- data/lib/matchers/matchers.rb +339 -339
- data/lib/resource_support/aws.rb +41 -41
- data/lib/resource_support/aws/aws_backend_base.rb +12 -12
- data/lib/resource_support/aws/aws_backend_factory_mixin.rb +12 -12
- data/lib/resource_support/aws/aws_plural_resource_mixin.rb +21 -21
- data/lib/resource_support/aws/aws_resource_mixin.rb +66 -66
- data/lib/resource_support/aws/aws_singular_resource_mixin.rb +24 -24
- data/lib/resources/aide_conf.rb +159 -160
- data/lib/resources/apache.rb +48 -48
- data/lib/resources/apache_conf.rb +156 -156
- data/lib/resources/apt.rb +149 -149
- data/lib/resources/audit_policy.rb +63 -63
- data/lib/resources/auditd.rb +231 -231
- data/lib/resources/auditd_conf.rb +55 -55
- data/lib/resources/aws/aws_cloudtrail_trail.rb +77 -77
- data/lib/resources/aws/aws_cloudtrail_trails.rb +47 -47
- data/lib/resources/aws/aws_cloudwatch_alarm.rb +62 -62
- data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +100 -100
- data/lib/resources/aws/aws_config_recorder.rb +98 -98
- data/lib/resources/aws/aws_ec2_instance.rb +157 -157
- data/lib/resources/aws/aws_iam_access_key.rb +106 -106
- data/lib/resources/aws/aws_iam_access_keys.rb +149 -144
- data/lib/resources/aws/aws_iam_group.rb +56 -56
- data/lib/resources/aws/aws_iam_groups.rb +52 -45
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
- data/lib/resources/aws/aws_iam_policies.rb +53 -46
- data/lib/resources/aws/aws_iam_policy.rb +125 -119
- data/lib/resources/aws/aws_iam_role.rb +51 -51
- data/lib/resources/aws/aws_iam_root_user.rb +60 -60
- data/lib/resources/aws/aws_iam_user.rb +111 -111
- data/lib/resources/aws/aws_iam_users.rb +108 -96
- data/lib/resources/aws/aws_kms_keys.rb +53 -46
- data/lib/resources/aws/aws_route_table.rb +61 -61
- data/lib/resources/aws/aws_s3_bucket.rb +115 -115
- data/lib/resources/aws/aws_security_group.rb +93 -93
- data/lib/resources/aws/aws_security_groups.rb +68 -68
- data/lib/resources/aws/aws_sns_topic.rb +53 -53
- data/lib/resources/aws/aws_subnet.rb +88 -88
- data/lib/resources/aws/aws_subnets.rb +53 -53
- data/lib/resources/aws/aws_vpc.rb +69 -69
- data/lib/resources/aws/aws_vpcs.rb +45 -45
- data/lib/resources/azure/azure_backend.rb +377 -377
- data/lib/resources/azure/azure_generic_resource.rb +59 -59
- data/lib/resources/azure/azure_resource_group.rb +152 -152
- data/lib/resources/azure/azure_virtual_machine.rb +264 -264
- data/lib/resources/azure/azure_virtual_machine_data_disk.rb +136 -136
- data/lib/resources/bash.rb +35 -35
- data/lib/resources/bond.rb +68 -68
- data/lib/resources/bridge.rb +122 -122
- data/lib/resources/command.rb +73 -69
- data/lib/resources/cpan.rb +58 -58
- data/lib/resources/cran.rb +64 -64
- data/lib/resources/crontab.rb +169 -170
- data/lib/resources/csv.rb +60 -60
- data/lib/resources/dh_params.rb +82 -82
- data/lib/resources/directory.rb +25 -25
- data/lib/resources/docker.rb +236 -236
- data/lib/resources/docker_container.rb +89 -89
- data/lib/resources/docker_image.rb +83 -83
- data/lib/resources/docker_object.rb +57 -57
- data/lib/resources/docker_service.rb +90 -90
- data/lib/resources/elasticsearch.rb +169 -169
- data/lib/resources/etc_fstab.rb +101 -102
- data/lib/resources/etc_group.rb +152 -156
- data/lib/resources/etc_hosts.rb +82 -81
- data/lib/resources/etc_hosts_allow_deny.rb +122 -123
- data/lib/resources/file.rb +298 -298
- data/lib/resources/filesystem.rb +31 -31
- data/lib/resources/firewalld.rb +143 -144
- data/lib/resources/gem.rb +70 -70
- data/lib/resources/groups.rb +215 -215
- data/lib/resources/grub_conf.rb +237 -237
- data/lib/resources/host.rb +306 -300
- data/lib/resources/http.rb +251 -250
- data/lib/resources/iis_app.rb +101 -104
- data/lib/resources/iis_site.rb +148 -148
- data/lib/resources/inetd_conf.rb +62 -62
- data/lib/resources/ini.rb +29 -29
- data/lib/resources/interface.rb +129 -129
- data/lib/resources/iptables.rb +80 -69
- data/lib/resources/json.rb +117 -117
- data/lib/resources/kernel_module.rb +107 -107
- data/lib/resources/kernel_parameter.rb +58 -58
- data/lib/resources/key_rsa.rb +67 -67
- data/lib/resources/limits_conf.rb +55 -55
- data/lib/resources/login_def.rb +66 -66
- data/lib/resources/mount.rb +88 -88
- data/lib/resources/mssql_session.rb +101 -101
- data/lib/resources/mysql.rb +81 -81
- data/lib/resources/mysql_conf.rb +134 -134
- data/lib/resources/mysql_session.rb +71 -71
- data/lib/resources/nginx.rb +96 -96
- data/lib/resources/nginx_conf.rb +227 -227
- data/lib/resources/npm.rb +48 -48
- data/lib/resources/ntp_conf.rb +58 -58
- data/lib/resources/oneget.rb +71 -71
- data/lib/resources/oracledb_session.rb +139 -139
- data/lib/resources/os.rb +36 -36
- data/lib/resources/os_env.rb +76 -76
- data/lib/resources/package.rb +370 -370
- data/lib/resources/packages.rb +111 -111
- data/lib/resources/parse_config.rb +116 -116
- data/lib/resources/passwd.rb +74 -74
- data/lib/resources/pip.rb +89 -89
- data/lib/resources/platform.rb +109 -109
- data/lib/resources/port.rb +771 -771
- data/lib/resources/postgres.rb +130 -130
- data/lib/resources/postgres_conf.rb +121 -121
- data/lib/resources/postgres_hba_conf.rb +99 -100
- data/lib/resources/postgres_ident_conf.rb +76 -78
- data/lib/resources/postgres_session.rb +71 -71
- data/lib/resources/powershell.rb +53 -57
- data/lib/resources/processes.rb +204 -204
- data/lib/resources/rabbitmq_conf.rb +52 -52
- data/lib/resources/registry_key.rb +296 -296
- data/lib/resources/security_policy.rb +180 -180
- data/lib/resources/service.rb +789 -789
- data/lib/resources/shadow.rb +146 -140
- data/lib/resources/ssh_conf.rb +102 -102
- data/lib/resources/ssl.rb +99 -99
- data/lib/resources/sys_info.rb +28 -28
- data/lib/resources/toml.rb +32 -32
- data/lib/resources/users.rb +654 -654
- data/lib/resources/vbscript.rb +68 -69
- data/lib/resources/virtualization.rb +247 -247
- data/lib/resources/windows_feature.rb +84 -84
- data/lib/resources/windows_hotfix.rb +35 -35
- data/lib/resources/windows_task.rb +102 -105
- data/lib/resources/wmi.rb +110 -113
- data/lib/resources/x509_certificate.rb +143 -143
- data/lib/resources/xinetd.rb +111 -111
- data/lib/resources/xml.rb +46 -46
- data/lib/resources/yaml.rb +47 -47
- data/lib/resources/yum.rb +180 -180
- data/lib/resources/zfs_dataset.rb +60 -60
- data/lib/resources/zfs_pool.rb +49 -49
- data/lib/source_readers/flat.rb +39 -39
- data/lib/source_readers/inspec.rb +75 -75
- data/lib/utils/command_wrapper.rb +27 -27
- data/lib/utils/convert.rb +12 -12
- data/lib/utils/database_helpers.rb +77 -77
- data/lib/utils/erlang_parser.rb +192 -192
- data/lib/utils/filter.rb +272 -272
- data/lib/utils/filter_array.rb +27 -27
- data/lib/utils/find_files.rb +44 -44
- data/lib/utils/hash.rb +41 -41
- data/lib/utils/json_log.rb +18 -18
- data/lib/utils/latest_version.rb +22 -22
- data/lib/utils/modulator.rb +12 -12
- data/lib/utils/nginx_parser.rb +85 -85
- data/lib/utils/object_traversal.rb +49 -49
- data/lib/utils/parser.rb +274 -274
- data/lib/utils/plugin_registry.rb +93 -93
- data/lib/utils/simpleconfig.rb +120 -120
- data/lib/utils/spdx.rb +13 -13
- data/lib/utils/spdx.txt +343 -343
- metadata +2 -2
data/lib/bundles/inspec-init.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# author: Christoph Hartmann
|
|
3
|
-
# author: Dominik Richter
|
|
4
|
-
|
|
5
|
-
libdir = File.dirname(__FILE__)
|
|
6
|
-
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
|
|
7
|
-
|
|
8
|
-
require 'inspec-init/cli'
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Christoph Hartmann
|
|
3
|
+
# author: Dominik Richter
|
|
4
|
+
|
|
5
|
+
libdir = File.dirname(__FILE__)
|
|
6
|
+
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
|
|
7
|
+
|
|
8
|
+
require 'inspec-init/cli'
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
# InSpec Extension to create new profiles
|
|
2
|
-
|
|
3
|
-
This extensions helps you to easily create a new profile
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
$ inspec init profile examples/new-profile
|
|
9
|
-
Create new profile at /Users/chartmann/Development/compliance/inspec/examples/new-profile
|
|
10
|
-
* Create directory controls
|
|
11
|
-
* Create file controls/example.rb
|
|
12
|
-
* Create file inspec.yml
|
|
13
|
-
* Create directory libraries
|
|
14
|
-
* Create file README.md
|
|
15
|
-
* Create file libraries/.gitkeep
|
|
16
|
-
|
|
17
|
-
$ inspec check examples/new-profile
|
|
18
|
-
Summary
|
|
19
|
-
-------
|
|
20
|
-
Location: examples/new-profile
|
|
21
|
-
Profile: examples/new-profile
|
|
22
|
-
Controls: 2
|
|
23
|
-
Timestamp: 2016-05-06T14:39:47+02:00
|
|
24
|
-
Valid: true
|
|
25
|
-
|
|
26
|
-
Errors
|
|
27
|
-
------
|
|
28
|
-
|
|
29
|
-
Warnings
|
|
30
|
-
--------
|
|
31
|
-
```
|
|
1
|
+
# InSpec Extension to create new profiles
|
|
2
|
+
|
|
3
|
+
This extensions helps you to easily create a new profile
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
$ inspec init profile examples/new-profile
|
|
9
|
+
Create new profile at /Users/chartmann/Development/compliance/inspec/examples/new-profile
|
|
10
|
+
* Create directory controls
|
|
11
|
+
* Create file controls/example.rb
|
|
12
|
+
* Create file inspec.yml
|
|
13
|
+
* Create directory libraries
|
|
14
|
+
* Create file README.md
|
|
15
|
+
* Create file libraries/.gitkeep
|
|
16
|
+
|
|
17
|
+
$ inspec check examples/new-profile
|
|
18
|
+
Summary
|
|
19
|
+
-------
|
|
20
|
+
Location: examples/new-profile
|
|
21
|
+
Profile: examples/new-profile
|
|
22
|
+
Controls: 2
|
|
23
|
+
Timestamp: 2016-05-06T14:39:47+02:00
|
|
24
|
+
Valid: true
|
|
25
|
+
|
|
26
|
+
Errors
|
|
27
|
+
------
|
|
28
|
+
|
|
29
|
+
Warnings
|
|
30
|
+
--------
|
|
31
|
+
```
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# author: Christoph Hartmann
|
|
3
|
-
|
|
4
|
-
require 'pathname'
|
|
5
|
-
|
|
6
|
-
module Init
|
|
7
|
-
class CLI < Inspec::BaseCLI
|
|
8
|
-
namespace 'init'
|
|
9
|
-
|
|
10
|
-
# TODO: find another solution, once https://github.com/erikhuda/thor/issues/261 is fixed
|
|
11
|
-
def self.banner(command, _namespace = nil, _subcommand = false)
|
|
12
|
-
"#{basename} #{subcommand_prefix} #{command.usage}"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def self.subcommand_prefix
|
|
16
|
-
namespace
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# read template directoy
|
|
20
|
-
template_dir = File.join(File.dirname(__FILE__), 'templates')
|
|
21
|
-
Dir.glob(File.join(template_dir, '*')) do |template|
|
|
22
|
-
relative = Pathname.new(template).relative_path_from(Pathname.new(template_dir))
|
|
23
|
-
|
|
24
|
-
# register command for the template
|
|
25
|
-
desc "#{relative} NAME", "Create a new #{relative}"
|
|
26
|
-
option :overwrite, type: :boolean, default: false,
|
|
27
|
-
desc: 'Overwrites existing directory'
|
|
28
|
-
define_method relative.to_s.to_sym do |name|
|
|
29
|
-
generator(relative.to_s, { name: name }, options)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
# 1. iterate over all files
|
|
36
|
-
# 2. read content in erb
|
|
37
|
-
# 3. write to target
|
|
38
|
-
def generator(type, attributes = {}, options = {}) # rubocop:disable Metrics/AbcSize
|
|
39
|
-
# path of this script
|
|
40
|
-
dir = File.dirname(__FILE__)
|
|
41
|
-
# look for template directory
|
|
42
|
-
base_dir = File.join(dir, 'templates', type)
|
|
43
|
-
# prepare glob for all subdirectories and files
|
|
44
|
-
template = File.join(base_dir, '**', '{*,.*}')
|
|
45
|
-
# generate target path
|
|
46
|
-
target = Pathname.new(Dir.pwd).join(attributes[:name])
|
|
47
|
-
puts "Create new #{type} at #{mark_text(target)}"
|
|
48
|
-
|
|
49
|
-
# check that the directory does not exist
|
|
50
|
-
if File.exist?(target) && !options['overwrite']
|
|
51
|
-
error "#{mark_text(target)} exists already, use --overwrite"
|
|
52
|
-
exit 1
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# ensure that target directory is available
|
|
56
|
-
FileUtils.mkdir_p(target)
|
|
57
|
-
|
|
58
|
-
# iterate over files and write to target path
|
|
59
|
-
Dir.glob(template) do |file|
|
|
60
|
-
relative = Pathname.new(file).relative_path_from(Pathname.new(base_dir))
|
|
61
|
-
destination = Pathname.new(target).join(relative)
|
|
62
|
-
if File.directory?(file)
|
|
63
|
-
li "Create directory #{mark_text(relative)}"
|
|
64
|
-
FileUtils.mkdir_p(destination)
|
|
65
|
-
elsif File.file?(file)
|
|
66
|
-
li "Create file #{mark_text(relative)}"
|
|
67
|
-
# read & render content
|
|
68
|
-
content = render(File.read(file), attributes)
|
|
69
|
-
# write file content
|
|
70
|
-
File.write(destination, content)
|
|
71
|
-
else
|
|
72
|
-
puts "Ignore #{file}, because its not an file or directoy"
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# This is a render helper to bind hash values to a ERB template
|
|
78
|
-
def render(content, hash)
|
|
79
|
-
# create a new binding class
|
|
80
|
-
cls = Class.new do
|
|
81
|
-
hash.each do |key, value|
|
|
82
|
-
define_method key.to_sym do
|
|
83
|
-
value
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
# expose binding
|
|
87
|
-
define_method :bind do
|
|
88
|
-
binding
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
ERB.new(content).result(cls.new.bind)
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# register the subcommand to Inspec CLI registry
|
|
96
|
-
Inspec::Plugins::CLI.add_subcommand(Init::CLI, 'init', 'init TEMPLATE ...', 'Scaffolds a new project', {})
|
|
97
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Christoph Hartmann
|
|
3
|
+
|
|
4
|
+
require 'pathname'
|
|
5
|
+
|
|
6
|
+
module Init
|
|
7
|
+
class CLI < Inspec::BaseCLI
|
|
8
|
+
namespace 'init'
|
|
9
|
+
|
|
10
|
+
# TODO: find another solution, once https://github.com/erikhuda/thor/issues/261 is fixed
|
|
11
|
+
def self.banner(command, _namespace = nil, _subcommand = false)
|
|
12
|
+
"#{basename} #{subcommand_prefix} #{command.usage}"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.subcommand_prefix
|
|
16
|
+
namespace
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# read template directoy
|
|
20
|
+
template_dir = File.join(File.dirname(__FILE__), 'templates')
|
|
21
|
+
Dir.glob(File.join(template_dir, '*')) do |template|
|
|
22
|
+
relative = Pathname.new(template).relative_path_from(Pathname.new(template_dir))
|
|
23
|
+
|
|
24
|
+
# register command for the template
|
|
25
|
+
desc "#{relative} NAME", "Create a new #{relative}"
|
|
26
|
+
option :overwrite, type: :boolean, default: false,
|
|
27
|
+
desc: 'Overwrites existing directory'
|
|
28
|
+
define_method relative.to_s.to_sym do |name|
|
|
29
|
+
generator(relative.to_s, { name: name }, options)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
private
|
|
34
|
+
|
|
35
|
+
# 1. iterate over all files
|
|
36
|
+
# 2. read content in erb
|
|
37
|
+
# 3. write to target
|
|
38
|
+
def generator(type, attributes = {}, options = {}) # rubocop:disable Metrics/AbcSize
|
|
39
|
+
# path of this script
|
|
40
|
+
dir = File.dirname(__FILE__)
|
|
41
|
+
# look for template directory
|
|
42
|
+
base_dir = File.join(dir, 'templates', type)
|
|
43
|
+
# prepare glob for all subdirectories and files
|
|
44
|
+
template = File.join(base_dir, '**', '{*,.*}')
|
|
45
|
+
# generate target path
|
|
46
|
+
target = Pathname.new(Dir.pwd).join(attributes[:name])
|
|
47
|
+
puts "Create new #{type} at #{mark_text(target)}"
|
|
48
|
+
|
|
49
|
+
# check that the directory does not exist
|
|
50
|
+
if File.exist?(target) && !options['overwrite']
|
|
51
|
+
error "#{mark_text(target)} exists already, use --overwrite"
|
|
52
|
+
exit 1
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# ensure that target directory is available
|
|
56
|
+
FileUtils.mkdir_p(target)
|
|
57
|
+
|
|
58
|
+
# iterate over files and write to target path
|
|
59
|
+
Dir.glob(template) do |file|
|
|
60
|
+
relative = Pathname.new(file).relative_path_from(Pathname.new(base_dir))
|
|
61
|
+
destination = Pathname.new(target).join(relative)
|
|
62
|
+
if File.directory?(file)
|
|
63
|
+
li "Create directory #{mark_text(relative)}"
|
|
64
|
+
FileUtils.mkdir_p(destination)
|
|
65
|
+
elsif File.file?(file)
|
|
66
|
+
li "Create file #{mark_text(relative)}"
|
|
67
|
+
# read & render content
|
|
68
|
+
content = render(File.read(file), attributes)
|
|
69
|
+
# write file content
|
|
70
|
+
File.write(destination, content)
|
|
71
|
+
else
|
|
72
|
+
puts "Ignore #{file}, because its not an file or directoy"
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# This is a render helper to bind hash values to a ERB template
|
|
78
|
+
def render(content, hash)
|
|
79
|
+
# create a new binding class
|
|
80
|
+
cls = Class.new do
|
|
81
|
+
hash.each do |key, value|
|
|
82
|
+
define_method key.to_sym do
|
|
83
|
+
value
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
# expose binding
|
|
87
|
+
define_method :bind do
|
|
88
|
+
binding
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
ERB.new(content).result(cls.new.bind)
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# register the subcommand to Inspec CLI registry
|
|
96
|
+
Inspec::Plugins::CLI.add_subcommand(Init::CLI, 'init', 'init TEMPLATE ...', 'Scaffolds a new project', {})
|
|
97
|
+
end
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
# Example InSpec Profile
|
|
2
|
-
|
|
3
|
-
This example shows the implementation of an InSpec profile.
|
|
1
|
+
# Example InSpec Profile
|
|
2
|
+
|
|
3
|
+
This example shows the implementation of an InSpec profile.
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# copyright: 2018, The Authors
|
|
3
|
-
|
|
4
|
-
title 'sample section'
|
|
5
|
-
|
|
6
|
-
# you can also use plain tests
|
|
7
|
-
describe file('/tmp') do
|
|
8
|
-
it { should be_directory }
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
# you add controls here
|
|
12
|
-
control 'tmp-1.0' do # A unique ID for this control
|
|
13
|
-
impact 0.7 # The criticality, if this control fails.
|
|
14
|
-
title 'Create /tmp directory' # A human-readable title
|
|
15
|
-
desc 'An optional description...'
|
|
16
|
-
describe file('/tmp') do # The actual test
|
|
17
|
-
it { should be_directory }
|
|
18
|
-
end
|
|
19
|
-
end
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# copyright: 2018, The Authors
|
|
3
|
+
|
|
4
|
+
title 'sample section'
|
|
5
|
+
|
|
6
|
+
# you can also use plain tests
|
|
7
|
+
describe file('/tmp') do
|
|
8
|
+
it { should be_directory }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# you add controls here
|
|
12
|
+
control 'tmp-1.0' do # A unique ID for this control
|
|
13
|
+
impact 0.7 # The criticality, if this control fails.
|
|
14
|
+
title 'Create /tmp directory' # A human-readable title
|
|
15
|
+
desc 'An optional description...'
|
|
16
|
+
describe file('/tmp') do # The actual test
|
|
17
|
+
it { should be_directory }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
name: <%= name %>
|
|
2
|
-
title: InSpec Profile
|
|
3
|
-
maintainer: The Authors
|
|
4
|
-
copyright: The Authors
|
|
5
|
-
copyright_email: you@example.com
|
|
6
|
-
license: Apache-2.0
|
|
7
|
-
summary: An InSpec Compliance Profile
|
|
8
|
-
version: 0.1.0
|
|
1
|
+
name: <%= name %>
|
|
2
|
+
title: InSpec Profile
|
|
3
|
+
maintainer: The Authors
|
|
4
|
+
copyright: The Authors
|
|
5
|
+
copyright_email: you@example.com
|
|
6
|
+
license: Apache-2.0
|
|
7
|
+
summary: An InSpec Compliance Profile
|
|
8
|
+
version: 0.1.0
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
# author: Christoph Hartmann
|
|
3
|
-
# author: Dominik Richter
|
|
4
|
-
|
|
5
|
-
libdir = File.dirname(__FILE__)
|
|
6
|
-
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
|
|
7
|
-
|
|
8
|
-
module Supermarket
|
|
9
|
-
autoload :API, 'inspec-supermarket/api'
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
require 'inspec-supermarket/cli'
|
|
13
|
-
require 'inspec-supermarket/target'
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Christoph Hartmann
|
|
3
|
+
# author: Dominik Richter
|
|
4
|
+
|
|
5
|
+
libdir = File.dirname(__FILE__)
|
|
6
|
+
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
|
|
7
|
+
|
|
8
|
+
module Supermarket
|
|
9
|
+
autoload :API, 'inspec-supermarket/api'
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
require 'inspec-supermarket/cli'
|
|
13
|
+
require 'inspec-supermarket/target'
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
# InSpec Extension for Chef Supermarket
|
|
2
|
-
|
|
3
|
-
To use the CLI, this InSpec add-on adds the following commands:
|
|
4
|
-
|
|
5
|
-
* `$ inspec supermarket configure` - configures the supermarket server
|
|
6
|
-
* `$ inspec supermarket search` - searches for a compliance profile on supermarket
|
|
7
|
-
* `$ inspec supermarket exec nathenharvey/tmp-compliance-profile` - extends execute to load the profile
|
|
8
|
-
|
|
9
|
-
Compliance profiles from Supermarket can be executed in two mays:
|
|
10
|
-
|
|
11
|
-
- via supermarket exec: `inspec supermarket exec nathenharvey/tmp-compliance-profile`
|
|
12
|
-
- via supermarket scheme: `inspec exec supermarket://nathenharvey/tmp-compliance-profile`
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
$ inspec supermarket
|
|
18
|
-
Commands:
|
|
19
|
-
inspec supermarket exec PROFILE # execute a Supermarket profile
|
|
20
|
-
inspec supermarket help [COMMAND] # Describe subcommands or one specific subcommand
|
|
21
|
-
inspec supermarket info PROFILE # display Supermarket profile details
|
|
22
|
-
inspec supermarket profiles # list all available profiles in Chef Supermarket
|
|
23
|
-
|
|
24
|
-
$ inspec supermarket profiles
|
|
25
|
-
Available profiles:
|
|
26
|
-
-------------------
|
|
27
|
-
* nathenharvey/tmp-compliance-profile
|
|
28
|
-
* hardening/os-hardening
|
|
29
|
-
* hardening/ssh-hardening
|
|
30
|
-
|
|
31
|
-
$ inspec supermarket info hardening/os-hardening
|
|
32
|
-
name: os-hardening
|
|
33
|
-
owner: hardening
|
|
34
|
-
url: https://github.com/dev-sec/tests-os-hardening
|
|
35
|
-
|
|
36
|
-
description: Base Linux Compliance profile, used for Security + DevOps. More Information is available at http://dev-sec.io/
|
|
37
|
-
|
|
38
|
-
$ inspec exec supermarket://hardening/os-hardening
|
|
39
|
-
........F.F.................F......FFF.....FFFF.F........FF....FFFFFFF...FF.FFFFFF.FFFFFFFFFFF.F...
|
|
40
|
-
|
|
41
|
-
...
|
|
42
|
-
|
|
43
|
-
Finished in 3.81 seconds (files took 5.69 seconds to load)
|
|
44
|
-
99 examples, 40 failures
|
|
45
|
-
```
|
|
1
|
+
# InSpec Extension for Chef Supermarket
|
|
2
|
+
|
|
3
|
+
To use the CLI, this InSpec add-on adds the following commands:
|
|
4
|
+
|
|
5
|
+
* `$ inspec supermarket configure` - configures the supermarket server
|
|
6
|
+
* `$ inspec supermarket search` - searches for a compliance profile on supermarket
|
|
7
|
+
* `$ inspec supermarket exec nathenharvey/tmp-compliance-profile` - extends execute to load the profile
|
|
8
|
+
|
|
9
|
+
Compliance profiles from Supermarket can be executed in two mays:
|
|
10
|
+
|
|
11
|
+
- via supermarket exec: `inspec supermarket exec nathenharvey/tmp-compliance-profile`
|
|
12
|
+
- via supermarket scheme: `inspec exec supermarket://nathenharvey/tmp-compliance-profile`
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
$ inspec supermarket
|
|
18
|
+
Commands:
|
|
19
|
+
inspec supermarket exec PROFILE # execute a Supermarket profile
|
|
20
|
+
inspec supermarket help [COMMAND] # Describe subcommands or one specific subcommand
|
|
21
|
+
inspec supermarket info PROFILE # display Supermarket profile details
|
|
22
|
+
inspec supermarket profiles # list all available profiles in Chef Supermarket
|
|
23
|
+
|
|
24
|
+
$ inspec supermarket profiles
|
|
25
|
+
Available profiles:
|
|
26
|
+
-------------------
|
|
27
|
+
* nathenharvey/tmp-compliance-profile
|
|
28
|
+
* hardening/os-hardening
|
|
29
|
+
* hardening/ssh-hardening
|
|
30
|
+
|
|
31
|
+
$ inspec supermarket info hardening/os-hardening
|
|
32
|
+
name: os-hardening
|
|
33
|
+
owner: hardening
|
|
34
|
+
url: https://github.com/dev-sec/tests-os-hardening
|
|
35
|
+
|
|
36
|
+
description: Base Linux Compliance profile, used for Security + DevOps. More Information is available at http://dev-sec.io/
|
|
37
|
+
|
|
38
|
+
$ inspec exec supermarket://hardening/os-hardening
|
|
39
|
+
........F.F.................F......FFF.....FFFF.F........FF....FFFFFFF...FF.FFFFFF.FFFFFFFFFFF.F...
|
|
40
|
+
|
|
41
|
+
...
|
|
42
|
+
|
|
43
|
+
Finished in 3.81 seconds (files took 5.69 seconds to load)
|
|
44
|
+
99 examples, 40 failures
|
|
45
|
+
```
|