inspec 1.51.25 → 2.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +24 -19
- data/Gemfile +3 -1
- data/LICENSE +0 -0
- data/MAINTAINERS.md +0 -0
- data/MAINTAINERS.toml +0 -0
- data/README.md +22 -3
- data/Rakefile +117 -0
- data/docs/.gitignore +0 -0
- data/docs/README.md +0 -0
- data/docs/dsl_inspec.md +0 -0
- data/docs/dsl_resource.md +0 -0
- data/docs/glossary.md +0 -0
- data/docs/habitat.md +0 -0
- data/docs/inspec_and_friends.md +0 -0
- data/docs/matchers.md +0 -0
- data/docs/migration.md +0 -0
- data/docs/platforms.md +119 -0
- data/docs/plugin_kitchen_inspec.md +0 -0
- data/docs/profiles.md +0 -0
- data/docs/reporters.md +0 -0
- data/docs/resources/aide_conf.md.erb +6 -8
- data/docs/resources/apache.md.erb +2 -1
- data/docs/resources/apache_conf.md.erb +2 -1
- data/docs/resources/apt.md.erb +2 -1
- data/docs/resources/audit_policy.md.erb +3 -2
- data/docs/resources/auditd.md.erb +2 -1
- data/docs/resources/auditd_conf.md.erb +3 -3
- data/docs/resources/aws_cloudtrail_trail.md.erb +140 -0
- data/docs/resources/aws_cloudtrail_trails.md.erb +81 -0
- data/docs/resources/aws_cloudwatch_alarm.md.erb +86 -0
- data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +151 -0
- data/docs/resources/aws_ec2_instance.md.erb +106 -0
- data/docs/resources/aws_iam_access_key.md.erb +123 -0
- data/docs/resources/aws_iam_access_keys.md.erb +198 -0
- data/docs/resources/aws_iam_group.md.erb +46 -0
- data/docs/resources/aws_iam_groups.md.erb +43 -0
- data/docs/resources/aws_iam_password_policy.md.erb +76 -0
- data/docs/resources/aws_iam_policies.md.erb +82 -0
- data/docs/resources/aws_iam_policy.md.erb +146 -0
- data/docs/resources/aws_iam_role.md.erb +65 -0
- data/docs/resources/aws_iam_root_user.md.erb +58 -0
- data/docs/resources/aws_iam_user.md.erb +64 -0
- data/docs/resources/aws_iam_users.md.erb +90 -0
- data/docs/resources/aws_kms_keys.md.erb +84 -0
- data/docs/resources/aws_route_table.md.erb +47 -0
- data/docs/resources/aws_s3_bucket.md.erb +134 -0
- data/docs/resources/aws_security_group.md.erb +152 -0
- data/docs/resources/aws_security_groups.md.erb +92 -0
- data/docs/resources/aws_sns_topic.md.erb +63 -0
- data/docs/resources/aws_subnet.md.erb +134 -0
- data/docs/resources/aws_subnets.md.erb +126 -0
- data/docs/resources/aws_vpc.md.erb +120 -0
- data/docs/resources/aws_vpcs.md.erb +48 -0
- data/docs/resources/azure_generic_resource.md.erb +140 -0
- data/docs/resources/azure_resource_group.md.erb +284 -0
- data/docs/resources/azure_virtual_machine.md.erb +314 -0
- data/docs/resources/azure_virtual_machine_data_disk.md.erb +182 -0
- data/docs/resources/bash.md.erb +2 -1
- data/docs/resources/bond.md.erb +2 -1
- data/docs/resources/bridge.md.erb +5 -2
- data/docs/resources/bsd_service.md.erb +3 -1
- data/docs/resources/command.md.erb +2 -1
- data/docs/resources/cpan.md.erb +4 -3
- data/docs/resources/cran.md.erb +2 -1
- data/docs/resources/crontab.md.erb +2 -1
- data/docs/resources/csv.md.erb +2 -1
- data/docs/resources/dh_params.md.erb +2 -1
- data/docs/resources/directory.md.erb +4 -2
- data/docs/resources/docker.md.erb +2 -1
- data/docs/resources/docker_container.md.erb +5 -2
- data/docs/resources/docker_image.md.erb +2 -1
- data/docs/resources/docker_service.md.erb +2 -1
- data/docs/resources/elasticsearch.md.erb +12 -1
- data/docs/resources/etc_fstab.md.erb +2 -1
- data/docs/resources/etc_group.md.erb +2 -1
- data/docs/resources/etc_hosts.md.erb +4 -1
- data/docs/resources/etc_hosts_allow.md.erb +2 -1
- data/docs/resources/etc_hosts_deny.md.erb +2 -1
- data/docs/resources/file.md.erb +6 -3
- data/docs/resources/filesystem.md.erb +2 -1
- data/docs/resources/firewalld.md.erb +4 -3
- data/docs/resources/gem.md.erb +2 -1
- data/docs/resources/group.md.erb +2 -1
- data/docs/resources/grub_conf.md.erb +2 -2
- data/docs/resources/host.md.erb +2 -1
- data/docs/resources/http.md.erb +4 -7
- data/docs/resources/iis_app.md.erb +3 -1
- data/docs/resources/iis_site.md.erb +4 -1
- data/docs/resources/inetd_conf.md.erb +2 -3
- data/docs/resources/ini.md.erb +6 -2
- data/docs/resources/interface.md.erb +5 -2
- data/docs/resources/iptables.md.erb +2 -1
- data/docs/resources/json.md.erb +2 -1
- data/docs/resources/kernel_module.md.erb +2 -1
- data/docs/resources/kernel_parameter.md.erb +3 -3
- data/docs/resources/key_rsa.md.erb +5 -3
- data/docs/resources/launchd_service.md.erb +2 -1
- data/docs/resources/limits_conf.md.erb +4 -2
- data/docs/resources/login_def.md.erb +2 -2
- data/docs/resources/mount.md.erb +2 -1
- data/docs/resources/mssql_session.md.erb +2 -1
- data/docs/resources/mysql_conf.md.erb +2 -1
- data/docs/resources/mysql_session.md.erb +2 -1
- data/docs/resources/nginx.md.erb +1 -0
- data/docs/resources/nginx_conf.md.erb +2 -1
- data/docs/resources/npm.md.erb +2 -1
- data/docs/resources/ntp_conf.md.erb +2 -1
- data/docs/resources/oneget.md.erb +2 -1
- data/docs/resources/oracledb_session.md.erb +2 -1
- data/docs/resources/os.md.erb +4 -3
- data/docs/resources/os_env.md.erb +2 -1
- data/docs/resources/package.md.erb +3 -2
- data/docs/resources/packages.md.erb +2 -1
- data/docs/resources/parse_config.md.erb +2 -1
- data/docs/resources/parse_config_file.md.erb +3 -2
- data/docs/resources/passwd.md.erb +2 -1
- data/docs/resources/pip.md.erb +2 -1
- data/docs/resources/port.md.erb +2 -1
- data/docs/resources/postgres_conf.md.erb +2 -1
- data/docs/resources/postgres_hba_conf.md.erb +2 -1
- data/docs/resources/postgres_ident_conf.md.erb +2 -1
- data/docs/resources/postgres_session.md.erb +2 -1
- data/docs/resources/powershell.md.erb +2 -1
- data/docs/resources/processes.md.erb +3 -1
- data/docs/resources/rabbitmq_config.md.erb +2 -1
- data/docs/resources/registry_key.md.erb +2 -1
- data/docs/resources/runit_service.md.erb +2 -1
- data/docs/resources/security_policy.md.erb +2 -1
- data/docs/resources/service.md.erb +2 -1
- data/docs/resources/shadow.md.erb +2 -1
- data/docs/resources/ssh_config.md.erb +2 -1
- data/docs/resources/sshd_config.md.erb +2 -1
- data/docs/resources/ssl.md.erb +2 -1
- data/docs/resources/sys_info.md.erb +2 -1
- data/docs/resources/systemd_service.md.erb +2 -1
- data/docs/resources/sysv_service.md.erb +2 -1
- data/docs/resources/upstart_service.md.erb +2 -1
- data/docs/resources/user.md.erb +3 -1
- data/docs/resources/users.md.erb +2 -1
- data/docs/resources/vbscript.md.erb +2 -1
- data/docs/resources/virtualization.md.erb +2 -1
- data/docs/resources/windows_feature.md.erb +2 -1
- data/docs/resources/windows_hotfix.md.erb +2 -1
- data/docs/resources/windows_task.md.erb +49 -43
- data/docs/resources/wmi.md.erb +2 -1
- data/docs/resources/x509_certificate.md.erb +1 -0
- data/docs/resources/xinetd_conf.md.erb +2 -1
- data/docs/resources/xml.md.erb +2 -1
- data/docs/resources/yaml.md.erb +2 -1
- data/docs/resources/yum.md.erb +2 -1
- data/docs/resources/zfs_dataset.md.erb +2 -1
- data/docs/resources/zfs_pool.md.erb +2 -1
- data/docs/ruby_usage.md +0 -0
- data/docs/shared/matcher_be.md.erb +0 -0
- data/docs/shared/matcher_cmp.md.erb +0 -0
- data/docs/shared/matcher_eq.md.erb +0 -0
- data/docs/shared/matcher_include.md.erb +0 -0
- data/docs/shared/matcher_match.md.erb +0 -0
- data/docs/shell.md +0 -0
- data/examples/README.md +0 -0
- data/examples/inheritance/README.md +0 -0
- data/examples/inheritance/controls/example.rb +0 -0
- data/examples/inheritance/inspec.yml +0 -0
- data/examples/kitchen-ansible/.kitchen.yml +0 -0
- data/examples/kitchen-ansible/Gemfile +0 -0
- data/examples/kitchen-ansible/README.md +0 -0
- data/examples/kitchen-ansible/files/nginx.repo +0 -0
- data/examples/kitchen-ansible/tasks/main.yml +0 -0
- data/examples/kitchen-ansible/test/integration/default/default.yml +0 -0
- data/examples/kitchen-ansible/test/integration/default/web_spec.rb +0 -0
- data/examples/kitchen-chef/.kitchen.yml +0 -0
- data/examples/kitchen-chef/Berksfile +0 -0
- data/examples/kitchen-chef/Gemfile +0 -0
- data/examples/kitchen-chef/README.md +0 -0
- data/examples/kitchen-chef/metadata.rb +0 -0
- data/examples/kitchen-chef/recipes/default.rb +0 -0
- data/examples/kitchen-chef/recipes/nginx.rb +0 -0
- data/examples/kitchen-chef/test/integration/default/web_spec.rb +0 -0
- data/examples/kitchen-puppet/.kitchen.yml +0 -0
- data/examples/kitchen-puppet/Gemfile +0 -0
- data/examples/kitchen-puppet/Puppetfile +0 -0
- data/examples/kitchen-puppet/README.md +0 -0
- data/examples/kitchen-puppet/manifests/site.pp +0 -0
- data/examples/kitchen-puppet/metadata.json +0 -0
- data/examples/kitchen-puppet/test/integration/default/web_spec.rb +0 -0
- data/examples/meta-profile/README.md +0 -0
- data/examples/meta-profile/controls/example.rb +0 -0
- data/examples/meta-profile/inspec.yml +0 -0
- data/examples/profile-attribute.yml +0 -0
- data/examples/profile-attribute/README.md +0 -0
- data/examples/profile-attribute/controls/example.rb +0 -0
- data/examples/profile-attribute/inspec.yml +0 -0
- data/examples/profile-aws/controls/iam_password_policy_expiration.rb +8 -0
- data/examples/profile-aws/controls/iam_password_policy_max_age.rb +8 -0
- data/examples/profile-aws/controls/iam_root_user_mfa.rb +8 -0
- data/examples/profile-aws/controls/iam_users_access_key_age.rb +8 -0
- data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +8 -0
- data/examples/profile-aws/inspec.yml +11 -0
- data/examples/profile-azure/controls/azure_resource_group_example.rb +24 -0
- data/examples/profile-azure/controls/azure_vm_example.rb +29 -0
- data/examples/profile-azure/inspec.yml +11 -0
- data/examples/profile-sensitive/README.md +0 -0
- data/examples/profile-sensitive/controls/sensitive-failures.rb +0 -0
- data/examples/profile-sensitive/controls/sensitive.rb +0 -0
- data/examples/profile-sensitive/inspec.yml +0 -0
- data/examples/profile/README.md +0 -0
- data/examples/profile/controls/example.rb +0 -0
- data/examples/profile/controls/gordon.rb +0 -0
- data/examples/profile/controls/meta.rb +0 -0
- data/examples/profile/inspec.yml +0 -0
- data/examples/profile/libraries/gordon_config.rb +0 -0
- data/inspec.gemspec +1 -1
- data/lib/bundles/README.md +0 -0
- data/lib/bundles/inspec-artifact.rb +0 -0
- data/lib/bundles/inspec-artifact/README.md +0 -0
- data/lib/bundles/inspec-artifact/cli.rb +0 -0
- data/lib/bundles/inspec-compliance.rb +0 -0
- data/lib/bundles/inspec-compliance/.kitchen.yml +0 -0
- data/lib/bundles/inspec-compliance/README.md +0 -0
- data/lib/bundles/inspec-compliance/api/login.rb +0 -0
- data/lib/bundles/inspec-compliance/bootstrap.sh +0 -0
- data/lib/bundles/inspec-compliance/cli.rb +12 -35
- data/lib/bundles/inspec-compliance/configuration.rb +0 -0
- data/lib/bundles/inspec-compliance/http.rb +0 -0
- data/lib/bundles/inspec-compliance/images/cc-token.png +0 -0
- data/lib/bundles/inspec-compliance/support.rb +0 -0
- data/lib/bundles/inspec-compliance/target.rb +0 -0
- data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +0 -0
- data/lib/bundles/inspec-habitat.rb +0 -0
- data/lib/bundles/inspec-habitat/cli.rb +0 -0
- data/lib/bundles/inspec-habitat/log.rb +0 -0
- data/lib/bundles/inspec-habitat/profile.rb +0 -0
- data/lib/bundles/inspec-init.rb +0 -0
- data/lib/bundles/inspec-init/README.md +0 -0
- data/lib/bundles/inspec-init/cli.rb +0 -0
- data/lib/bundles/inspec-init/templates/profile/README.md +0 -0
- data/lib/bundles/inspec-init/templates/profile/controls/example.rb +1 -1
- data/lib/bundles/inspec-init/templates/profile/inspec.yml +0 -0
- data/lib/bundles/inspec-init/templates/profile/libraries/.gitkeep +0 -0
- data/lib/bundles/inspec-supermarket.rb +0 -0
- data/lib/bundles/inspec-supermarket/README.md +0 -0
- data/lib/bundles/inspec-supermarket/api.rb +0 -0
- data/lib/bundles/inspec-supermarket/cli.rb +11 -3
- data/lib/bundles/inspec-supermarket/target.rb +0 -0
- data/lib/fetchers/git.rb +0 -0
- data/lib/fetchers/local.rb +0 -0
- data/lib/fetchers/mock.rb +0 -0
- data/lib/fetchers/url.rb +0 -0
- data/lib/inspec.rb +0 -0
- data/lib/inspec/archive/tar.rb +0 -0
- data/lib/inspec/archive/zip.rb +0 -0
- data/lib/inspec/backend.rb +0 -0
- data/lib/inspec/base_cli.rb +2 -4
- data/lib/inspec/cached_fetcher.rb +0 -0
- data/lib/inspec/cli.rb +15 -11
- data/lib/inspec/completions/bash.sh.erb +0 -0
- data/lib/inspec/completions/fish.sh.erb +0 -0
- data/lib/inspec/completions/zsh.sh.erb +0 -0
- data/lib/inspec/control_eval_context.rb +0 -0
- data/lib/inspec/dependencies/cache.rb +0 -0
- data/lib/inspec/dependencies/dependency_set.rb +0 -0
- data/lib/inspec/dependencies/lockfile.rb +0 -0
- data/lib/inspec/dependencies/requirement.rb +0 -0
- data/lib/inspec/dependencies/resolver.rb +0 -0
- data/lib/inspec/describe.rb +0 -0
- data/lib/inspec/dsl.rb +0 -0
- data/lib/inspec/dsl_shared.rb +0 -0
- data/lib/inspec/env_printer.rb +0 -0
- data/lib/inspec/errors.rb +0 -0
- data/lib/inspec/exceptions.rb +0 -0
- data/lib/inspec/expect.rb +0 -0
- data/lib/inspec/fetcher.rb +0 -0
- data/lib/inspec/file_provider.rb +0 -0
- data/lib/inspec/formatters.rb +0 -0
- data/lib/inspec/formatters/base.rb +43 -1
- data/lib/inspec/formatters/json_rspec.rb +0 -0
- data/lib/inspec/formatters/show_progress.rb +0 -0
- data/lib/inspec/library_eval_context.rb +0 -0
- data/lib/inspec/log.rb +0 -0
- data/lib/inspec/metadata.rb +3 -9
- data/lib/inspec/method_source.rb +0 -0
- data/lib/inspec/objects.rb +0 -0
- data/lib/inspec/objects/attribute.rb +0 -0
- data/lib/inspec/objects/control.rb +0 -0
- data/lib/inspec/objects/describe.rb +0 -0
- data/lib/inspec/objects/each_loop.rb +0 -0
- data/lib/inspec/objects/list.rb +0 -0
- data/lib/inspec/objects/or_test.rb +0 -0
- data/lib/inspec/objects/ruby_helper.rb +0 -0
- data/lib/inspec/objects/tag.rb +0 -0
- data/lib/inspec/objects/test.rb +0 -0
- data/lib/inspec/objects/value.rb +0 -0
- data/lib/inspec/plugins.rb +0 -0
- data/lib/inspec/plugins/cli.rb +0 -0
- data/lib/inspec/plugins/fetcher.rb +0 -0
- data/lib/inspec/plugins/resource.rb +10 -9
- data/lib/inspec/plugins/secret.rb +0 -0
- data/lib/inspec/plugins/source_reader.rb +0 -0
- data/lib/inspec/polyfill.rb +0 -0
- data/lib/inspec/profile.rb +0 -0
- data/lib/inspec/profile_context.rb +0 -0
- data/lib/inspec/profile_vendor.rb +0 -0
- data/lib/inspec/reporters.rb +0 -0
- data/lib/inspec/reporters/base.rb +0 -0
- data/lib/inspec/reporters/cli.rb +12 -51
- data/lib/inspec/reporters/json.rb +3 -26
- data/lib/inspec/reporters/json_min.rb +0 -0
- data/lib/inspec/reporters/junit.rb +0 -0
- data/lib/inspec/require_loader.rb +0 -0
- data/lib/inspec/resource.rb +11 -1
- data/lib/inspec/rule.rb +0 -0
- data/lib/inspec/runner.rb +10 -8
- data/lib/inspec/runner_mock.rb +0 -0
- data/lib/inspec/runner_rspec.rb +18 -2
- data/lib/inspec/runtime_profile.rb +0 -0
- data/lib/inspec/schema.rb +25 -4
- data/lib/inspec/secrets.rb +0 -0
- data/lib/inspec/secrets/yaml.rb +0 -0
- data/lib/inspec/shell.rb +0 -0
- data/lib/inspec/shell_detector.rb +0 -0
- data/lib/inspec/source_reader.rb +0 -0
- data/lib/inspec/version.rb +1 -1
- data/lib/matchers/matchers.rb +1 -59
- data/lib/resource_support/aws.rb +40 -0
- data/lib/resource_support/aws/aws_backend_base.rb +12 -0
- data/lib/resource_support/aws/aws_backend_factory_mixin.rb +12 -0
- data/lib/resource_support/aws/aws_plural_resource_mixin.rb +21 -0
- data/lib/resource_support/aws/aws_resource_mixin.rb +66 -0
- data/lib/resource_support/aws/aws_singular_resource_mixin.rb +24 -0
- data/lib/resources/aide_conf.rb +1 -1
- data/lib/resources/apache.rb +1 -2
- data/lib/resources/apache_conf.rb +2 -4
- data/lib/resources/apt.rb +1 -2
- data/lib/resources/audit_policy.rb +1 -2
- data/lib/resources/auditd.rb +1 -3
- data/lib/resources/auditd_conf.rb +1 -2
- data/lib/resources/aws/aws_cloudtrail_trail.rb +77 -0
- data/lib/resources/aws/aws_cloudtrail_trails.rb +47 -0
- data/lib/resources/aws/aws_cloudwatch_alarm.rb +62 -0
- data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +100 -0
- data/lib/resources/aws/aws_ec2_instance.rb +157 -0
- data/lib/resources/aws/aws_iam_access_key.rb +106 -0
- data/lib/resources/aws/aws_iam_access_keys.rb +144 -0
- data/lib/resources/aws/aws_iam_group.rb +56 -0
- data/lib/resources/aws/aws_iam_groups.rb +45 -0
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -0
- data/lib/resources/aws/aws_iam_policies.rb +46 -0
- data/lib/resources/aws/aws_iam_policy.rb +119 -0
- data/lib/resources/aws/aws_iam_role.rb +51 -0
- data/lib/resources/aws/aws_iam_root_user.rb +60 -0
- data/lib/resources/aws/aws_iam_user.rb +111 -0
- data/lib/resources/aws/aws_iam_users.rb +96 -0
- data/lib/resources/aws/aws_kms_keys.rb +46 -0
- data/lib/resources/aws/aws_route_table.rb +61 -0
- data/lib/resources/aws/aws_s3_bucket.rb +115 -0
- data/lib/resources/aws/aws_security_group.rb +93 -0
- data/lib/resources/aws/aws_security_groups.rb +68 -0
- data/lib/resources/aws/aws_sns_topic.rb +53 -0
- data/lib/resources/aws/aws_subnet.rb +88 -0
- data/lib/resources/aws/aws_subnets.rb +53 -0
- data/lib/resources/aws/aws_vpc.rb +69 -0
- data/lib/resources/aws/aws_vpcs.rb +45 -0
- data/lib/resources/azure/azure_backend.rb +377 -0
- data/lib/resources/azure/azure_generic_resource.rb +59 -0
- data/lib/resources/azure/azure_resource_group.rb +152 -0
- data/lib/resources/azure/azure_virtual_machine.rb +264 -0
- data/lib/resources/azure/azure_virtual_machine_data_disk.rb +136 -0
- data/lib/resources/bash.rb +1 -2
- data/lib/resources/bond.rb +1 -2
- data/lib/resources/bridge.rb +1 -2
- data/lib/resources/command.rb +2 -2
- data/lib/resources/cpan.rb +1 -3
- data/lib/resources/cran.rb +1 -3
- data/lib/resources/crontab.rb +1 -0
- data/lib/resources/csv.rb +4 -2
- data/lib/resources/dh_params.rb +1 -2
- data/lib/resources/directory.rb +2 -2
- data/lib/resources/docker.rb +1 -4
- data/lib/resources/docker_container.rb +1 -4
- data/lib/resources/docker_image.rb +1 -4
- data/lib/resources/docker_object.rb +0 -0
- data/lib/resources/docker_service.rb +1 -5
- data/lib/resources/elasticsearch.rb +1 -0
- data/lib/resources/etc_fstab.rb +1 -1
- data/lib/resources/etc_group.rb +1 -2
- data/lib/resources/etc_hosts.rb +1 -1
- data/lib/resources/etc_hosts_allow_deny.rb +2 -1
- data/lib/resources/file.rb +2 -2
- data/lib/resources/filesystem.rb +1 -1
- data/lib/resources/firewalld.rb +1 -1
- data/lib/resources/gem.rb +2 -3
- data/lib/resources/groups.rb +4 -2
- data/lib/resources/grub_conf.rb +1 -1
- data/lib/resources/host.rb +2 -2
- data/lib/resources/http.rb +20 -22
- data/lib/resources/iis_app.rb +1 -0
- data/lib/resources/iis_site.rb +1 -0
- data/lib/resources/inetd_conf.rb +1 -2
- data/lib/resources/ini.rb +2 -2
- data/lib/resources/interface.rb +2 -3
- data/lib/resources/iptables.rb +1 -2
- data/lib/resources/json.rb +4 -2
- data/lib/resources/kernel_module.rb +1 -4
- data/lib/resources/kernel_parameter.rb +1 -1
- data/lib/resources/key_rsa.rb +2 -2
- data/lib/resources/limits_conf.rb +1 -2
- data/lib/resources/login_def.rb +1 -2
- data/lib/resources/mount.rb +1 -3
- data/lib/resources/mssql_session.rb +1 -3
- data/lib/resources/mysql.rb +1 -2
- data/lib/resources/mysql_conf.rb +2 -1
- data/lib/resources/mysql_session.rb +2 -3
- data/lib/resources/nginx.rb +1 -2
- data/lib/resources/nginx_conf.rb +1 -2
- data/lib/resources/npm.rb +2 -2
- data/lib/resources/ntp_conf.rb +1 -2
- data/lib/resources/oneget.rb +1 -2
- data/lib/resources/oracledb_session.rb +2 -3
- data/lib/resources/os.rb +2 -12
- data/lib/resources/os_env.rb +2 -2
- data/lib/resources/package.rb +2 -2
- data/lib/resources/packages.rb +1 -2
- data/lib/resources/parse_config.rb +2 -2
- data/lib/resources/passwd.rb +1 -23
- data/lib/resources/pip.rb +2 -2
- data/lib/resources/platform.rb +19 -22
- data/lib/resources/port.rb +2 -2
- data/lib/resources/postgres.rb +1 -3
- data/lib/resources/postgres_conf.rb +2 -3
- data/lib/resources/postgres_hba_conf.rb +1 -2
- data/lib/resources/postgres_ident_conf.rb +1 -2
- data/lib/resources/postgres_session.rb +2 -3
- data/lib/resources/powershell.rb +1 -2
- data/lib/resources/processes.rb +2 -2
- data/lib/resources/rabbitmq_conf.rb +1 -2
- data/lib/resources/registry_key.rb +1 -1
- data/lib/resources/security_policy.rb +1 -2
- data/lib/resources/service.rb +8 -3
- data/lib/resources/shadow.rb +1 -2
- data/lib/resources/ssh_conf.rb +2 -2
- data/lib/resources/ssl.rb +2 -2
- data/lib/resources/sys_info.rb +2 -0
- data/lib/resources/toml.rb +0 -0
- data/lib/resources/users.rb +4 -2
- data/lib/resources/vbscript.rb +1 -2
- data/lib/resources/virtualization.rb +1 -1
- data/lib/resources/windows_feature.rb +1 -2
- data/lib/resources/windows_hotfix.rb +1 -1
- data/lib/resources/windows_task.rb +1 -2
- data/lib/resources/wmi.rb +1 -2
- data/lib/resources/x509_certificate.rb +2 -2
- data/lib/resources/xinetd.rb +1 -2
- data/lib/resources/xml.rb +2 -1
- data/lib/resources/yaml.rb +4 -2
- data/lib/resources/yum.rb +1 -2
- data/lib/resources/zfs_dataset.rb +1 -1
- data/lib/resources/zfs_pool.rb +1 -1
- data/lib/source_readers/flat.rb +0 -0
- data/lib/source_readers/inspec.rb +0 -0
- data/lib/utils/command_wrapper.rb +0 -0
- data/lib/utils/convert.rb +0 -0
- data/lib/utils/database_helpers.rb +0 -0
- data/lib/utils/erlang_parser.rb +0 -0
- data/lib/utils/filter.rb +0 -0
- data/lib/utils/filter_array.rb +0 -0
- data/lib/utils/find_files.rb +0 -0
- data/lib/utils/hash.rb +0 -0
- data/lib/utils/json_log.rb +0 -0
- data/lib/utils/latest_version.rb +0 -0
- data/lib/utils/modulator.rb +0 -0
- data/lib/utils/nginx_parser.rb +0 -0
- data/lib/utils/object_traversal.rb +0 -0
- data/lib/utils/parser.rb +0 -0
- data/lib/utils/plugin_registry.rb +0 -0
- data/lib/utils/simpleconfig.rb +0 -12
- data/lib/utils/spdx.rb +0 -0
- data/lib/utils/spdx.txt +0 -0
- metadata +81 -6
- data/docs/resources/auditd_rules.md.erb +0 -116
- data/lib/resources/auditd_rules.rb +0 -205
File without changes
|
data/lib/inspec/cli.rb
CHANGED
@@ -162,12 +162,6 @@ class Inspec::InspecCLI < Inspec::BaseCLI
|
|
162
162
|
diagnose(o)
|
163
163
|
configure_logger(o)
|
164
164
|
|
165
|
-
# TODO: REMOVE for inspec 2.0
|
166
|
-
if o.key?('cache')
|
167
|
-
o[:vendor_cache] = o[:cache]
|
168
|
-
o[:logger].warn '[DEPRECATED] The use of `--cache` is being deprecated in InSpec 2.0. Please use `--vendor-cache` instead.'
|
169
|
-
end
|
170
|
-
|
171
165
|
runner = Inspec::Runner.new(o)
|
172
166
|
targets.each { |target| runner.add_target(target) }
|
173
167
|
|
@@ -184,17 +178,27 @@ class Inspec::InspecCLI < Inspec::BaseCLI
|
|
184
178
|
option :format, type: :string
|
185
179
|
def detect
|
186
180
|
o = opts(:detect).dup
|
187
|
-
o[:command] = '
|
181
|
+
o[:command] = 'platform.params'
|
188
182
|
(_, res) = run_command(o)
|
189
183
|
if o['format'] == 'json'
|
190
184
|
puts res.to_json
|
191
185
|
else
|
192
|
-
headline('
|
193
|
-
%w{name
|
194
|
-
|
195
|
-
|
186
|
+
headline('Platform Details')
|
187
|
+
%w{name families release arch}.each { |item|
|
188
|
+
data = res[item.to_sym]
|
189
|
+
|
190
|
+
# Format Array for better output if applicable
|
191
|
+
data = data.join(', ') if data.is_a?(Array)
|
192
|
+
|
193
|
+
# Do not output fields of data is missing ('unknown' is fine)
|
194
|
+
next if data.nil?
|
195
|
+
|
196
|
+
puts format('%-10s %s', item.to_s.capitalize + ':', mark_text(data))
|
196
197
|
}
|
197
198
|
end
|
199
|
+
rescue ArgumentError, RuntimeError, Train::UserError => e
|
200
|
+
$stderr.puts e.message
|
201
|
+
exit 1
|
198
202
|
rescue StandardError => e
|
199
203
|
pretty_handle_exception(e)
|
200
204
|
end
|
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/describe.rb
CHANGED
File without changes
|
data/lib/inspec/dsl.rb
CHANGED
File without changes
|
data/lib/inspec/dsl_shared.rb
CHANGED
File without changes
|
data/lib/inspec/env_printer.rb
CHANGED
File without changes
|
data/lib/inspec/errors.rb
CHANGED
File without changes
|
data/lib/inspec/exceptions.rb
CHANGED
File without changes
|
data/lib/inspec/expect.rb
CHANGED
File without changes
|
data/lib/inspec/fetcher.rb
CHANGED
File without changes
|
data/lib/inspec/file_provider.rb
CHANGED
File without changes
|
data/lib/inspec/formatters.rb
CHANGED
File without changes
|
@@ -23,6 +23,7 @@ module Inspec::Formatters
|
|
23
23
|
run_data[:version] = Inspec::VERSION
|
24
24
|
run_data[:statistics] = {
|
25
25
|
duration: summary.duration,
|
26
|
+
controls: statistics,
|
26
27
|
}
|
27
28
|
end
|
28
29
|
|
@@ -84,6 +85,47 @@ module Inspec::Formatters
|
|
84
85
|
|
85
86
|
private
|
86
87
|
|
88
|
+
def all_unique_controls
|
89
|
+
unique_controls = Set.new
|
90
|
+
run_data[:profiles].each do |profile|
|
91
|
+
profile[:controls].map { |control| unique_controls.add(control) }
|
92
|
+
end
|
93
|
+
|
94
|
+
unique_controls
|
95
|
+
end
|
96
|
+
|
97
|
+
def statistics
|
98
|
+
failed = 0
|
99
|
+
skipped = 0
|
100
|
+
passed = 0
|
101
|
+
|
102
|
+
all_unique_controls.each do |control|
|
103
|
+
next unless control[:results]
|
104
|
+
if control[:results].any? { |r| r[:status] == 'failed' }
|
105
|
+
failed += 1
|
106
|
+
elsif control[:results].any? { |r| r[:status] == 'skipped' }
|
107
|
+
skipped += 1
|
108
|
+
else
|
109
|
+
passed += 1
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
total = failed + passed + skipped
|
114
|
+
|
115
|
+
{
|
116
|
+
total: total,
|
117
|
+
passed: {
|
118
|
+
total: passed,
|
119
|
+
},
|
120
|
+
skipped: {
|
121
|
+
total: skipped,
|
122
|
+
},
|
123
|
+
failed: {
|
124
|
+
total: failed,
|
125
|
+
},
|
126
|
+
}
|
127
|
+
end
|
128
|
+
|
87
129
|
def exception_message(exception)
|
88
130
|
if exception.is_a?(RSpec::Core::MultipleExceptionError)
|
89
131
|
exception.all_exceptions.map(&:message).uniq.join("\n\n")
|
@@ -111,7 +153,7 @@ module Inspec::Formatters
|
|
111
153
|
status: example.execution_result.status.to_s,
|
112
154
|
code_desc: code_description,
|
113
155
|
run_time: example.execution_result.run_time,
|
114
|
-
start_time: example.execution_result.started_at.to_s,
|
156
|
+
start_time: example.execution_result.started_at.to_datetime.rfc3339.to_s,
|
115
157
|
resource_title: example.metadata[:described_class] || example.metadata[:example_group][:description],
|
116
158
|
expectation_message: format_expectation_message(example),
|
117
159
|
}
|
File without changes
|
File without changes
|
File without changes
|
data/lib/inspec/log.rb
CHANGED
File without changes
|
data/lib/inspec/metadata.rb
CHANGED
@@ -54,15 +54,9 @@ module Inspec
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def inspec_requirement
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
Gem::Requirement.create(inspec_in_supports[:inspec])
|
61
|
-
else
|
62
|
-
# using Gem::Requirement here to allow nil values which
|
63
|
-
# translate to [">= 0"]
|
64
|
-
Gem::Requirement.create(params[:inspec_version])
|
65
|
-
end
|
57
|
+
# using Gem::Requirement here to allow nil values which
|
58
|
+
# translate to [">= 0"]
|
59
|
+
Gem::Requirement.create(params[:inspec_version])
|
66
60
|
end
|
67
61
|
|
68
62
|
def supports_runtime?
|
data/lib/inspec/method_source.rb
CHANGED
File without changes
|
data/lib/inspec/objects.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/inspec/objects/list.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/lib/inspec/objects/tag.rb
CHANGED
File without changes
|
data/lib/inspec/objects/test.rb
CHANGED
File without changes
|
data/lib/inspec/objects/value.rb
CHANGED
File without changes
|
data/lib/inspec/plugins.rb
CHANGED
File without changes
|
data/lib/inspec/plugins/cli.rb
CHANGED
File without changes
|
File without changes
|
@@ -43,7 +43,7 @@ module Inspec
|
|
43
43
|
Inspec::Resource.registry
|
44
44
|
end
|
45
45
|
|
46
|
-
def __register(name, obj) # rubocop:disable Metrics/
|
46
|
+
def __register(name, obj) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
47
47
|
cl = Class.new(obj) do # rubocop:disable Metrics/BlockLength
|
48
48
|
attr_reader :resource_exception_message
|
49
49
|
|
@@ -57,7 +57,14 @@ module Inspec
|
|
57
57
|
@__resource_name__ = name
|
58
58
|
|
59
59
|
# check resource supports
|
60
|
-
|
60
|
+
supported = true
|
61
|
+
supported = check_supports unless @supports.nil?
|
62
|
+
if defined?(Train::Transports::Mock::Connection) && backend.backend.class == Train::Transports::Mock::Connection
|
63
|
+
# do not exit out for tests
|
64
|
+
elsif supported == false
|
65
|
+
# do not run resource initalize if we are unsupported
|
66
|
+
return
|
67
|
+
end
|
61
68
|
|
62
69
|
# call the resource initializer
|
63
70
|
begin
|
@@ -83,6 +90,7 @@ module Inspec
|
|
83
90
|
status = inspec.platform.supported?(@supports)
|
84
91
|
skip_msg = "Resource #{@__resource_name__.capitalize} is not supported on platform #{inspec.platform.name}/#{inspec.platform.release}."
|
85
92
|
skip_resource(skip_msg) unless status
|
93
|
+
status
|
86
94
|
end
|
87
95
|
|
88
96
|
def skip_resource(message)
|
@@ -94,13 +102,6 @@ module Inspec
|
|
94
102
|
@resource_skipped
|
95
103
|
end
|
96
104
|
|
97
|
-
def resource_skipped
|
98
|
-
warn('[DEPRECATION] Use `resource_exception_message` for the resource skipped message. This method will be removed in InSpec 2.0.')
|
99
|
-
# Returning `nil` here to match previous behavior
|
100
|
-
return nil if @resource_skipped == false
|
101
|
-
@resource_exception_message
|
102
|
-
end
|
103
|
-
|
104
105
|
def fail_resource(message)
|
105
106
|
@resource_failed = true
|
106
107
|
@resource_exception_message = message
|
File without changes
|
File without changes
|
data/lib/inspec/polyfill.rb
CHANGED
File without changes
|
data/lib/inspec/profile.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/lib/inspec/reporters.rb
CHANGED
File without changes
|
File without changes
|
data/lib/inspec/reporters/cli.rb
CHANGED
@@ -7,9 +7,6 @@ module Inspec::Reporters
|
|
7
7
|
# Most currently available Windows terminals have poor support
|
8
8
|
# for ANSI extended colors
|
9
9
|
COLORS = {
|
10
|
-
'critical' => "\033[0;1;31m",
|
11
|
-
'major' => "\033[0;1;31m",
|
12
|
-
'minor' => "\033[0;36m",
|
13
10
|
'failed' => "\033[0;1;31m",
|
14
11
|
'passed' => "\033[0;1;32m",
|
15
12
|
'skipped' => "\033[0;37m",
|
@@ -19,9 +16,6 @@ module Inspec::Reporters
|
|
19
16
|
# Most currently available Windows terminals have poor support
|
20
17
|
# for UTF-8 characters so use these boring indicators
|
21
18
|
INDICATORS = {
|
22
|
-
'critical' => '[CRIT]',
|
23
|
-
'major' => '[MAJR]',
|
24
|
-
'minor' => '[MINR]',
|
25
19
|
'failed' => '[FAIL]',
|
26
20
|
'skipped' => '[SKIP]',
|
27
21
|
'passed' => '[PASS]',
|
@@ -30,9 +24,6 @@ module Inspec::Reporters
|
|
30
24
|
else
|
31
25
|
# Extended colors for everyone else
|
32
26
|
COLORS = {
|
33
|
-
'critical' => "\033[38;5;9m",
|
34
|
-
'major' => "\033[38;5;208m",
|
35
|
-
'minor' => "\033[0;36m",
|
36
27
|
'failed' => "\033[38;5;9m",
|
37
28
|
'passed' => "\033[38;5;41m",
|
38
29
|
'skipped' => "\033[38;5;247m",
|
@@ -42,9 +33,6 @@ module Inspec::Reporters
|
|
42
33
|
# Groovy UTF-8 characters for everyone else...
|
43
34
|
# ...even though they probably only work on Mac
|
44
35
|
INDICATORS = {
|
45
|
-
'critical' => '×',
|
46
|
-
'major' => '∅',
|
47
|
-
'minor' => '⊚',
|
48
36
|
'failed' => '×',
|
49
37
|
'skipped' => '↺',
|
50
38
|
'passed' => '✔',
|
@@ -177,27 +165,15 @@ module Inspec::Reporters
|
|
177
165
|
end
|
178
166
|
|
179
167
|
def profile_summary
|
180
|
-
return @profile_summary unless @profile_summary.nil?
|
181
|
-
|
182
168
|
failed = 0
|
183
169
|
skipped = 0
|
184
170
|
passed = 0
|
185
|
-
critical = 0
|
186
|
-
major = 0
|
187
|
-
minor = 0
|
188
171
|
|
189
172
|
all_unique_controls.each do |control|
|
190
173
|
next if control[:id].start_with? '(generated from '
|
191
174
|
next unless control[:results]
|
192
175
|
if control[:results].any? { |r| r[:status] == 'failed' }
|
193
176
|
failed += 1
|
194
|
-
if control[:impact] >= 0.7
|
195
|
-
critical += 1
|
196
|
-
elsif control[:impact] >= 0.4
|
197
|
-
major += 1
|
198
|
-
else
|
199
|
-
minor += 1
|
200
|
-
end
|
201
177
|
elsif control[:results].any? { |r| r[:status] == 'skipped' }
|
202
178
|
skipped += 1
|
203
179
|
else
|
@@ -207,22 +183,15 @@ module Inspec::Reporters
|
|
207
183
|
|
208
184
|
total = failed + passed + skipped
|
209
185
|
|
210
|
-
|
186
|
+
{
|
211
187
|
'total' => total,
|
212
|
-
'failed' =>
|
213
|
-
'total' => failed,
|
214
|
-
'critical' => critical,
|
215
|
-
'major' => major,
|
216
|
-
'minor' => minor,
|
217
|
-
},
|
188
|
+
'failed' => failed,
|
218
189
|
'skipped' => skipped,
|
219
190
|
'passed' => passed,
|
220
191
|
}
|
221
192
|
end
|
222
193
|
|
223
194
|
def tests_summary
|
224
|
-
return @tests_summary unless @tests_summary.nil?
|
225
|
-
|
226
195
|
total = 0
|
227
196
|
failed = 0
|
228
197
|
skipped = 0
|
@@ -241,7 +210,12 @@ module Inspec::Reporters
|
|
241
210
|
end
|
242
211
|
end
|
243
212
|
|
244
|
-
|
213
|
+
{
|
214
|
+
'total' => total,
|
215
|
+
'failed' => failed,
|
216
|
+
'skipped' => skipped,
|
217
|
+
'passed' => passed,
|
218
|
+
}
|
245
219
|
end
|
246
220
|
|
247
221
|
def print_profile_summary
|
@@ -249,11 +223,11 @@ module Inspec::Reporters
|
|
249
223
|
return unless summary['total'] > 0
|
250
224
|
|
251
225
|
success_str = summary['passed'] == 1 ? '1 successful control' : "#{summary['passed']} successful controls"
|
252
|
-
failed_str = summary['failed']
|
226
|
+
failed_str = summary['failed'] == 1 ? '1 control failure' : "#{summary['failed']} control failures"
|
253
227
|
skipped_str = summary['skipped'] == 1 ? '1 control skipped' : "#{summary['skipped']} controls skipped"
|
254
228
|
|
255
229
|
success_color = summary['passed'] > 0 ? 'passed' : 'no_color'
|
256
|
-
failed_color = summary['failed']
|
230
|
+
failed_color = summary['failed'] > 0 ? 'failed' : 'no_color'
|
257
231
|
skipped_color = summary['skipped'] > 0 ? 'skipped' : 'no_color'
|
258
232
|
|
259
233
|
s = format(
|
@@ -301,11 +275,6 @@ module Inspec::Reporters
|
|
301
275
|
end
|
302
276
|
|
303
277
|
class Control
|
304
|
-
IMPACT_SCORES = {
|
305
|
-
critical: 0.7,
|
306
|
-
major: 0.4,
|
307
|
-
}.freeze
|
308
|
-
|
309
278
|
attr_reader :data
|
310
279
|
|
311
280
|
def initialize(control_hash)
|
@@ -358,12 +327,8 @@ module Inspec::Reporters
|
|
358
327
|
'skipped'
|
359
328
|
elsif results.nil? || results.empty? || results.all? { |r| r[:status] == 'passed' }
|
360
329
|
'passed'
|
361
|
-
elsif impact >= IMPACT_SCORES[:critical]
|
362
|
-
'critical'
|
363
|
-
elsif impact >= IMPACT_SCORES[:major]
|
364
|
-
'major'
|
365
330
|
else
|
366
|
-
'
|
331
|
+
'failed'
|
367
332
|
end
|
368
333
|
end
|
369
334
|
|
@@ -374,12 +339,8 @@ module Inspec::Reporters
|
|
374
339
|
'passed'
|
375
340
|
elsif impact.nil?
|
376
341
|
'unknown'
|
377
|
-
elsif impact >= IMPACT_SCORES[:critical]
|
378
|
-
'critical'
|
379
|
-
elsif impact >= IMPACT_SCORES[:major]
|
380
|
-
'major'
|
381
342
|
else
|
382
|
-
'
|
343
|
+
'failed'
|
383
344
|
end
|
384
345
|
end
|
385
346
|
|
@@ -12,10 +12,10 @@ module Inspec::Reporters
|
|
12
12
|
{
|
13
13
|
platform: platform,
|
14
14
|
profiles: profiles,
|
15
|
-
statistics: {
|
15
|
+
statistics: {
|
16
|
+
duration: run_data[:statistics][:duration],
|
17
|
+
},
|
16
18
|
version: run_data[:version],
|
17
|
-
controls: controls,
|
18
|
-
other_checks: run_data[:other_checks],
|
19
19
|
}
|
20
20
|
end
|
21
21
|
|
@@ -28,28 +28,6 @@ module Inspec::Reporters
|
|
28
28
|
}
|
29
29
|
end
|
30
30
|
|
31
|
-
def controls
|
32
|
-
controls = []
|
33
|
-
return controls if run_data[:controls].nil?
|
34
|
-
|
35
|
-
run_data[:controls].each do |c|
|
36
|
-
control = {
|
37
|
-
status: c[:status],
|
38
|
-
start_time: c[:start_time],
|
39
|
-
run_time: c[:run_time],
|
40
|
-
code_desc: c[:code_desc],
|
41
|
-
}
|
42
|
-
control[:resource] = c[:resource] if c[:resource]
|
43
|
-
control[:skip_message] = c[:skip_message] if c[:skip_message]
|
44
|
-
control[:message] = c[:message] if c[:message]
|
45
|
-
control[:exception] = c[:exception] if c[:exception]
|
46
|
-
control[:backtrace] = c[:backtrace] if c[:backtrace]
|
47
|
-
|
48
|
-
controls << control
|
49
|
-
end
|
50
|
-
controls
|
51
|
-
end
|
52
|
-
|
53
31
|
def profile_results(control)
|
54
32
|
results = []
|
55
33
|
return results if control[:results].nil?
|
@@ -127,7 +105,6 @@ module Inspec::Reporters
|
|
127
105
|
copyright_email: p[:copyright_email],
|
128
106
|
supports: p[:supports],
|
129
107
|
attributes: p[:attributes],
|
130
|
-
depends: p[:depends],
|
131
108
|
groups: profile_groups(p),
|
132
109
|
controls: profile_controls(p),
|
133
110
|
}
|