gitextract_u53o_x4_/ ├── .coveragerc ├── .flake8 ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── frontend-build.yml │ └── testing.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── ScoutSuite/ │ ├── __init__.py │ ├── __main__.py │ ├── core/ │ │ ├── __init__.py │ │ ├── cli_parser.py │ │ ├── conditions.py │ │ ├── console.py │ │ ├── exceptions.py │ │ ├── fs.py │ │ ├── processingengine.py │ │ ├── rule.py │ │ ├── rule_definition.py │ │ ├── ruleset.py │ │ ├── server.py │ │ └── utils.py │ ├── data/ │ │ ├── aws/ │ │ │ └── ip-ranges/ │ │ │ ├── aws-in-ec2.json │ │ │ ├── aws-in-us.json │ │ │ └── aws.json │ │ ├── icmp_message_types.json │ │ └── protocols.json │ ├── output/ │ │ ├── __init__.py │ │ ├── data/ │ │ │ ├── html/ │ │ │ │ ├── conditionals/ │ │ │ │ │ ├── json_format.html │ │ │ │ │ └── sqlite_format.html │ │ │ │ ├── partials/ │ │ │ │ │ ├── about_scoutsuite.html │ │ │ │ │ ├── accordion.html │ │ │ │ │ ├── accordion_policy.html │ │ │ │ │ ├── aliyun/ │ │ │ │ │ │ ├── left_menu_for_aliyun_region.html │ │ │ │ │ │ ├── services.actiontrail.trails.html │ │ │ │ │ │ ├── services.ecs.regions.id.instances.html │ │ │ │ │ │ ├── services.kms.regions.id.keys.html │ │ │ │ │ │ ├── services.oss.buckets.html │ │ │ │ │ │ ├── services.ram.groups.html │ │ │ │ │ │ ├── services.ram.policies.html │ │ │ │ │ │ ├── services.ram.roles.html │ │ │ │ │ │ ├── services.ram.users.html │ │ │ │ │ │ ├── services.rds.regions.id.instances.html │ │ │ │ │ │ └── services.vpc.regions.id.vpcs.html │ │ │ │ │ ├── aws/ │ │ │ │ │ │ ├── left_menu_for_region.html │ │ │ │ │ │ ├── left_menu_for_vpc.html │ │ │ │ │ │ ├── services.acm.regions.id.certificates.html │ │ │ │ │ │ ├── services.awslambda.regions.id.functions.html │ │ │ │ │ │ ├── services.cloudformation.regions.id.stacks.html │ │ │ │ │ │ ├── services.cloudfront.distributions.html │ │ │ │ │ │ ├── services.cloudtrail.regions.html │ │ │ │ │ │ ├── services.cloudtrail.regions.id.trails.html │ │ │ │ │ │ ├── services.cloudwatch.regions.id.alarms.html │ │ │ │ │ │ ├── services.cloudwatch.regions.id.metric_filters.html │ │ │ │ │ │ ├── services.config.regions.html │ │ │ │ │ │ ├── services.config.regions.id.recorders.html │ │ │ │ │ │ ├── services.config.regions.id.rules.html │ │ │ │ │ │ ├── services.dynamodb.regions.id.tables.html │ │ │ │ │ │ ├── services.ec2.regions.id.regional_settings.html │ │ │ │ │ │ ├── services.ec2.regions.id.snapshots.html │ │ │ │ │ │ ├── services.ec2.regions.id.volumes.html │ │ │ │ │ │ ├── services.ec2.regions.id.vpcs.id.images.html │ │ │ │ │ │ ├── services.ec2.regions.id.vpcs.id.instances.html │ │ │ │ │ │ ├── services.ec2.regions.id.vpcs.id.security_groups.html │ │ │ │ │ │ ├── services.ec2.regions.vpcs.security_groups.resource_list.html │ │ │ │ │ │ ├── services.ec2.regions.vpcs.security_groups.rule_list.html │ │ │ │ │ │ ├── services.elasticache.regions.id.parameter_groups.html │ │ │ │ │ │ ├── services.elasticache.regions.id.security_groups.html │ │ │ │ │ │ ├── services.elasticache.regions.id.subnet_groups.html │ │ │ │ │ │ ├── services.elasticache.regions.id.vpcs.id.clusters.html │ │ │ │ │ │ ├── services.elb.regions.id.elb_policies.html │ │ │ │ │ │ ├── services.elb.regions.id.vpcs.id.elbs.html │ │ │ │ │ │ ├── services.elb.regions.id.vpcs.id.elbs.linked_resources.html │ │ │ │ │ │ ├── services.elb.regions.id.vpcs.id.elbs.listener.html │ │ │ │ │ │ ├── services.elb.regions.id.vpcsid.elbs.linked_policy.html │ │ │ │ │ │ ├── services.elbv2.regions.id.vpcs.id.elbs.html │ │ │ │ │ │ ├── services.emr.regions.id.vpcs.id.clusters.html │ │ │ │ │ │ ├── services.iam.credential_reports.html │ │ │ │ │ │ ├── services.iam.groups.html │ │ │ │ │ │ ├── services.iam.inline_policies.html │ │ │ │ │ │ ├── services.iam.managed_policies.html │ │ │ │ │ │ ├── services.iam.managed_policies_list.html │ │ │ │ │ │ ├── services.iam.roles.html │ │ │ │ │ │ ├── services.iam.users.html │ │ │ │ │ │ ├── services.kms.regions.id.keys.html │ │ │ │ │ │ ├── services.rds.regions.id.parameter_groups.html │ │ │ │ │ │ ├── services.rds.regions.id.security_groups.html │ │ │ │ │ │ ├── services.rds.regions.id.vpcs.id.instances.html │ │ │ │ │ │ ├── services.rds.regions.id.vpcs.id.snapshots.html │ │ │ │ │ │ ├── services.rds.regions.id.vpcs.id.subnet_groups.html │ │ │ │ │ │ ├── services.redshift.regions.id.parameter_groups.html │ │ │ │ │ │ ├── services.redshift.regions.id.vpcs.id.clusters.html │ │ │ │ │ │ ├── services.redshift.regions.id.vpcs.id.security_groups.html │ │ │ │ │ │ ├── services.redshift.regions.vpcs.cluster_nodes.html │ │ │ │ │ │ ├── services.route53.regions.id.domains.html │ │ │ │ │ │ ├── services.route53.regions.id.hosted_zones.html │ │ │ │ │ │ ├── services.s3.acls.html │ │ │ │ │ │ ├── services.s3.bucket_iam_policies.html │ │ │ │ │ │ ├── services.s3.buckets.html │ │ │ │ │ │ ├── services.s3.buckets.objects.html │ │ │ │ │ │ ├── services.s3.public_access_block_configuration.html │ │ │ │ │ │ ├── services.secretsmanager.regions.id.secrets.html │ │ │ │ │ │ ├── services.ses.regions.id.identities.html │ │ │ │ │ │ ├── services.sns.regions.id.topics.html │ │ │ │ │ │ ├── services.sqs.regions.id.queues.html │ │ │ │ │ │ ├── services.stackdriverlogging.sinks.html │ │ │ │ │ │ ├── services.vpc.regions.id.flow_logs.html │ │ │ │ │ │ ├── services.vpc.regions.id.peering_connections.html │ │ │ │ │ │ ├── services.vpc.regions.id.vpcs.html │ │ │ │ │ │ ├── services.vpc.regions.id.vpcs.id.network_acls.html │ │ │ │ │ │ ├── services.vpc.regions.id.vpcs.id.peering_connections.html │ │ │ │ │ │ └── services.vpc.regions.id.vpcs.id.subnets.html │ │ │ │ │ ├── azure/ │ │ │ │ │ │ ├── details_for_subscription.html │ │ │ │ │ │ ├── left_menu_for_subscription.html │ │ │ │ │ │ ├── services.aad.applications.html │ │ │ │ │ │ ├── services.aad.groups.html │ │ │ │ │ │ ├── services.aad.policies.html │ │ │ │ │ │ ├── services.aad.service_principals.html │ │ │ │ │ │ ├── services.aad.users.html │ │ │ │ │ │ ├── services.appservice.subscriptions.id.web_apps.html │ │ │ │ │ │ ├── services.keyvault.subscriptions.id.vaults.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.diagnostic_settings.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.log_alerts.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.log_profiles.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.resources_logging.html │ │ │ │ │ │ ├── services.mysqldatabase.subscriptions.id.servers.html │ │ │ │ │ │ ├── services.network.subscriptions.id.application_security_groups.html │ │ │ │ │ │ ├── services.network.subscriptions.id.network_interfaces.html │ │ │ │ │ │ ├── services.network.subscriptions.id.security_groups.html │ │ │ │ │ │ ├── services.network.subscriptions.id.virtual_networks.html │ │ │ │ │ │ ├── services.network.subscriptions.id.virtual_networks.id.subnets.html │ │ │ │ │ │ ├── services.network.subscriptions.id.watchers.html │ │ │ │ │ │ ├── services.postgresqldatabase.subscriptions.id.servers.html │ │ │ │ │ │ ├── services.rbac.subscriptions.id.custom_roles_report.html │ │ │ │ │ │ ├── services.rbac.subscriptions.id.roles.html │ │ │ │ │ │ ├── services.securitycenter.subscriptions.id.auto_provisioning_settings.html │ │ │ │ │ │ ├── services.securitycenter.subscriptions.id.compliance_results.html │ │ │ │ │ │ ├── services.securitycenter.subscriptions.id.pricings.html │ │ │ │ │ │ ├── services.securitycenter.subscriptions.id.regulatory_compliance_results.html │ │ │ │ │ │ ├── services.securitycenter.subscriptions.id.security_contacts.html │ │ │ │ │ │ ├── services.securitycenter.subscriptions.id.settings.html │ │ │ │ │ │ ├── services.sqldatabase.subscriptions.id.servers.html │ │ │ │ │ │ ├── services.storageaccounts.subscriptions.id.storage_accounts.html │ │ │ │ │ │ ├── services.virtualmachines.subscriptions.id.disks.html │ │ │ │ │ │ ├── services.virtualmachines.subscriptions.id.images.html │ │ │ │ │ │ ├── services.virtualmachines.subscriptions.id.instances.html │ │ │ │ │ │ └── services.virtualmachines.subscriptions.id.snapshots.html │ │ │ │ │ ├── count_badge.html │ │ │ │ │ ├── dashboard.html │ │ │ │ │ ├── details.html │ │ │ │ │ ├── details_for_region.html │ │ │ │ │ ├── details_for_vpc.html │ │ │ │ │ ├── do/ │ │ │ │ │ │ ├── services.database.databases.html │ │ │ │ │ │ ├── services.droplet.droplets.html │ │ │ │ │ │ ├── services.kubernetes.cluster.html │ │ │ │ │ │ ├── services.networking.domains.html │ │ │ │ │ │ ├── services.networking.firewalls.html │ │ │ │ │ │ ├── services.networking.load_balancers.html │ │ │ │ │ │ └── services.spaces.buckets.html │ │ │ │ │ ├── ec2_grants.html │ │ │ │ │ ├── filters.html │ │ │ │ │ ├── gcp/ │ │ │ │ │ │ ├── details_for_gcp_region.html │ │ │ │ │ │ ├── details_for_gcp_zone.html │ │ │ │ │ │ ├── details_for_project.html │ │ │ │ │ │ ├── left_menu_for_gcp_region.html │ │ │ │ │ │ ├── left_menu_for_gcp_zone.html │ │ │ │ │ │ ├── left_menu_for_project.html │ │ │ │ │ │ ├── services.bigquery.projects.id.datasets.html │ │ │ │ │ │ ├── services.cloudmemorystore.projects.id.redis_instances.html │ │ │ │ │ │ ├── services.cloudsql.projects.id.instances.html │ │ │ │ │ │ ├── services.cloudstorage.projects.id.buckets.html │ │ │ │ │ │ ├── services.computeengine.projects.id.firewalls.html │ │ │ │ │ │ ├── services.computeengine.projects.id.global_forwarding_rules.html │ │ │ │ │ │ ├── services.computeengine.projects.id.networks.html │ │ │ │ │ │ ├── services.computeengine.projects.id.regions.id.forwarding_rules.html │ │ │ │ │ │ ├── services.computeengine.projects.id.regions.id.subnetworks.html │ │ │ │ │ │ ├── services.computeengine.projects.id.snapshots.html │ │ │ │ │ │ ├── services.computeengine.projects.id.zones.id.instances.html │ │ │ │ │ │ ├── services.dns.projects.id.managed_zones.html │ │ │ │ │ │ ├── services.functions.projects.id.functions_v1.html │ │ │ │ │ │ ├── services.functions.projects.id.functions_v2.html │ │ │ │ │ │ ├── services.iam.projects.id.bindings.html │ │ │ │ │ │ ├── services.iam.projects.id.bindings_separation_duties.html │ │ │ │ │ │ ├── services.iam.projects.id.domains.html │ │ │ │ │ │ ├── services.iam.projects.id.groups.html │ │ │ │ │ │ ├── services.iam.projects.id.service_accounts.html │ │ │ │ │ │ ├── services.iam.projects.id.users.html │ │ │ │ │ │ ├── services.kms.projects.id.keyrings.html │ │ │ │ │ │ ├── services.kubernetesengine.clusters.html │ │ │ │ │ │ ├── services.stackdriverlogging.projects.id.logging_metrics.html │ │ │ │ │ │ ├── services.stackdriverlogging.projects.id.metrics.html │ │ │ │ │ │ ├── services.stackdriverlogging.projects.id.sinks.html │ │ │ │ │ │ ├── services.stackdrivermonitoring.projects.id.alert_policies.html │ │ │ │ │ │ ├── services.stackdrivermonitoring.projects.id.monitoring_alert_policies.html │ │ │ │ │ │ └── services.stackdrivermonitoring.projects.id.uptime_checks.html │ │ │ │ │ ├── generic_object.html │ │ │ │ │ ├── ip_grants.html │ │ │ │ │ ├── kubernetes/ │ │ │ │ │ │ ├── details_for_kubernetes_resource.html │ │ │ │ │ │ ├── details_for_project.html │ │ │ │ │ │ ├── details_for_subscription.html │ │ │ │ │ │ ├── kubernetes_code.html │ │ │ │ │ │ ├── kubernetes_container_security_context.html │ │ │ │ │ │ ├── kubernetes_data.html │ │ │ │ │ │ ├── kubernetes_object.html │ │ │ │ │ │ ├── kubernetes_pod_security_context.html │ │ │ │ │ │ ├── kubernetes_resource_containers.html │ │ │ │ │ │ ├── kubernetes_resource_host.html │ │ │ │ │ │ ├── kubernetes_resource_limits.html │ │ │ │ │ │ ├── left_menu_for_kubernetes_resource.html │ │ │ │ │ │ ├── left_menu_for_project.html │ │ │ │ │ │ ├── left_menu_for_subscription.html │ │ │ │ │ │ ├── services.eks.encryption.html │ │ │ │ │ │ ├── services.eks.logging.html │ │ │ │ │ │ ├── services.kubernetesengine.clusters.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.diagnostic_settings.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.log_alerts.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.log_profiles.html │ │ │ │ │ │ ├── services.loggingmonitoring.subscriptions.id.resources_logging.html │ │ │ │ │ │ ├── services.version.details.html │ │ │ │ │ │ └── utils.html │ │ │ │ │ ├── last_run_details.html │ │ │ │ │ ├── left_menu.html │ │ │ │ │ ├── metadata.html │ │ │ │ │ ├── modal.html │ │ │ │ │ ├── network_interface.html │ │ │ │ │ ├── oci/ │ │ │ │ │ │ ├── services.identity.groups.html │ │ │ │ │ │ ├── services.identity.policies.html │ │ │ │ │ │ ├── services.identity.users.html │ │ │ │ │ │ ├── services.kms.keyvaults.html │ │ │ │ │ │ └── services.objectstorage.buckets.html │ │ │ │ │ ├── policy.html │ │ │ │ │ ├── report_footer.html │ │ │ │ │ ├── resource_link.html │ │ │ │ │ ├── resources_details.html │ │ │ │ │ └── singles.html │ │ │ │ ├── report.html │ │ │ │ └── summaries/ │ │ │ │ ├── aliyun/ │ │ │ │ │ ├── services.ram.password_policy.html │ │ │ │ │ └── services.ram.security_policy.html │ │ │ │ ├── attack_surface.html │ │ │ │ ├── aws/ │ │ │ │ │ ├── services.ec2.external_attack_surface.html │ │ │ │ │ ├── services.elb.external_attack_surface.html │ │ │ │ │ ├── services.elbv2.external_attack_surface.html │ │ │ │ │ ├── services.iam.password_policy.html │ │ │ │ │ ├── services.iam.permissions.html │ │ │ │ │ ├── services.rds.external_attack_surface.html │ │ │ │ │ └── services.redshift.external_attack_surface.html │ │ │ │ ├── azure/ │ │ │ │ │ └── .keep │ │ │ │ ├── do/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── gcp/ │ │ │ │ │ └── .keep │ │ │ │ ├── kubernetes/ │ │ │ │ │ ├── services.kubernetes_workload.images.html │ │ │ │ │ ├── services.rbac.dangerous_grants.html │ │ │ │ │ ├── services.rbac.dodgy_subjects.html │ │ │ │ │ └── services.rbac.permissive_bindings.html │ │ │ │ ├── oci/ │ │ │ │ │ └── services.identity.password_policy.html │ │ │ │ ├── service_groups.compute.summaries.external_attack_surface.html │ │ │ │ └── service_groups.database.summaries.external_attack_surface.html │ │ │ ├── inc-scoutsuite/ │ │ │ │ ├── css/ │ │ │ │ │ ├── modal.css │ │ │ │ │ ├── scoutsuite-dark.css │ │ │ │ │ ├── scoutsuite-light.css │ │ │ │ │ └── scoutsuite.css │ │ │ │ ├── helpers.js │ │ │ │ ├── pagination.js │ │ │ │ ├── provider.js │ │ │ │ ├── scoutsuite.js │ │ │ │ ├── sqlite.js │ │ │ │ └── theme.js │ │ │ └── listall-configs/ │ │ │ └── ec2.regions.id.vpcs.id.security_groups.id.json │ │ ├── html.py │ │ ├── result_encoder.py │ │ └── utils.py │ ├── providers/ │ │ ├── __init__.py │ │ ├── aliyun/ │ │ │ ├── __init__.py │ │ │ ├── authentication_strategy.py │ │ │ ├── facade/ │ │ │ │ ├── __init__.py │ │ │ │ ├── actiontrail.py │ │ │ │ ├── base.py │ │ │ │ ├── ecs.py │ │ │ │ ├── kms.py │ │ │ │ ├── oss.py │ │ │ │ ├── ram.py │ │ │ │ ├── rds.py │ │ │ │ ├── utils.py │ │ │ │ └── vpc.py │ │ │ ├── metadata.json │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── actiontrail/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── trails.py │ │ │ │ ├── base.py │ │ │ │ ├── ecs/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── instances.py │ │ │ │ ├── kms/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── keys.py │ │ │ │ ├── oss/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── buckets.py │ │ │ │ ├── ram/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── api_keys.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── groups.py │ │ │ │ │ ├── password_policy.py │ │ │ │ │ ├── policies.py │ │ │ │ │ ├── roles.py │ │ │ │ │ ├── security_policy.py │ │ │ │ │ └── users.py │ │ │ │ ├── rds/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── instances.py │ │ │ │ ├── regions.py │ │ │ │ └── vpc/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ └── vpcs.py │ │ │ ├── rules/ │ │ │ │ ├── findings/ │ │ │ │ │ ├── actiontrail-not-configured.json │ │ │ │ │ ├── actiontrail-not-enabled.json │ │ │ │ │ ├── ecs-instance-with-deletion-protection-disabled.json │ │ │ │ │ ├── ecs-instance-with-public-ip.json │ │ │ │ │ ├── kms-no-key-rotation.json │ │ │ │ │ ├── ram-password-policy-expiration-threshold.json │ │ │ │ │ ├── ram-password-policy-minimum-length.json │ │ │ │ │ ├── ram-password-policy-no-expiration.json │ │ │ │ │ ├── ram-password-policy-no-lowercase-required.json │ │ │ │ │ ├── ram-password-policy-no-number-required.json │ │ │ │ │ ├── ram-password-policy-no-symbol-required.json │ │ │ │ │ ├── ram-password-policy-no-uppercase-required.json │ │ │ │ │ ├── ram-password-policy-reuse-enabled.json │ │ │ │ │ ├── ram-user-lacking-mfa.json │ │ │ │ │ ├── ram-user-unused-api-key.json │ │ │ │ │ ├── ram-user-unused-console-password.json │ │ │ │ │ ├── ram-user-with-multiple-api-keys.json │ │ │ │ │ └── ram-user-with-old-api-key.json │ │ │ │ └── rulesets/ │ │ │ │ ├── default.json │ │ │ │ └── filters.json │ │ │ ├── services.py │ │ │ └── utils.py │ │ ├── aws/ │ │ │ ├── __init__.py │ │ │ ├── authentication_strategy.py │ │ │ ├── facade/ │ │ │ │ ├── __init__.py │ │ │ │ ├── acm.py │ │ │ │ ├── awslambda.py │ │ │ │ ├── base.py │ │ │ │ ├── basefacade.py │ │ │ │ ├── cloudformation.py │ │ │ │ ├── cloudfront.py │ │ │ │ ├── cloudtrail.py │ │ │ │ ├── cloudwatch.py │ │ │ │ ├── codebuild.py │ │ │ │ ├── config.py │ │ │ │ ├── directconnect.py │ │ │ │ ├── dynamodb.py │ │ │ │ ├── ec2.py │ │ │ │ ├── efs.py │ │ │ │ ├── elasticache.py │ │ │ │ ├── elb.py │ │ │ │ ├── elbv2.py │ │ │ │ ├── emr.py │ │ │ │ ├── iam.py │ │ │ │ ├── kms.py │ │ │ │ ├── rds.py │ │ │ │ ├── redshift.py │ │ │ │ ├── route53.py │ │ │ │ ├── s3.py │ │ │ │ ├── secretsmanager.py │ │ │ │ ├── ses.py │ │ │ │ ├── sns.py │ │ │ │ ├── sqs.py │ │ │ │ └── utils.py │ │ │ ├── metadata.json │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── acm/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── certificates.py │ │ │ │ ├── awslambda/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── functions.py │ │ │ │ ├── base.py │ │ │ │ ├── cloudformation/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── stacks.py │ │ │ │ ├── cloudfront/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── distributions.py │ │ │ │ ├── cloudtrail/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── trails.py │ │ │ │ ├── cloudwatch/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── alarms.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── metric_filters.py │ │ │ │ ├── codebuild/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── build_projects.py │ │ │ │ ├── config/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── recorders.py │ │ │ │ │ └── rules.py │ │ │ │ ├── directconnect/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── connections.py │ │ │ │ ├── dynamodb/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── tables.py │ │ │ │ ├── ec2/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── ami.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── instances.py │ │ │ │ │ ├── networkinterfaces.py │ │ │ │ │ ├── regional_settings.py │ │ │ │ │ ├── securitygroups.py │ │ │ │ │ ├── snapshots.py │ │ │ │ │ ├── volumes.py │ │ │ │ │ └── vpcs.py │ │ │ │ ├── efs/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── filesystems.py │ │ │ │ ├── elasticache/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── cluster.py │ │ │ │ │ ├── parametergroups.py │ │ │ │ │ ├── securitygroups.py │ │ │ │ │ ├── subnetgroups.py │ │ │ │ │ └── vpcs.py │ │ │ │ ├── elb/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── load_balancers.py │ │ │ │ │ ├── policies.py │ │ │ │ │ └── vpcs.py │ │ │ │ ├── elbv2/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── listeners.py │ │ │ │ │ ├── load_balancers.py │ │ │ │ │ └── vpcs.py │ │ │ │ ├── emr/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── clusters.py │ │ │ │ │ └── vpcs.py │ │ │ │ ├── iam/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── credentialreports.py │ │ │ │ │ ├── groups.py │ │ │ │ │ ├── passwordpolicy.py │ │ │ │ │ ├── policies.py │ │ │ │ │ ├── roles.py │ │ │ │ │ └── users.py │ │ │ │ ├── kms/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── grants.py │ │ │ │ │ └── keys.py │ │ │ │ ├── rds/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── instances.py │ │ │ │ │ ├── parametergroups.py │ │ │ │ │ ├── securitygroups.py │ │ │ │ │ ├── snapshots.py │ │ │ │ │ ├── subnetgroups.py │ │ │ │ │ └── vpcs.py │ │ │ │ ├── redshift/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── cluster_parameter_groups.py │ │ │ │ │ ├── cluster_parameters.py │ │ │ │ │ ├── cluster_security_groups.py │ │ │ │ │ ├── clusters.py │ │ │ │ │ └── vpcs.py │ │ │ │ ├── regions.py │ │ │ │ ├── route53/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── domains.py │ │ │ │ │ └── hosted_zones.py │ │ │ │ ├── s3/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── buckets.py │ │ │ │ ├── secretsmanager/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── secrets.py │ │ │ │ ├── ses/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── identities.py │ │ │ │ │ └── identity_policies.py │ │ │ │ ├── sns/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── subscriptions.py │ │ │ │ │ └── topics.py │ │ │ │ ├── sqs/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── queues.py │ │ │ │ ├── vpc/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── flow_logs.py │ │ │ │ │ ├── network_acls.py │ │ │ │ │ ├── peering_connections.py │ │ │ │ │ ├── subnets.py │ │ │ │ │ └── vpcs.py │ │ │ │ └── vpcs.py │ │ │ ├── rules/ │ │ │ │ ├── conditions/ │ │ │ │ │ ├── cidr-is-all.json │ │ │ │ │ ├── ec2-security-group-in-use.json │ │ │ │ │ ├── ec2-security-group-not-used.json │ │ │ │ │ ├── instance-with-open-nacls.json │ │ │ │ │ ├── instance-with-public-ip.json │ │ │ │ │ ├── ip-not-in-private-space.json │ │ │ │ │ ├── policy-statement-any-principal.json │ │ │ │ │ ├── policy-statement-any-resource.json │ │ │ │ │ ├── policy-statement-poor-condition.json │ │ │ │ │ └── security-group-opens-all-ports.json │ │ │ │ ├── filters/ │ │ │ │ │ ├── ec2-instance-with-open-nacls.json │ │ │ │ │ ├── ec2-security-group-with-public-cidr-grant.json │ │ │ │ │ ├── iam-role-for-aws-account.json │ │ │ │ │ ├── iam-role-for-service.json │ │ │ │ │ └── s3-bucket-website-enabled.json │ │ │ │ ├── findings/ │ │ │ │ │ ├── acm-certificate-with-close-expiration-date.json │ │ │ │ │ ├── acm-certificate-with-transparency-logging-disabled.json │ │ │ │ │ ├── cloudformation-stack-with-role.json │ │ │ │ │ ├── cloudfront-distribution-cleartext-origin.json │ │ │ │ │ ├── cloudfront-distribution-insecure-origin.json │ │ │ │ │ ├── cloudfront-distribution-insufficient-viewer-security.json │ │ │ │ │ ├── cloudtrail-duplicated-global-services-logging.json │ │ │ │ │ ├── cloudtrail-no-cloudwatch-integration.json │ │ │ │ │ ├── cloudtrail-no-data-logging.json │ │ │ │ │ ├── cloudtrail-no-encryption-with-kms.json │ │ │ │ │ ├── cloudtrail-no-global-services-logging.json │ │ │ │ │ ├── cloudtrail-no-log-file-validation.json │ │ │ │ │ ├── cloudtrail-no-logging.json │ │ │ │ │ ├── cloudtrail-not-configured.json │ │ │ │ │ ├── cloudtrail-partial-data-logging.json │ │ │ │ │ ├── cloudwatch-alarm-without-actions.json │ │ │ │ │ ├── config-recorder-not-configured.json │ │ │ │ │ ├── ec2-ami-public.json │ │ │ │ │ ├── ec2-default-security-group-in-use.json │ │ │ │ │ ├── ec2-default-security-group-with-rules.json │ │ │ │ │ ├── ec2-ebs-default-encryption-disabled.json │ │ │ │ │ ├── ec2-ebs-snapshot-not-encrypted.json │ │ │ │ │ ├── ec2-ebs-snapshot-public.json │ │ │ │ │ ├── ec2-ebs-volume-not-encrypted.json │ │ │ │ │ ├── ec2-instance-in-security-group.json │ │ │ │ │ ├── ec2-instance-type.json │ │ │ │ │ ├── ec2-instance-types.json │ │ │ │ │ ├── ec2-instance-with-public-ip.json │ │ │ │ │ ├── ec2-instance-with-user-data-secrets.json │ │ │ │ │ ├── ec2-security-group-opens-all-ports-to-all.json │ │ │ │ │ ├── ec2-security-group-opens-all-ports-to-self.json │ │ │ │ │ ├── ec2-security-group-opens-all-ports.json │ │ │ │ │ ├── ec2-security-group-opens-icmp-to-all.json │ │ │ │ │ ├── ec2-security-group-opens-known-port-to-all.json │ │ │ │ │ ├── ec2-security-group-opens-plaintext-port.json │ │ │ │ │ ├── ec2-security-group-opens-port-range.json │ │ │ │ │ ├── ec2-security-group-opens-port-to-all.json │ │ │ │ │ ├── ec2-security-group-whitelists-aws-ip-from-banned-region.json │ │ │ │ │ ├── ec2-security-group-whitelists-aws.json │ │ │ │ │ ├── ec2-security-group-whitelists-non-elastic-ips.json │ │ │ │ │ ├── ec2-security-group-whitelists-unknown-aws.json │ │ │ │ │ ├── ec2-security-group-whitelists-unknown-cidrs.json │ │ │ │ │ ├── ec2-unused-security-group.json │ │ │ │ │ ├── elb-listener-allowing-cleartext.json │ │ │ │ │ ├── elb-no-access-logs.json │ │ │ │ │ ├── elb-older-ssl-policy.json │ │ │ │ │ ├── elbv2-http-request-smuggling.json │ │ │ │ │ ├── elbv2-listener-allowing-cleartext.json │ │ │ │ │ ├── elbv2-no-access-logs.json │ │ │ │ │ ├── elbv2-no-deletion-protection.json │ │ │ │ │ ├── elbv2-older-ssl-policy.json │ │ │ │ │ ├── iam-assume-role-lacks-external-id-and-mfa.json │ │ │ │ │ ├── iam-assume-role-no-mfa.json │ │ │ │ │ ├── iam-assume-role-policy-allows-all.json │ │ │ │ │ ├── iam-ec2-role-without-instances.json │ │ │ │ │ ├── iam-group-with-inline-policies.json │ │ │ │ │ ├── iam-group-with-no-users.json │ │ │ │ │ ├── iam-human-user-with-policies.json │ │ │ │ │ ├── iam-inline-policy-allows-NotActions.json │ │ │ │ │ ├── iam-inline-policy-allows-non-sts-action.json │ │ │ │ │ ├── iam-inline-policy-for-role.json │ │ │ │ │ ├── iam-lightspin-user-action-denied-for-group.json │ │ │ │ │ ├── iam-managed-policy-allows-NotActions.json │ │ │ │ │ ├── iam-managed-policy-allows-full-privileges.json │ │ │ │ │ ├── iam-managed-policy-allows-non-sts-action.json │ │ │ │ │ ├── iam-managed-policy-for-role.json │ │ │ │ │ ├── iam-managed-policy-no-attachments.json │ │ │ │ │ ├── iam-no-support-role.json │ │ │ │ │ ├── iam-password-policy-expiration-threshold.json │ │ │ │ │ ├── iam-password-policy-minimum-length.json │ │ │ │ │ ├── iam-password-policy-no-expiration.json │ │ │ │ │ ├── iam-password-policy-no-lowercase-required.json │ │ │ │ │ ├── iam-password-policy-no-number-required.json │ │ │ │ │ ├── iam-password-policy-no-symbol-required.json │ │ │ │ │ ├── iam-password-policy-no-uppercase-required.json │ │ │ │ │ ├── iam-password-policy-reuse-enabled.json │ │ │ │ │ ├── iam-role-with-inline-policies.json │ │ │ │ │ ├── iam-root-account-no-hardware-mfa.json │ │ │ │ │ ├── iam-root-account-no-mfa.json │ │ │ │ │ ├── iam-root-account-used-recently.json │ │ │ │ │ ├── iam-root-account-with-active-certs.json │ │ │ │ │ ├── iam-root-account-with-active-keys.json │ │ │ │ │ ├── iam-service-user-with-password.json │ │ │ │ │ ├── iam-unused-credentials-not-disabled.json │ │ │ │ │ ├── iam-user-no-key-rotation.json │ │ │ │ │ ├── iam-user-not-in-category-group.json │ │ │ │ │ ├── iam-user-not-in-common-group.json │ │ │ │ │ ├── iam-user-unused-access-key-initial-setup.json │ │ │ │ │ ├── iam-user-with-multiple-access-keys.json │ │ │ │ │ ├── iam-user-with-password-and-key.json │ │ │ │ │ ├── iam-user-with-policies.json │ │ │ │ │ ├── iam-user-without-mfa.json │ │ │ │ │ ├── kms-cmk-rotation-disabled.json │ │ │ │ │ ├── logs-no-alarm-aws-configuration-changes.json │ │ │ │ │ ├── logs-no-alarm-cloudtrail-configuration-changes.json │ │ │ │ │ ├── logs-no-alarm-cmk-deletion.json │ │ │ │ │ ├── logs-no-alarm-console-authentication-failures.json │ │ │ │ │ ├── logs-no-alarm-iam-policy-changes.json │ │ │ │ │ ├── logs-no-alarm-nacl-changes.json │ │ │ │ │ ├── logs-no-alarm-network-gateways-changes.json │ │ │ │ │ ├── logs-no-alarm-root-usage.json │ │ │ │ │ ├── logs-no-alarm-route-table-changes.json │ │ │ │ │ ├── logs-no-alarm-s3-policy-changes.json │ │ │ │ │ ├── logs-no-alarm-security-group-changes.json │ │ │ │ │ ├── logs-no-alarm-signin-without-mfa.json │ │ │ │ │ ├── logs-no-alarm-unauthorized-api-calls.json │ │ │ │ │ ├── logs-no-alarm-vpc-changes.json │ │ │ │ │ ├── rds-instance-backup-disabled.json │ │ │ │ │ ├── rds-instance-ca-certificate-deprecated.json │ │ │ │ │ ├── rds-instance-no-minor-upgrade.json │ │ │ │ │ ├── rds-instance-publicly-accessible.json │ │ │ │ │ ├── rds-instance-short-backup-retention-period.json │ │ │ │ │ ├── rds-instance-single-az.json │ │ │ │ │ ├── rds-instance-storage-not-encrypted.json │ │ │ │ │ ├── rds-postgres-instance-with-invalid-certificate.json │ │ │ │ │ ├── rds-security-group-allows-all.json │ │ │ │ │ ├── rds-snapshot-public.json │ │ │ │ │ ├── redshift-cluster-database-not-encrypted.json │ │ │ │ │ ├── redshift-cluster-no-version-upgrade.json │ │ │ │ │ ├── redshift-cluster-publicly-accessible.json │ │ │ │ │ ├── redshift-parameter-group-logging-disabled.json │ │ │ │ │ ├── redshift-parameter-group-ssl-not-required.json │ │ │ │ │ ├── redshift-security-group-whitelists-all.json │ │ │ │ │ ├── route53-domain-no-autorenew.json │ │ │ │ │ ├── route53-domain-no-transferlock.json │ │ │ │ │ ├── route53-domain-transferlock-not-authorized.json │ │ │ │ │ ├── s3-bucket-allowing-cleartext.json │ │ │ │ │ ├── s3-bucket-no-default-encryption.json │ │ │ │ │ ├── s3-bucket-no-logging.json │ │ │ │ │ ├── s3-bucket-no-mfa-delete.json │ │ │ │ │ ├── s3-bucket-no-versioning.json │ │ │ │ │ ├── s3-bucket-world-acl.json │ │ │ │ │ ├── s3-bucket-world-policy-arg.json │ │ │ │ │ ├── s3-bucket-world-policy-star.json │ │ │ │ │ ├── ses-identity-dkim-not-enabled.json │ │ │ │ │ ├── ses-identity-dkim-not-verified.json │ │ │ │ │ ├── ses-identity-world-policy.json │ │ │ │ │ ├── sns-topic-world-policy.json │ │ │ │ │ ├── sqs-queue-server-side-encryption-disabled.json │ │ │ │ │ ├── sqs-queue-world-policy.json │ │ │ │ │ ├── vpc-custom-network-acls-allow-all.json │ │ │ │ │ ├── vpc-default-network-acls-allow-all.json │ │ │ │ │ ├── vpc-network-acl-not-used.json │ │ │ │ │ ├── vpc-routing-tables-with-peering.json │ │ │ │ │ ├── vpc-subnet-with-bad-acls.json │ │ │ │ │ ├── vpc-subnet-with-default-acls.json │ │ │ │ │ └── vpc-subnet-without-flow-log.json │ │ │ │ └── rulesets/ │ │ │ │ ├── cis-1.2.0.json │ │ │ │ ├── default.json │ │ │ │ ├── detailed.json │ │ │ │ └── filters.json │ │ │ ├── services.py │ │ │ └── utils.py │ │ ├── azure/ │ │ │ ├── __init__.py │ │ │ ├── authentication_strategy.py │ │ │ ├── facade/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aad.py │ │ │ │ ├── appservice.py │ │ │ │ ├── base.py │ │ │ │ ├── keyvault.py │ │ │ │ ├── loggingmonitoring.py │ │ │ │ ├── mysqldatabase.py │ │ │ │ ├── network.py │ │ │ │ ├── postgresqldatabse.py │ │ │ │ ├── rbac.py │ │ │ │ ├── resourcemanagement.py │ │ │ │ ├── securitycenter.py │ │ │ │ ├── sqldatabase.py │ │ │ │ ├── storageaccounts.py │ │ │ │ └── virtualmachines.py │ │ │ ├── metadata.json │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aad/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── applications.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── groups.py │ │ │ │ │ ├── policies.py │ │ │ │ │ ├── serviceprincipals.py │ │ │ │ │ └── users.py │ │ │ │ ├── appservice/ │ │ │ │ │ ├── base.py │ │ │ │ │ └── web_apps.py │ │ │ │ ├── base.py │ │ │ │ ├── keyvault/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── vaults.py │ │ │ │ ├── loggingmonitoring/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── activity_log_alerts.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── diagnostic_resource_key_vault.py │ │ │ │ │ ├── diagnostic_settings.py │ │ │ │ │ ├── log_profiles.py │ │ │ │ │ └── resources.py │ │ │ │ ├── mysqldatabase/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── mysql_servers.py │ │ │ │ ├── network/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── application_security_groups.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── network_interfaces.py │ │ │ │ │ ├── security_groups.py │ │ │ │ │ ├── virtual_networks.py │ │ │ │ │ └── watchers.py │ │ │ │ ├── postgresqldatabase/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── configuration_connection_throttling.py │ │ │ │ │ ├── configuration_log_checkpoints.py │ │ │ │ │ ├── configuration_log_connections.py │ │ │ │ │ ├── configuration_log_disconnections.py │ │ │ │ │ ├── configuration_log_duration.py │ │ │ │ │ ├── configuration_log_retention_days.py │ │ │ │ │ ├── posgresql_firewall_rules.py │ │ │ │ │ └── postgresql_servers.py │ │ │ │ ├── rbac/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── custom_roles_report.py │ │ │ │ │ ├── role_assignments.py │ │ │ │ │ └── roles.py │ │ │ │ ├── securitycenter/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── alerts.py │ │ │ │ │ ├── auto_provisioning_settings.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── compliance_results.py │ │ │ │ │ ├── information_protection_policies.py │ │ │ │ │ ├── pricings.py │ │ │ │ │ ├── regulatory_compliance_results.py │ │ │ │ │ ├── security_contacts.py │ │ │ │ │ └── settings.py │ │ │ │ ├── sqldatabase/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── database_blob_auditing_policies.py │ │ │ │ │ ├── database_threat_detection_policies.py │ │ │ │ │ ├── databases.py │ │ │ │ │ ├── firewall_rules.py │ │ │ │ │ ├── replication_links.py │ │ │ │ │ ├── server_azure_ad_administrators.py │ │ │ │ │ ├── server_blob_auditing_policies.py │ │ │ │ │ ├── server_encryption_protectors.py │ │ │ │ │ ├── server_security_alert_policies.py │ │ │ │ │ ├── server_vulnerability_assessments.py │ │ │ │ │ ├── servers.py │ │ │ │ │ └── transparent_data_encryptions.py │ │ │ │ ├── storageaccounts/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── blob_containers.py │ │ │ │ │ ├── blob_services.py │ │ │ │ │ ├── queues.py │ │ │ │ │ └── storage_accounts.py │ │ │ │ ├── subscriptions.py │ │ │ │ └── virtualmachines/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── disks.py │ │ │ │ ├── images.py │ │ │ │ ├── instances.py │ │ │ │ └── snapshots.py │ │ │ ├── rules/ │ │ │ │ ├── conditions/ │ │ │ │ │ ├── allow-tcp.json │ │ │ │ │ ├── allow-udp.json │ │ │ │ │ └── exposed-to-the-internet.json │ │ │ │ ├── findings/ │ │ │ │ │ ├── aad-guest-users.json │ │ │ │ │ ├── aad-users-create-security-groups-disabled.json │ │ │ │ │ ├── appservice-authentication-disabled.json │ │ │ │ │ ├── appservice-client-certificates-disabled.json │ │ │ │ │ ├── appservice-ftp-deployment-enabled.json │ │ │ │ │ ├── appservice-http-2-disabled.json │ │ │ │ │ ├── appservice-http-allowed.json │ │ │ │ │ ├── appservice-managed-service-identities-disabled.json │ │ │ │ │ ├── appservice-outdated-version-dotnet.json │ │ │ │ │ ├── appservice-outdated-version-java.json │ │ │ │ │ ├── appservice-outdated-version-php.json │ │ │ │ │ ├── appservice-outdated-version-python.json │ │ │ │ │ ├── appservice-tls-v1-supported.json │ │ │ │ │ ├── appservice-webapp-using-outdated-progamming-language-version.json │ │ │ │ │ ├── keyvault-not-recoverable.json │ │ │ │ │ ├── keyvault-public-traffic-allowed.json │ │ │ │ │ ├── keyvault-rbac-authorization-disabled.json │ │ │ │ │ ├── logging-monitoring-diagnostic-setting-does-not-exist.json │ │ │ │ │ ├── logging-monitoring-log-alert-not-exist-create-policy-assignment.json │ │ │ │ │ ├── logging-monitoring-log-alert-not-exist-nsg.json │ │ │ │ │ ├── logging-monitoring-log-alert-not-exist-security-solution.json │ │ │ │ │ ├── logging-monitoring-logging-key-vault-disabled.json │ │ │ │ │ ├── logging-monitoring-profile-does-not-capture-all-activities.json │ │ │ │ │ ├── mysql-database-servers-ssl-enforcement-disabled.json │ │ │ │ │ ├── network-security-groups-rule-inbound-internet-all.json │ │ │ │ │ ├── network-security-groups-rule-inbound-service-mssql.json │ │ │ │ │ ├── network-security-groups-rule-inbound-service-udp.json │ │ │ │ │ ├── network-security-groups-rule-inbound-service.json │ │ │ │ │ ├── network-watcher-not-enabled.json │ │ │ │ │ ├── network-watcher-not-provisioned.json │ │ │ │ │ ├── postgresql-database-servers-allow-any-ip.json │ │ │ │ │ ├── postgresql-database-servers-connection-throttling-not-on.json │ │ │ │ │ ├── postgresql-database-servers-log-checkpoints-not-on.json │ │ │ │ │ ├── postgresql-database-servers-log-connections-not-on.json │ │ │ │ │ ├── postgresql-database-servers-log-disconnections-not-on.json │ │ │ │ │ ├── postgresql-database-servers-log-duration-not-on.json │ │ │ │ │ ├── postgresql-database-servers-log-retention-days-less-than-4.json │ │ │ │ │ ├── postgresql-database-servers-ssl-enforcement-disabled.json │ │ │ │ │ ├── rbac-administering-resource-locks-assigned.json │ │ │ │ │ ├── rbac-custom-subscription-owner-role-not-allowed.json │ │ │ │ │ ├── securitycenter-auto-provisioning-off.json │ │ │ │ │ ├── securitycenter-security-contacts-email-not-set.json │ │ │ │ │ ├── securitycenter-security-contacts-no-admin-email-notifications.json │ │ │ │ │ ├── securitycenter-security-contacts-no-email-notifications.json │ │ │ │ │ ├── securitycenter-security-contacts-not-set.json │ │ │ │ │ ├── securitycenter-security-contacts-phone-not-set.json │ │ │ │ │ ├── securitycenter-settings-MCAS-integration-disabled.json │ │ │ │ │ ├── securitycenter-settings-WDATP-integration-disabled.json │ │ │ │ │ ├── securitycenter-standard-tier-not-enabled.json │ │ │ │ │ ├── sqldatabase-allow-any-ip.json │ │ │ │ │ ├── sqldatabase-databases-auditing-low-retention.json │ │ │ │ │ ├── sqldatabase-databases-no-auditing.json │ │ │ │ │ ├── sqldatabase-databases-no-threat-detection.json │ │ │ │ │ ├── sqldatabase-databases-no-transparent-data-encryption.json │ │ │ │ │ ├── sqldatabase-databases-threat-detection-disabled-alerts.json │ │ │ │ │ ├── sqldatabase-databases-threat-detection-low-retention.json │ │ │ │ │ ├── sqldatabase-databases-threat-detection-send-alerts-disabled.json │ │ │ │ │ ├── sqldatabase-servers-TDE-not-encrypted-with-customer-managed-key.json │ │ │ │ │ ├── sqldatabase-servers-auditing-low-retention.json │ │ │ │ │ ├── sqldatabase-servers-no-ad-admin-configured.json │ │ │ │ │ ├── sqldatabase-servers-no-auditing.json │ │ │ │ │ ├── sqldatabase-servers-no-threat-detection.json │ │ │ │ │ ├── sqldatabase-servers-threat-detection-disabled-alerts.json │ │ │ │ │ ├── sqldatabase-servers-threat-detection-low-retention.json │ │ │ │ │ ├── sqldatabase-servers-threat-detection-send-alerts-disabled.json │ │ │ │ │ ├── sqldatabase-servers-vulnerability-assessments-disabled.json │ │ │ │ │ ├── sqldatabase-servers-vulnerability-email-notif-to-admins-owners-not-set.json │ │ │ │ │ ├── sqldatabase-servers-vulnerability-recurring-scans-disabled.json │ │ │ │ │ ├── sqldatabase-servers-vulnerability-send-scan-reports-to-not-configured.json │ │ │ │ │ ├── storageaccount-access-keys-not-rotated.json │ │ │ │ │ ├── storageaccount-account-allowing-clear-text.json │ │ │ │ │ ├── storageaccount-encrypted-not-customer-managed.json │ │ │ │ │ ├── storageaccount-public-blob-container.json │ │ │ │ │ ├── storageaccount-public-traffic-allowed.json │ │ │ │ │ ├── storageaccount-soft-delete-enabled.json │ │ │ │ │ ├── storageaccount-trusted-microsoft-services.json │ │ │ │ │ ├── virtual-machines-disk-encryption.json │ │ │ │ │ ├── virtual-machines-extensions-installed.json │ │ │ │ │ ├── virtual-machines-managed-disks.json │ │ │ │ │ ├── virtual-machines-os-data-encrypted-cmk.json │ │ │ │ │ └── virtual-machines-unattached-disks-encrypted-cmk.json │ │ │ │ └── rulesets/ │ │ │ │ ├── cis-1.0.0.json │ │ │ │ ├── cis-1.1.0.json │ │ │ │ ├── cis-1.2.0.json │ │ │ │ ├── default.json │ │ │ │ └── filters.json │ │ │ ├── services.py │ │ │ └── utils.py │ │ ├── base/ │ │ │ ├── __init__.py │ │ │ ├── authentication_strategy.py │ │ │ ├── authentication_strategy_factory.py │ │ │ ├── configs/ │ │ │ │ ├── __init__.py │ │ │ │ └── browser.py │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ └── base.py │ │ │ └── services.py │ │ ├── do/ │ │ │ ├── authentication_strategy.py │ │ │ ├── facade/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── database.py │ │ │ │ ├── droplet.py │ │ │ │ ├── kubernetes.py │ │ │ │ ├── networking.py │ │ │ │ ├── spaces.py │ │ │ │ └── utils.py │ │ │ ├── metadata.json │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── database/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── databases.py │ │ │ │ ├── droplet/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── droplets.py │ │ │ │ ├── kubernetes/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── kubernetes.py │ │ │ │ ├── networking/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── domains.py │ │ │ │ │ ├── firewalls.py │ │ │ │ │ └── load_balancers.py │ │ │ │ └── spaces/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ └── buckets.py │ │ │ ├── rules/ │ │ │ │ ├── filters/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── findings/ │ │ │ │ │ ├── database-databases-mysql-publically-exposed.json │ │ │ │ │ ├── database-databases-mysql-user-legacy-encryption.json │ │ │ │ │ ├── database-databases-postgres-connection-pools.json │ │ │ │ │ ├── database-databases-postgres-trusted-sources.json │ │ │ │ │ ├── database-databases-redis-evicition-policy.json │ │ │ │ │ ├── droplet-droplets-all-ports-exposed.json │ │ │ │ │ ├── droplet-droplets-backup-not-enabled.json │ │ │ │ │ ├── droplet-droplets-backup-not-present.json │ │ │ │ │ ├── droplet-droplets-custom-image.json │ │ │ │ │ ├── droplet-droplets-features-monitoring.json │ │ │ │ │ ├── droplet-droplets-firewall-not-attached.json │ │ │ │ │ ├── droplet-droplets-port-22-exposed.json │ │ │ │ │ ├── droplet-droplets-snapshot-not-present.json │ │ │ │ │ ├── kubernetes-kubernetes-autoupgrade-minor.json │ │ │ │ │ ├── kubernetes-kubernetes-ha-enabled.json │ │ │ │ │ ├── kubernetes-kubernetes-surge-upgrade.json │ │ │ │ │ ├── networking-domains-high-ttl.json │ │ │ │ │ ├── networking-domains-missing-dkim.json │ │ │ │ │ ├── networking-domains-missing-dmarc.json │ │ │ │ │ ├── networking-domains-missing-spf.json │ │ │ │ │ ├── networking-domains-spf-overly-permissive.json │ │ │ │ │ ├── networking-firewalls-public-ports.json │ │ │ │ │ ├── networking-firewalls-quad-zero.json │ │ │ │ │ ├── networking-load-balancer-backend-keepalive-disabled.json │ │ │ │ │ ├── networking-load-balancer-ssl-redirect-disabled.json │ │ │ │ │ ├── networking-load-balancer-without-droplet.json │ │ │ │ │ ├── spaces-buckets-cors.json │ │ │ │ │ ├── spaces-buckets-public-read.json │ │ │ │ │ └── spaces-buckets-public-write.json │ │ │ │ └── rulesets/ │ │ │ │ ├── default.json │ │ │ │ └── filters.json │ │ │ ├── services.py │ │ │ └── utils.py │ │ ├── gcp/ │ │ │ ├── __init__.py │ │ │ ├── authentication_strategy.py │ │ │ ├── facade/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── basefacade.py │ │ │ │ ├── bigquery.py │ │ │ │ ├── cloudresourcemanager.py │ │ │ │ ├── cloudsql.py │ │ │ │ ├── cloudstorage.py │ │ │ │ ├── dns.py │ │ │ │ ├── functions.py │ │ │ │ ├── gce.py │ │ │ │ ├── gke.py │ │ │ │ ├── iam.py │ │ │ │ ├── kms.py │ │ │ │ ├── memorystoreredis.py │ │ │ │ ├── stackdriverlogging.py │ │ │ │ ├── stackdrivermonitoring.py │ │ │ │ └── utils.py │ │ │ ├── metadata.json │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── bigquery/ │ │ │ │ │ ├── base.py │ │ │ │ │ └── datasets.py │ │ │ │ ├── cloudsql/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── backups.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── database_instances.py │ │ │ │ │ └── users.py │ │ │ │ ├── cloudstorage/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── buckets.py │ │ │ │ ├── dns/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── managed_zones.py │ │ │ │ ├── functions/ │ │ │ │ │ ├── base.py │ │ │ │ │ ├── functions_v1.py │ │ │ │ │ ├── functions_v2.py │ │ │ │ │ └── utils.py │ │ │ │ ├── gce/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── disks.py │ │ │ │ │ ├── firewalls.py │ │ │ │ │ ├── forwarding_rules.py │ │ │ │ │ ├── global_forwarding_rules.py │ │ │ │ │ ├── instance_disks.py │ │ │ │ │ ├── instances.py │ │ │ │ │ ├── networks.py │ │ │ │ │ ├── regions.py │ │ │ │ │ ├── snapshots.py │ │ │ │ │ ├── subnetworks.py │ │ │ │ │ └── zones.py │ │ │ │ ├── gke/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── clusters.py │ │ │ │ │ └── node_pools.py │ │ │ │ ├── iam/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── bindings_separation_duties.py │ │ │ │ │ ├── domains.py │ │ │ │ │ ├── groups.py │ │ │ │ │ ├── keys.py │ │ │ │ │ ├── member_bindings.py │ │ │ │ │ ├── service_account_bindings.py │ │ │ │ │ ├── service_accounts.py │ │ │ │ │ └── users.py │ │ │ │ ├── kms/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── keyrings.py │ │ │ │ │ ├── keys.py │ │ │ │ │ └── kms_policy.py │ │ │ │ ├── memorystore/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ └── redis_instances.py │ │ │ │ ├── projects.py │ │ │ │ ├── regions.py │ │ │ │ ├── stackdriverlogging/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── logging_metrics.py │ │ │ │ │ ├── metrics.py │ │ │ │ │ └── sinks.py │ │ │ │ ├── stackdrivermonitoring/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── alert_policies.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── monitoring_alert_policies.py │ │ │ │ │ └── uptime_checks.py │ │ │ │ └── zones.py │ │ │ ├── rules/ │ │ │ │ ├── findings/ │ │ │ │ │ ├── bigquery-dataset-member.json │ │ │ │ │ ├── bigquery-encryption-no-cmk.json │ │ │ │ │ ├── cloudsql-allows-root-login-from-any-host.json │ │ │ │ │ ├── cloudsql-instance-backups-disabled.json │ │ │ │ │ ├── cloudsql-instance-is-open-to-public-range.json │ │ │ │ │ ├── cloudsql-instance-is-open-to-the-world.json │ │ │ │ │ ├── cloudsql-instance-no-binary-logging.json │ │ │ │ │ ├── cloudsql-instance-ssl-not-required.json │ │ │ │ │ ├── cloudsql-instance-with-no-backups.json │ │ │ │ │ ├── cloudsql-instances-public-ips.json │ │ │ │ │ ├── cloudsql-mysql-instances-local-infile-on.json │ │ │ │ │ ├── cloudsql-postgresql-instances-log-checkpoints-off.json │ │ │ │ │ ├── cloudsql-postgresql-instances-log-connections-off.json │ │ │ │ │ ├── cloudsql-postgresql-instances-log-disconnections-off.json │ │ │ │ │ ├── cloudsql-postgresql-instances-log-lock-waits-off.json │ │ │ │ │ ├── cloudsql-postgresql-instances-log-min-duration-not-set-1.json │ │ │ │ │ ├── cloudsql-postgresql-instances-log-min-messages-not-set.json │ │ │ │ │ ├── cloudsql-postgresql-instances-log-temp-files-not-set-0.json │ │ │ │ │ ├── cloudsql-sqlservers-instances-contained-database-authentication-on.json │ │ │ │ │ ├── cloudsql-sqlservers-instances-cross-db-ownership-chaining-on.json │ │ │ │ │ ├── cloudstorage-bucket-member.json │ │ │ │ │ ├── cloudstorage-bucket-no-logging.json │ │ │ │ │ ├── cloudstorage-bucket-no-public-access-prevention.json │ │ │ │ │ ├── cloudstorage-bucket-no-versioning.json │ │ │ │ │ ├── cloudstorage-uniform-bucket-level-access-disabled.json │ │ │ │ │ ├── computeengine-firewall-default-rule-in-use.json │ │ │ │ │ ├── computeengine-firewall-rule-allows-all-ports.json │ │ │ │ │ ├── computeengine-firewall-rule-allows-internal-traffic.json │ │ │ │ │ ├── computeengine-firewall-rule-allows-port-range.json │ │ │ │ │ ├── computeengine-firewall-rule-allows-public-access.json │ │ │ │ │ ├── computeengine-firewall-rule-opens-all-ports-to-all.json │ │ │ │ │ ├── computeengine-firewall-rule-opens-sensitive-port-to-all.json │ │ │ │ │ ├── computeengine-instance-block-project-ssh-keys-disabled.json │ │ │ │ │ ├── computeengine-instance-connecting-serial-ports-enabled.json │ │ │ │ │ ├── computeengine-instance-default-service-account.json │ │ │ │ │ ├── computeengine-instance-disk-not-csek-encrypted.json │ │ │ │ │ ├── computeengine-instance-disk-with-no-snapshot.json │ │ │ │ │ ├── computeengine-instance-full-api-access.json │ │ │ │ │ ├── computeengine-instance-ip-forwarding-enabled.json │ │ │ │ │ ├── computeengine-instance-os-login-disabled.json │ │ │ │ │ ├── computeengine-instance-public-ip-adresses.json │ │ │ │ │ ├── computeengine-instance-shielded-vm-disabled.json │ │ │ │ │ ├── computeengine-instance-with-deletion-protection-disabled.json │ │ │ │ │ ├── computeengine-loadbalancer-forwarding-rule-forwards-sensitive-port.json │ │ │ │ │ ├── computeengine-loadbalancer-global-forwarding-rule-forwards-sensitive-port.json │ │ │ │ │ ├── computeengine-network-default-in-use.json │ │ │ │ │ ├── computeengine-network-legacy-in-use.json │ │ │ │ │ ├── computeengine-network-with-no-instances.json │ │ │ │ │ ├── computeengine-old-disk-snapshot.json │ │ │ │ │ ├── computeengine-vpc-flow-logs-disabled.json │ │ │ │ │ ├── dns-zones-dnssec-not-enabled.json │ │ │ │ │ ├── dns-zones-key-signing-key-using-rsasha1.json │ │ │ │ │ ├── dns-zones-zone-signing-key-using-rsasha1.json │ │ │ │ │ ├── functions-v1-allowing-http.json │ │ │ │ │ ├── functions-v1-environment-variables-secrets.json │ │ │ │ │ ├── functions-v1-member.json │ │ │ │ │ ├── functions-v1-public-endpoint.json │ │ │ │ │ ├── functions-v2-environment-variables-secrets.json │ │ │ │ │ ├── functions-v2-public-endpoint.json │ │ │ │ │ ├── iam-gmail-accounts-used.json │ │ │ │ │ ├── iam-lack-of-service-account-key-rotation.json │ │ │ │ │ ├── iam-primitive-role-in-use.json │ │ │ │ │ ├── iam-role-account-separation-duties-is-false.json │ │ │ │ │ ├── iam-role-assigned-to-domain.json │ │ │ │ │ ├── iam-role-assigned-to-user.json │ │ │ │ │ ├── iam-role-kms-separation-duties-is-false.json │ │ │ │ │ ├── iam-sa-has-admin-privileges.json │ │ │ │ │ ├── iam-service-account-user-member.json │ │ │ │ │ ├── iam-service-account-with-user-managed-keys.json │ │ │ │ │ ├── iam-user-has-sa-user-role.json │ │ │ │ │ ├── kms-cryptokeys-anonymously-publicly-accessible.json │ │ │ │ │ ├── kms-encryption-keys-not-rotated.json │ │ │ │ │ ├── kubernetesengine-basic-authentication-enabled.json │ │ │ │ │ ├── kubernetesengine-certificate-authentication-enabled.json │ │ │ │ │ ├── kubernetesengine-cluster-alias-ip-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-application-layer-encryption-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-binary-authorization-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-has-no-labels.json │ │ │ │ │ ├── kubernetesengine-cluster-logging-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-master-authorized-networks-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-metadata-server-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-monitoring-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-network-policy-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-pod-security-policy-config-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-private-endpoint-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-private-google-access-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-release-channel.json │ │ │ │ │ ├── kubernetesengine-cluster-shielded-nodes-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-workload-identity-disabled.json │ │ │ │ │ ├── kubernetesengine-dashboard-enabled.json │ │ │ │ │ ├── kubernetesengine-default-service-account-used.json │ │ │ │ │ ├── kubernetesengine-legacy-abac-enabled.json │ │ │ │ │ ├── kubernetesengine-legacy-metadata-endpoints-enabled.json │ │ │ │ │ ├── kubernetesengine-node-auto-repair-disabled.json │ │ │ │ │ ├── kubernetesengine-node-auto-upgrade-disabled.json │ │ │ │ │ ├── kubernetesengine-node-container-optimized-os-not-used.json │ │ │ │ │ ├── kubernetesengine-node-integrity-monitoring-disabled.json │ │ │ │ │ ├── kubernetesengine-node-secure-boot-disabled.json │ │ │ │ │ ├── kubernetesengine-private-nodes-disabled.json │ │ │ │ │ ├── kubernetesengine-scopes-not-limited.json │ │ │ │ │ ├── memorystore-redis-instance-auth-not-enabled.json │ │ │ │ │ ├── memorystore-redis-instance-ssl-not-required.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-audit-config-changes.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-cloud-storage-iam-permission-changes.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-custom-role-changes.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-project-ownership-assignment.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-sql-instance-config-changes.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-vpc-network-changes.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-vpc-network-firewall-rule-changes.json │ │ │ │ │ ├── stackdriverlogging-metric-filter-does-not-exist-vpc-network-route-changes.json │ │ │ │ │ ├── stackdriverlogging-no-export-sinks.json │ │ │ │ │ ├── stackdrivermonitoring-alerts-does-not-exist-audit-config-changes.json │ │ │ │ │ ├── stackdrivermonitoring-alerts-does-not-exist-cloud-storage-iam-permission-changes.json │ │ │ │ │ ├── stackdrivermonitoring-alerts-does-not-exist-custom-role-changes.json │ │ │ │ │ ├── stackdrivermonitoring-alerts-does-not-exist-project-ownership-assignment.json │ │ │ │ │ ├── stackdrivermonitoring-alerts-does-not-exist-sql-instance-config-changes.json │ │ │ │ │ ├── stackdrivermonitoring-alerts-does-not-exist-vpc-network-changes.json │ │ │ │ │ ├── stackdrivermonitoring-alerts-does-not-exist-vpc-network-firewall-rule-changes.json │ │ │ │ │ └── stackdrivermonitoring-alerts-does-not-exist-vpc-network-route-changes.json │ │ │ │ └── rulesets/ │ │ │ │ ├── cis-1.0.0.json │ │ │ │ ├── cis-1.1.0.json │ │ │ │ ├── default.json │ │ │ │ └── filters.json │ │ │ ├── services.py │ │ │ └── utils.py │ │ ├── kubernetes/ │ │ │ ├── __init__.py │ │ │ ├── authentication_strategy.py │ │ │ ├── facade/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── core.py │ │ │ │ ├── eks.py │ │ │ │ ├── extra.py │ │ │ │ └── version.py │ │ │ ├── metadata.json │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aks.py │ │ │ │ ├── base.py │ │ │ │ ├── eks.py │ │ │ │ ├── fake_network_policy.py │ │ │ │ ├── gke.py │ │ │ │ ├── rbac.py │ │ │ │ ├── version.py │ │ │ │ └── workload.py │ │ │ ├── rules/ │ │ │ │ ├── findings/ │ │ │ │ │ ├── configmap-unnecessary-secrets.json │ │ │ │ │ ├── cron-job-apparmor-annotation-missing.json │ │ │ │ │ ├── cron-job-automounted-service-account-token.json │ │ │ │ │ ├── cron-job-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── cron-job-container-allowing-privilege-escalation.json │ │ │ │ │ ├── cron-job-container-running-as-root-group.json │ │ │ │ │ ├── cron-job-container-running-as-root-user.json │ │ │ │ │ ├── cron-job-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── cron-job-container-with-possible-root-privileges.json │ │ │ │ │ ├── cron-job-host-ipc-true.json │ │ │ │ │ ├── cron-job-host-network-true.json │ │ │ │ │ ├── cron-job-host-pid-true.json │ │ │ │ │ ├── cron-job-kubernetes-container-manifest-hardening.json │ │ │ │ │ ├── cron-job-privileged-container-running.json │ │ │ │ │ ├── cron-job-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── cron-job-resources-without-defined-limits.json │ │ │ │ │ ├── cron-job-resources-without-defined-memory-limit.json │ │ │ │ │ ├── daemonset-apparmor-annotation-missing.json │ │ │ │ │ ├── daemonset-automounted-service-account-token.json │ │ │ │ │ ├── daemonset-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── daemonset-container-allowing-privilege-escalation.json │ │ │ │ │ ├── daemonset-container-running-as-root-group.json │ │ │ │ │ ├── daemonset-container-running-as-root-user.json │ │ │ │ │ ├── daemonset-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── daemonset-container-with-possible-root-privileges.json │ │ │ │ │ ├── daemonset-host-ipc-true.json │ │ │ │ │ ├── daemonset-host-network-true.json │ │ │ │ │ ├── daemonset-host-pid-true.json │ │ │ │ │ ├── daemonset-kubernetes-container-manifest-hardening.json │ │ │ │ │ ├── daemonset-privileged-container-running.json │ │ │ │ │ ├── daemonset-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── daemonset-resources-without-defined-limits.json │ │ │ │ │ ├── daemonset-resources-without-defined-memory-limit.json │ │ │ │ │ ├── deployment-apparmor-annotation-missing.json │ │ │ │ │ ├── deployment-automounted-service-account-token.json │ │ │ │ │ ├── deployment-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── deployment-container-allowing-privilege-escalation.json │ │ │ │ │ ├── deployment-container-running-as-root-group.json │ │ │ │ │ ├── deployment-container-running-as-root-user.json │ │ │ │ │ ├── deployment-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── deployment-container-with-possible-root-privileges.json │ │ │ │ │ ├── deployment-host-ipc-true.json │ │ │ │ │ ├── deployment-host-network-true.json │ │ │ │ │ ├── deployment-host-pid-true.json │ │ │ │ │ ├── deployment-kubernetes-container-manifest-hardening.json │ │ │ │ │ ├── deployment-privileged-container-running.json │ │ │ │ │ ├── deployment-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── deployment-resources-without-defined-limits.json │ │ │ │ │ ├── deployment-resources-without-defined-memory-limit.json │ │ │ │ │ ├── eks-insufficient-control-plane-logging.json │ │ │ │ │ ├── eks-kms-encryption-disabled.json │ │ │ │ │ ├── eks-publically-accessible-apiserver.json │ │ │ │ │ ├── job-apparmor-annotation-missing.json │ │ │ │ │ ├── job-automounted-service-account-token.json │ │ │ │ │ ├── job-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── job-container-allowing-privilege-escalation.json │ │ │ │ │ ├── job-container-running-as-root-group.json │ │ │ │ │ ├── job-container-running-as-root-user.json │ │ │ │ │ ├── job-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── job-container-with-possible-root-privileges.json │ │ │ │ │ ├── job-host-ipc-true.json │ │ │ │ │ ├── job-host-network-true.json │ │ │ │ │ ├── job-host-pid-true.json │ │ │ │ │ ├── job-kubernetes-container-manifest-hardening.json │ │ │ │ │ ├── job-privileged-container-running.json │ │ │ │ │ ├── job-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── job-resources-without-defined-limits.json │ │ │ │ │ ├── job-resources-without-defined-memory-limit.json │ │ │ │ │ ├── kubernetesengine-basic-authentication-enabled.json │ │ │ │ │ ├── kubernetesengine-certificate-authentication-enabled.json │ │ │ │ │ ├── kubernetesengine-cluster-alias-ip-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-application-layer-encryption-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-binary-authorization-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-has-no-labels.json │ │ │ │ │ ├── kubernetesengine-cluster-logging-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-master-authorized-networks-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-metadata-server-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-monitoring-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-network-policy-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-pod-security-policy-config-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-private-endpoint-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-private-google-access-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-release-channel.json │ │ │ │ │ ├── kubernetesengine-cluster-shielded-nodes-disabled.json │ │ │ │ │ ├── kubernetesengine-cluster-workload-identity-disabled.json │ │ │ │ │ ├── kubernetesengine-dashboard-enabled.json │ │ │ │ │ ├── kubernetesengine-default-service-account-used.json │ │ │ │ │ ├── kubernetesengine-legacy-abac-enabled.json │ │ │ │ │ ├── kubernetesengine-legacy-metadata-endpoints-enabled.json │ │ │ │ │ ├── kubernetesengine-node-auto-repair-disabled.json │ │ │ │ │ ├── kubernetesengine-node-auto-upgrade-disabled.json │ │ │ │ │ ├── kubernetesengine-node-container-optimized-os-not-used.json │ │ │ │ │ ├── kubernetesengine-node-integrity-monitoring-disabled.json │ │ │ │ │ ├── kubernetesengine-node-secure-boot-disabled.json │ │ │ │ │ ├── kubernetesengine-private-nodes-disabled.json │ │ │ │ │ ├── kubernetesengine-scopes-not-limited.json │ │ │ │ │ ├── logging-monitoring-diagnostic-setting-does-not-exist.json │ │ │ │ │ ├── logging-monitoring-log-alert-not-exist-create-policy-assignment.json │ │ │ │ │ ├── logging-monitoring-log-alert-not-exist-nsg.json │ │ │ │ │ ├── logging-monitoring-log-alert-not-exist-security-solution.json │ │ │ │ │ ├── logging-monitoring-logging-key-vault-disabled.json │ │ │ │ │ ├── logging-monitoring-profile-does-not-capture-all-activities.json │ │ │ │ │ ├── networkpolicy-unrestricted-cluster-network-access.json │ │ │ │ │ ├── networkpolicy-unrestricted-cluster-network-egress.json │ │ │ │ │ ├── networkpolicy-unrestricted-cluster-network-ingress.json │ │ │ │ │ ├── pod-apparmor-annotation-missing.json │ │ │ │ │ ├── pod-automounted-service-account-token.json │ │ │ │ │ ├── pod-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── pod-container-allowing-privilege-escalation.json │ │ │ │ │ ├── pod-container-running-as-root-group.json │ │ │ │ │ ├── pod-container-running-as-root-user.json │ │ │ │ │ ├── pod-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── pod-container-with-possible-root-privileges.json │ │ │ │ │ ├── pod-helm-tiller-in-use.json │ │ │ │ │ ├── pod-host-ipc-true.json │ │ │ │ │ ├── pod-host-network-true.json │ │ │ │ │ ├── pod-host-pid-true.json │ │ │ │ │ ├── pod-kubernetes-container-manifest-hardening.json │ │ │ │ │ ├── pod-privileged-container-running.json │ │ │ │ │ ├── pod-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── pod-resources-without-defined-limits.json │ │ │ │ │ ├── pod-resources-without-defined-memory-limit.json │ │ │ │ │ ├── podtemplate-apparmor-annotation-missing.json │ │ │ │ │ ├── podtemplate-automounted-service-account-token.json │ │ │ │ │ ├── podtemplate-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── podtemplate-container-allowing-privilege-escalation.json │ │ │ │ │ ├── podtemplate-container-running-as-root-group.json │ │ │ │ │ ├── podtemplate-container-running-as-root-user.json │ │ │ │ │ ├── podtemplate-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── podtemplate-container-with-possible-root-privileges.json │ │ │ │ │ ├── podtemplate-host-ipc-true.json │ │ │ │ │ ├── podtemplate-host-network-true.json │ │ │ │ │ ├── podtemplate-host-pid-true.json │ │ │ │ │ ├── podtemplate-privileged-container-running.json │ │ │ │ │ ├── podtemplate-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── podtemplate-resources-without-defined-limits.json │ │ │ │ │ ├── podtemplate-resources-without-defined-memory-limit.json │ │ │ │ │ ├── rbac-dangerous-grants.json │ │ │ │ │ ├── rbac-dodgy-subjects.json │ │ │ │ │ ├── rbac-permissive-bindings.json │ │ │ │ │ ├── replicaset-apparmor-annotation-missing.json │ │ │ │ │ ├── replicaset-automounted-service-account-token.json │ │ │ │ │ ├── replicaset-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── replicaset-container-allowing-privilege-escalation.json │ │ │ │ │ ├── replicaset-container-running-as-root-group.json │ │ │ │ │ ├── replicaset-container-running-as-root-user.json │ │ │ │ │ ├── replicaset-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── replicaset-container-with-possible-root-privileges.json │ │ │ │ │ ├── replicaset-host-ipc-true.json │ │ │ │ │ ├── replicaset-host-network-true.json │ │ │ │ │ ├── replicaset-host-pid-true.json │ │ │ │ │ ├── replicaset-kubernetes-container-manifest-hardening.json │ │ │ │ │ ├── replicaset-privileged-container-running.json │ │ │ │ │ ├── replicaset-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── replicaset-resources-without-defined-limits.json │ │ │ │ │ ├── replicaset-resources-without-defined-memory-limit.json │ │ │ │ │ ├── service-helm-tiller-in-use.json │ │ │ │ │ ├── serviceaccount-automounted-service-account-token.json │ │ │ │ │ ├── statefulset-apparmor-annotation-missing.json │ │ │ │ │ ├── statefulset-automounted-service-account-token.json │ │ │ │ │ ├── statefulset-container-ability-to-modify-root-filesystem.json │ │ │ │ │ ├── statefulset-container-allowing-privilege-escalation.json │ │ │ │ │ ├── statefulset-container-running-as-root-group.json │ │ │ │ │ ├── statefulset-container-running-as-root-user.json │ │ │ │ │ ├── statefulset-container-with-overly-permissive-capabilities.json │ │ │ │ │ ├── statefulset-container-with-possible-root-privileges.json │ │ │ │ │ ├── statefulset-host-ipc-true.json │ │ │ │ │ ├── statefulset-host-network-true.json │ │ │ │ │ ├── statefulset-host-pid-true.json │ │ │ │ │ ├── statefulset-kubernetes-container-manifest-hardening.json │ │ │ │ │ ├── statefulset-privileged-container-running.json │ │ │ │ │ ├── statefulset-resources-without-defined-cpu-limit.json │ │ │ │ │ ├── statefulset-resources-without-defined-limits.json │ │ │ │ │ └── statefulset-resources-without-defined-memory-limit.json │ │ │ │ └── rulesets/ │ │ │ │ ├── aks.json │ │ │ │ ├── default.json │ │ │ │ ├── eks.json │ │ │ │ ├── filters.json │ │ │ │ └── gke.json │ │ │ ├── services.py │ │ │ └── utils.py │ │ ├── oci/ │ │ │ ├── __init__.py │ │ │ ├── authentication_strategy.py │ │ │ ├── facade/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── identity.py │ │ │ │ ├── kms.py │ │ │ │ └── objectstorage.py │ │ │ ├── metadata.json │ │ │ ├── provider.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── identity/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── api_keys.py │ │ │ │ │ ├── authentication_policy.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── groups.py │ │ │ │ │ ├── policies.py │ │ │ │ │ └── users.py │ │ │ │ ├── kms/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── keys.py │ │ │ │ │ └── keyvaults.py │ │ │ │ └── objectstorage/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ └── buckets.py │ │ │ ├── rules/ │ │ │ │ ├── filters/ │ │ │ │ │ └── .keep │ │ │ │ ├── findings/ │ │ │ │ │ ├── identity-password-policy-minimum-length.json │ │ │ │ │ ├── identity-password-policy-no-lowercase-required.json │ │ │ │ │ ├── identity-password-policy-no-number-required.json │ │ │ │ │ ├── identity-password-policy-no-symbol-required.json │ │ │ │ │ ├── identity-password-policy-no-uppercase-required.json │ │ │ │ │ ├── identity-policy-affects-user.json │ │ │ │ │ ├── identity-user-with-multiple-api-keys.json │ │ │ │ │ ├── kms-no-key-rotation.json │ │ │ │ │ ├── objectstorage-bucket-lacking-kms-encryption.json │ │ │ │ │ └── objectstorage-public-bucket.json │ │ │ │ └── rulesets/ │ │ │ │ ├── default.json │ │ │ │ └── filters.json │ │ │ ├── services.py │ │ │ └── utils.py │ │ └── utils.py │ └── utils.py ├── dev-requirements.txt ├── docker/ │ ├── .dockerignore │ ├── Dockerfile-aws │ ├── Dockerfile-azure │ ├── Dockerfile-base │ ├── Dockerfile-gcp │ ├── README.md │ ├── bin/ │ │ ├── container-install-aws2.sh │ │ ├── container-install-azure.sh │ │ ├── container-install-gcp.sh │ │ ├── container-install-prereqs.sh │ │ ├── container-install-scoutsuite.sh │ │ └── container-set-init.sh │ ├── build.sh │ ├── config/ │ │ ├── aws.env │ │ ├── azure.env │ │ ├── base.env │ │ ├── combined.env │ │ ├── gcp.env │ │ └── ibm.env │ └── tag.sh ├── pytest.ini ├── requirements.txt ├── scout.py ├── setup.py ├── tests/ │ ├── data/ │ │ ├── invalid-file.json │ │ ├── ip-ranges-1.json │ │ ├── ip-ranges-3.json │ │ ├── policy1.json │ │ ├── protocols.json │ │ ├── resources/ │ │ │ └── dummy_resources.json │ │ ├── rule-configs/ │ │ │ ├── ec2.json │ │ │ ├── iam-password-policy.json │ │ │ └── iam-root.json │ │ ├── rule-results/ │ │ │ ├── ec2-default-security-group-in-use.json │ │ │ ├── ec2-default-security-group-with-rules.json │ │ │ ├── ec2-ebs-default-encryption-disabled.json │ │ │ ├── ec2-security-group-opens-all-ports-to-all.json │ │ │ ├── ec2-security-group-opens-all-ports-to-self.json │ │ │ ├── ec2-security-group-opens-all-ports.json │ │ │ ├── ec2-security-group-opens-known-port-to-all.json │ │ │ ├── ec2-security-group-opens-port-range.json │ │ │ ├── ec2-security-group-opens-port-to-all.json │ │ │ ├── ec2-security-group-whitelists-aws-ip-from-banned-region.json │ │ │ ├── ec2-security-group-whitelists-aws.json │ │ │ ├── iam-password-policy-expiration-threshold.json │ │ │ ├── iam-password-policy-lowercase-required.json │ │ │ ├── iam-password-policy-minimum-length.json │ │ │ ├── iam-password-policy-no-expiration.json │ │ │ ├── iam-password-policy-no-lowercase-required.json │ │ │ ├── iam-password-policy-no-number-required.json │ │ │ ├── iam-password-policy-no-symbol-required.json │ │ │ ├── iam-password-policy-no-uppercase-required.json │ │ │ └── iam-password-policy-reuse-enabled.json │ │ ├── ruleset-test.json │ │ ├── statement1.json │ │ └── test-ruleset.json │ ├── results/ │ │ └── read_ip_ranges/ │ │ ├── ip-ranges-1a.json │ │ ├── ip-ranges-1b.json │ │ ├── ip-ranges-1c.json │ │ ├── ip-ranges-3.json │ │ └── ip-ranges-a.json │ ├── test_aws_provider.py │ ├── test_azure_provider.py │ ├── test_core.py │ ├── test_main.py │ ├── test_output.py │ ├── test_resources.py │ ├── test_rules_processingengine.py │ ├── test_rules_ruleset.py │ ├── test_scoutsuite.py │ ├── test_utils.py │ ├── test_utils_conditions.py │ ├── test_utils_console.py │ └── test_utils_fs.py └── tools/ ├── README.md ├── __init__.py ├── aws_security_hub_export.py ├── format_findings.py ├── gen-tests.py ├── process_raw_response.py ├── sort-ruleset.py ├── update-aws-ips.sh └── utils.py