Controls
Browse cloud, identity, Kubernetes, and application security controls with connector coverage and query logic.
Connector filter
Showing 519 of 519 entries
[Deprecated] Ensure Auto provisioning of 'Log Analytics agent for Azure VMs' is Set to 'On'
LowEnable automatic provisioning of the monitoring agent to collect security data.
Applies to
General guidance[LEGACY] Ensure 'Infrastructure double encryption' for PostgreSQL single server is 'Enabled'
MediumAzure Database for PostgreSQL servers should be created with 'infrastructure double encryption' enabled.
Applies to
Covered asset types
[LEGACY] Ensure Microsoft Defender for DNS Is Set To 'On'
Low[**NOTE:** As of August 1, 2023, customers with an existing subscription to Defender for DNS can continue to use the service, but new subscribers will receive alerts about suspicious DNS activity as part of Defender for Servers P2.]
Applies to
Covered asset types
[LEGACY] Ensure server parameter 'log_connections' is set to 'ON' for PostgreSQL single server
MediumEnable `log_connections` on PostgreSQL Database Servers.
Applies to
Covered asset types
[LEGACY] Ensure server parameter 'log_disconnections' is set to 'ON' for PostgreSQL single server
MediumEnable `log_disconnections` on `PostgreSQL Servers`.
Applies to
Covered asset types
[Legacy] Ensure that VHDs are Encrypted
High**NOTE: This is a legacy recommendation. Managed Disks are encrypted by default and recommended for all new VM implementations.**
Applies to
Covered asset types
Apply Security Context correctly to Pods and Containers
LowA security context defines the operating system security settings (uid, gid, capabilities, SELinux role, etc..) applied to a container. When designing your containers and pods, make sure that you configure the security context for your pods, containers, and volumes. A security context is a property defined in the deployment yaml. It controls the security parameters that will be assigned to the pod/container/volume. There are two levels of security context: pod level security context, and container level security context.
Applies to
Covered asset types
Avoid the use of the 'root' account
MediumApplies to
Covered asset types
Consider external secret storage
MediumConsider the use of an external secrets storage and management system, instead of using Kubernetes Secrets directly, if you have more complex secret management needs. Ensure the solution requires authentication to access secrets, has auditing of access to and use of secrets, and encrypts secrets. Some solutions also make it easier to rotate secrets.
Applies to
Covered asset types
Do not setup access keys during initial user setup for all IAM users that have a console password
LowAWS console defaults to no check boxes selected when creating a new IAM user. When creating the IAM user access type you have to determine what type of access they require.
Applies to
Covered asset types
EC2 Instances Should Not Allow Metadata Response Hop Limit Higher Than 1
Medium### Overview
Applies to
Covered asset types
EC2 Instances Should Only Allow IMDSv2
MediumWhen enabling the Metadata Service on AWS EC2 instances, users have the option of using either Instance Metadata Service Version 1 (IMDSv1; a request/response method) or Instance Metadata Service Version 2 (IMDSv2; a session-oriented method).
Applies to
Covered asset types
ECS containers should be limited to read-only access to root filesystems
HighAmazon ECS containers should be limited to read-only access to mounted root filesystems.
Applies to
Covered asset types
ECS Fargate services should run on the latest Fargate platform version
MediumAmazon ECS Fargate services should run the latest Fargate platform version.
Applies to
Covered asset types
Eliminate use of the "root" user for administrative and daily tasks
HighWith the creation of an AWS account, a root user account is created. This root user is the most privileged user in an AWS account and has unrestricted access to and control over all resources in the account. It is highly recommended that the use of this root user to be avoided for everyday tasks.
Applies to
Covered asset types
Enable Role Based Access Control for Azure Key Vaults
MediumThe recommended way to access Key Vaults is to use the Azure Role-Based Access Control (RBAC) permissions model.
Applies to
Covered asset types
Enable Role-Based Access Control (RBAC) within Azure Kubernetes Services
LowEnsure that RBAC is enabled on all Azure Kubernetes Services Instances.
Applies to
Covered asset types
Encrypt traffic to HTTPS load balancers with TLS certificates
MediumEncrypt traffic to HTTPS load balancers using TLS certificates.
Applies to
Covered asset types
Ensure '3625 (trace flag)' database flag for all Cloud SQL Server instances is set to 'on'
LowIt is recommended to set `3625 (trace flag)` database flag for Cloud SQL SQL Server instance to `on`.
Applies to
Covered asset types
Ensure 'Additional email addresses' is configured with a security contact email
LowMicrosoft Defender for Cloud emails the subscription owners whenever a high-severity alert is triggered for their subscription. You should provide a security contact email address as an additional email address.
Applies to
Covered asset types
Ensure 'Allow Azure services on the trusted services list to access this storage account' is Enabled for Storage Account Access
MediumSome Azure services that interact with storage accounts operate from networks that can't be granted access through network rules. To help this type of service work as intended, allow the trusted Azure services to bypass the network rules. These services will then use strong authentication to access the storage account. If the Allow trusted Azure services exception is enabled, the following services are granted access to the storage account: Azure Backup, Azure Site Recovery, Azure DevTest Labs, Azure Event Grid, Azure Event Hubs, Azure Networking, Azure Monitor, and Azure SQL Data Warehouse (when registered in the subscription).
Applies to
Covered asset types
Ensure 'Allow Blob Anonymous Access' is set to 'Disabled'
MediumThe Azure Storage setting `Allow Blob Anonymous Access` (a.k.a. `allowBlobPublicAccess`) controls whether anonymous access is allowed for blob data in a storage account. When this property is set to True, it enables public read access to blob data, which can be convenient for sharing data but may carry security risks. When set to False, it disallows public access to blob data, providing a more secure storage environment.
Applies to
Covered asset types
Ensure 'Allow public access from any Azure service within Azure to this server' for PostgreSQL flexible server is disabled
MediumDisable access from Azure services to PostgreSQL Flexible Server.
Applies to
Covered asset types
Ensure 'Allow users to remember multi-factor authentication on devices they trust' is Disabled (Manual)
Medium**If you use Conditional Access, you can disable/exempt this control**
Applies to
Covered asset types
Ensure 'Auditing' is set to 'On' for SQL Servers
MediumEnable auditing on SQL Servers.
Applies to
Covered asset types
Ensure 'Auditing' Retention is greater than 90 days for SQL Servers
MediumSQL Server Audit Retention should be configured to be greater than 90 days.
Applies to
Covered asset types
Ensure 'cloudsql.enable_pgaudit' database flag for each Cloud SQL PostgreSQL instance is set to 'on' for centralized logging
LowEnsure `cloudsql.enable_pgaudit` database flag for Cloud SQL PostgreSQL instance is set to `on` to allow for centralized logging
Applies to
Covered asset types
Ensure 'Cross Tenant Replication' is not enabled
HighCross Tenant Replication in Azure allows data to be replicated across multiple Azure tenants. While this feature can be beneficial for data sharing and availability, it also poses a significant security risk if not properly managed. Unauthorized data access, data leakage, and compliance violations are potential risks. Disabling Cross Tenant Replication ensures data is not inadvertently replicated across tenant boundaries without explicit authorization.
Applies to
Covered asset types
Ensure 'Data encryption' is set to 'On' on SQL Databases
HighEnable Transparent Data Encryption on every SQL server.
Applies to
Covered asset types
Ensure 'Disk Network Access' is NOT set to 'Enable public access from all networks'
MediumVirtual Machine Disks and snapshots can be configured to allow access from different network resources.
Applies to
Covered asset types
Ensure 'Enable connecting to serial ports' is not enabled for VM Instance
HighInteracting with a serial port is often referred to as the serial console, which is similar to using a terminal window, in that input and output is entirely in text mode and there is no graphical interface or mouse support.
Applies to
Covered asset types
Ensure 'Enable Infrastructure Encryption' for Each Storage Account in Azure Storage is Set to 'enabled'
LowEnabling double encryption at the hardware level on top of the default software encryption for Storage Accounts accessing Azure storage solutions.
Applies to
Covered asset types
Ensure 'Enable key rotation reminders' is enabled for each Storage Account
MediumAccess Keys authenticate application access requests to data contained in Storage Accounts. A periodic rotation of these keys is recommended to ensure that potentially compromised keys cannot result in a long-term exploitable credential. The "Rotation Reminder" is an automatic reminder feature for a manual procedure.
Applies to
Covered asset types
Ensure 'Endpoint protection' component status is set to 'On'
LowThe Endpoint protection component enables Microsoft Defender for Endpoint (formerly 'Advanced Threat Protection' or 'ATP' or 'WDATP' - see additional info) to communicate with Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure 'Enforce SSL connection' is set to 'ENABLED' for MariaDB Database Server
HighEnable SSL connection on MariaDB Database Servers.
Applies to
Covered asset types
Ensure 'Enforce SSL connection' is set to 'ENABLED' for MySQL Database Server
HighEnable SSL connection on Standard MySQL Database servers.
Applies to
Covered asset types
Ensure 'Enforce SSL connection' is set to 'ENABLED' for PostgreSQL Database Server
HighEnable SSL connection on PostgreSQL Database Servers.
Applies to
Covered asset types
Ensure 'external scripts enabled' database flag for Cloud SQL SQL Server instance is set to 'off'
MediumIt is recommended to set `external scripts enabled` database flag for Cloud SQL SQL Server instance to `off`.
Applies to
Covered asset types
Ensure 'Firewalls & Networks' Is Limited to Use Selected Networks Instead of All Networks for Cosmos DB
MediumLimiting your Cosmos DB to only communicate on whitelisted networks lowers its attack footprint.
Applies to
Covered asset types
Ensure 'FTP State' is set to 'FTPS Only' or 'Disabled'
MediumBy default, App Services can be deployed over FTP. If FTP is required for an essential deployment workflow, FTPS should be required for FTP login for all App Services.
Applies to
Covered asset types
Ensure 'Guest invite restrictions' is set to 'Only users assigned to specific admin roles can invite guest users'
LowRestrict invitations to users with specific administrative roles only.
Applies to
Covered asset types
Ensure 'Guest users access restrictions' is set to 'Guest user access is restricted to properties and memberships of their own directory objects'
LowLimit guest user permissions.
Applies to
Covered asset types
Ensure 'HTTPS Only' is set to 'On' for App Service
HighAzure App Service allows apps to run under both HTTP and HTTPS by default. Apps can be accessed by anyone using non-secure HTTP links by default. Non-secure HTTP requests can be restricted and all HTTP requests redirected to the secure HTTPS port. It is recommended to enforce HTTPS-only traffic.
Applies to
Covered asset types
Ensure 'log_error_verbosity' database flag for Cloud SQL PostgreSQL instance is set to 'DEFAULT' or stricter
LowThe log_error_verbosity flag controls the verbosity/details of messages logged. Valid values are:
Applies to
Covered asset types
Ensure 'log_min_error_statement' database flag for Cloud SQL PostgreSQL instance is set to 'Error' or stricter
LowThe `log_min_error_statement` flag defines the minimum message severity level that are considered as an error statement. Messages for error statements are logged with the SQL statement. Valid values include `DEBUG5`, `DEBUG4`, `DEBUG3`, `DEBUG2`, `DEBUG1`, `INFO`, `NOTICE`, `WARNING`, `ERROR`, `LOG`, `FATAL`, and `PANIC`. Each severity level includes the subsequent levels mentioned above. Ensure a value of `ERROR` or stricter is set.
Applies to
Covered asset types
Ensure 'log_statement' database flag for Cloud SQL PostgreSQL instance is set appropriately
LowThe value of the `log_statement` flag determined the SQL statements that are logged. Valid values are:
Applies to
Covered asset types
Ensure 'Minimum TLS version' for storage accounts is set to 'Version 1.2'
MediumIn some cases, Azure Storage sets the minimum TLS version to be 1.0 by default. TLS 1.0 is a legacy version with known vulnerabilities. However, this minimum TLS version can be configured to be later protocols, such as TLS 1.2.
Applies to
Covered asset types
Ensure 'Multi-Factor Auth Status' is 'Enabled' for all Non-Privileged Users
MediumIf your organization pays for Microsoft Entra ID licensing (included in Microsoft 365 E3, E5, or F5, and EM&S E3 or E5 licenses) and **can** use Conditional Access, ignore the recommendations in this section and proceed to the Conditional Access section.
Applies to
Covered asset types
Ensure 'Multi-Factor Auth Status' is 'Enabled' for all Privileged Users
HighIf your organization pays for Microsoft Entra ID licensing (included in Microsoft 365 E3, E5, or F5, and EM&S E3 or E5 licenses) and **can** use Conditional Access, ignore the recommendations in this section and proceed to the Conditional Access section.
Applies to
Covered asset types
Ensure 'Notify all admins when other admins reset their password?' is set to 'Yes'
LowEnsure that all Global Administrators are notified if any other administrator resets their password.
Applies to
Covered asset types
Ensure 'Notify users on password resets?' is set to 'Yes'
LowEnsure that users are notified of their primary and secondary emails on password resets.
Applies to
Covered asset types
Ensure 'Number of days before users are asked to reconfirm their authentication information' is not set to '0'
LowEnsure that the number of days before users are asked to re-confirm their authentication information is not set to 0.
Applies to
Covered asset types
Ensure 'Number of methods required to reset' is set to '2' (Manual)
LowEnsures that two alternate forms of identification are provided before allowing a password reset.
Applies to
Covered asset types
Ensure 'Owners can manage group membership requests in My Groups' is set to 'No'
LowRestrict security group management to administrators only.
Applies to
Covered asset types
Ensure 'Public Network Access' is 'Disabled' for storage accounts
MediumDisallowing public network access for a storage account overrides the public access settings for individual containers in that storage account for Azure Resource Manager Deployment Model storage accounts. Azure Storage accounts that use the classic deployment model will be retired on August 31, 2024.
Applies to
Covered asset types
Ensure 'remote access' database flag for Cloud SQL SQL Server instance is set to 'off'
MediumIt is recommended to set `remote access` database flag for Cloud SQL SQL Server instance to `off`.
Applies to
Covered asset types
Ensure 'Remote debugging' is set to 'Off' for App Service
MediumRemote Debugging allows Azure App Service to be debugged in real-time directly on the Azure environment. When remote debugging is enabled, it opens a communication channel that could potentially be exploited by unauthorized users if not properly secured.
Applies to
Covered asset types
Ensure 'Require Multi-Factor Authentication to register or join devices with Microsoft Entra ID' is set to 'Yes'
LowJoining or registering devices to the Microsoft Entra ID should require Multi-factor authentication.
Applies to
Covered asset types
Ensure 'Restrict access to Microsoft Entra admin center' is Set to 'Yes'
LowRestrict access to the Microsoft Entra ID administration portal to administrators only.
Applies to
Covered asset types
Ensure 'Restrict non-admin users from creating tenants' is set to 'Yes'
MediumRequire administrators or appropriately delegated users to create new tenants.
Applies to
Covered asset types
Ensure 'Restrict user ability to access groups features in My Groups' is Set to 'Yes'
LowRestricts group creation to administrators with permissions only.
Applies to
Covered asset types
Ensure 'Secure transfer required' is set to 'Enabled'
HighEnable data encryption in transit.
Applies to
Covered asset types
Ensure 'skip_show_database' database flag for Cloud SQL MySQL instance is set to 'On'
LowIt is recommended to set the `skip_show_database` database flag for a Cloud SQL MySQL instance to `on`.
Applies to
Covered asset types
Ensure 'Subscription leaving Microsoft Entra ID directory' and 'Subscription entering Microsoft Entra ID directory' Is Set To 'Permit No One'
LowUsers who are set as subscription owners can make administrative changes to the subscriptions and move them into and out of Microsoft Entra ID.
Applies to
Covered asset types
Ensure 'user connections' database flag for Cloud SQL SQL Server instance is set to a non-limiting value
MediumIt is recommended to check the `user connections` for a Cloud SQL SQL Server instance to ensure that it is not artificially limiting connections.
Applies to
Covered asset types
Ensure 'User consent for applications' Is Set To 'Allow for Verified Publishers'
LowAllow users to provide consent for selected permissions when a request is coming from a verified publisher.
Applies to
Covered asset types
Ensure 'User consent for applications' is set to 'Do not allow user consent'
LowRequire administrators to provide consent for applications before use.
Applies to
Covered asset types
Ensure 'user options' database flag for Cloud SQL SQL Server instance is not configured
MediumIt is recommended that the `user options` database flag for a Cloud SQL SQL Server instance is not configured.
Applies to
Covered asset types
Ensure 'Users can create Microsoft 365 groups in Azure portals, API or PowerShell' is set to 'No'
LowRestrict Microsoft 365 group creation to administrators only.
Applies to
Covered asset types
Ensure 'Users can create security groups in Azure portals, API or PowerShell' is set to 'No'
LowRestrict security group creation to administrators only.
Applies to
Covered asset types
Ensure 'Users Can Register Applications' Is Set to 'No'
LowRequire administrators or appropriately delegated users to register third-party applications.
Applies to
Covered asset types
Ensure 'Vulnerability assessment for machines' component status is set to 'On'
LowEnable vulnerability assessment for machines on both Azure and hybrid (Arc-enabled) machines.
Applies to
Covered asset types
Ensure "Block Project-wide SSH keys" is enabled for VM instances
MediumIt is recommended to use Instance-specific SSH key(s) instead of using common/shared project-wide SSH key(s) to access Instances.
Applies to
Covered asset types
Ensure a 'Diagnostic Setting' exists for Subscription Activity Logs
LowEnable Diagnostic settings for exporting activity logs.
Applies to
Covered asset types
Ensure a Custom Bad Password List is set to 'Enforce' for your Organization
LowMicrosoft Azure provides a Global Banned Password policy for Azure administrative and normal user accounts. This is not applied to user accounts synced from an on-premise Active Directory unless Azure AD Connect is used, and you enable `EnforceCloudPasswordPolicyForPasswordSyncedUsers`. Please see the list of default values on the specifics of this policy. To further password security, it is recommended to further define a custom banned password policy. Organizational-specific terms can be added to the custom banned password list, such as the following examples:
Applies to
Covered asset types
Ensure a Custom Role is Assigned Permissions for Administering Resource Locks
LowResource locking is a powerful protection mechanism that can prevent inadvertent modification/deletion of resources within Azure subscriptions/Resource Groups and is a recommended NIST configuration.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for AWS Config configuration changes
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for detecting changes to AWS Config's configurations.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for AWS Management Console authentication failures
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for failed console authentication attempts.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for AWS Organizations changes
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for AWS Organizations changes made in the master AWS Account.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for changes to Network Access Control Lists (NACL)
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. NACLs are used as a stateless packet filter to control ingress and egress traffic for subnets within a VPC. It is recommended that a metric filter and alarm be established for changes made to NACLs.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for changes to network gateways
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Network gateways are required to send/receive traffic to a destination outside of a VPC. It is recommended that a metric filter and alarm be established for changes to network gateways.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for CloudTrail configuration changes
MediumReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for detecting changes to CloudTrail's configurations.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for disabling or scheduled deletion of customer created CMKs
MediumReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for customer created CMKs which have changed state to disabled or scheduled deletion.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for IAM policy changes
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established changes made to Identity and Access Management (IAM) policies.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for Management Console sign-in without MFA
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for console logins that are not protected by multi-factor authentication (MFA).
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for route table changes
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Routing tables are used to route network traffic between subnets and to network gateways. It is recommended that a metric filter and alarm be established for changes to route tables.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for S3 bucket policy changes
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for changes to S3 bucket policies.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for security group changes
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Security Groups are a stateful packet filter that controls ingress and egress traffic within a VPC. It is recommended that a metric filter and alarm be established changes to Security Groups.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for unauthorized API calls
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for unauthorized API calls.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for usage of "root" account
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is recommended that a metric filter and alarm be established for root login attempts.
Applies to
Covered asset types
Ensure a log metric filter and alarm exist for VPC changes
LowReal-time monitoring of API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. It is possible to have more than 1 VPC within an account, in addition it is also possible to create a peer connection between 2 VPCs enabling network traffic to route between VPCs. It is recommended that a metric filter and alarm be established for changes made to VPCs.
Applies to
Covered asset types
Ensure A Multi-factor Authentication Policy Exists for Administrative Groups
MediumDesignated users will be prompted to use their multi-factor authentication (MFA) process upon login.
Applies to
Covered asset types
Ensure A Multi-factor Authentication Policy Exists for All Users
LowDesignated users will be prompted to use their multi-factor authentication (MFA) process upon login.
Applies to
Covered asset types
Ensure a support role has been created to manage incidents with AWS Support
LowAWS provides a support center that can be used for incident notification and response, as well as technical support and customer services. Create an IAM Role to allow authorized users to manage incidents with AWS Support.
Applies to
Covered asset types
Ensure access keys are rotated every 90 days or less
MediumAccess keys consist of an access key ID and secret access key, which are used to sign programmatic requests that you make to AWS. AWS users need their own access keys to make programmatic calls to AWS from the AWS Command Line Interface (AWS CLI), Tools for Windows PowerShell, the AWS SDKs, or direct HTTP calls using the APIs for individual AWS services. It is recommended that all access keys be regularly rotated.
Applies to
Covered asset types
Ensure access keys are rotated every 90 days or less
MediumApplies to
Covered asset types
Ensure Access Logs is Enabled for ELB
Medium### Overview
Applies to
Covered asset types
Ensure account 'Lockout duration in seconds' is greater than or equal to '60'
MediumThe account lockout duration value determines how long an account retains the lockout status and, therefore, how long before a user can continue to attempt to log in after passing the lockout threshold.
Applies to
Covered asset types
Ensure account 'Lockout Threshold' is less than or equal to '10'
MediumThe account lockout threshold determines how many failed login attempts are permitted before the account is locked out and initiated with a variable lockout duration.
Applies to
Covered asset types
Ensure administrators have multi-factor authentication enabled
MediumUsers with administrative rights are targeted by attackers. Requiring multi-factor authentication (MFA) on those accounts is an easy way to reduce the risk of those accounts being compromised.
Applies to
Covered asset types
Ensure aggregated log sinks are configured at org or folder scope
MediumCentralized logging helps ensure forensic and audit evidence is retained even if project-level settings change.
Applies to
Covered asset types
Ensure all data in Amazon S3 has been discovered, classified and secured when required
Low### Overview
Applies to
General guidanceEnsure all S3 buckets employ encryption-at-rest
MediumAmazon S3 provides multiple encryption options to protect data at rest. With default encryption, you can set the behavior for a S3 bucket so that all new objects are encrypted when they are stored in the bucket. The objects can be encrypted using server-side encryption with either Amazon S3-managed keys (SSE-S3) or customer master keys (CMKs) stored in AWS Key Management Service (AWS KMS) (SSE-KMS).
Applies to
Covered asset types
Ensure Amazon ECS task definitions include secure networking modes and user definitions
HighAmazon Elastic Container Service (ECS) [task definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) are JSON files that describe how a Docker container should be launched within an ECS cluster.
Applies to
Covered asset types
Ensure AMIs Are Private
High### Overview
Applies to
Covered asset types
Ensure an Azure Bastion Host Exists
MediumThe Azure Bastion service allows secure remote access to Azure Virtual Machines over the Internet without exposing remote access protocol ports and services directly to the Internet. It provides this access using TLS over 443/TCP and subscribes to hardened configurations within an organization's Azure Active Directory service.
Applies to
Covered asset types
Ensure an exclusionary Device code flow policy is considered
LowConditional Access Policies can be used to prevent the Device code authentication flow. Device code flow should be permitted only for users who regularly perform duties that explicitly require using Device Code to authenticate, such as utilizing Azure with PowerShell.
Applies to
Covered asset types
Ensure an exclusionary Geographic Access Policy is considered
LowConditional Access Policies can be used to block access from geographic locations that are deemed out-of-scope for your organization or application. The scope and variables for this policy should be carefully examined and defined.
Applies to
Covered asset types
Ensure Anti-DDoS access and security log service is enabled
MediumThis control checks that Anti-DDoS access and security log service is enabled.
Applies to
Covered asset types
Ensure API keys are not created for a project
Low### Overview
Applies to
General guidanceEnsure API Keys are restricted to use by only specified hosts and apps
High### Description:
Applies to
Covered asset types
Ensure API Keys are restricted to use only APIs that application needs access to
High### Description:
Applies to
Covered asset types
Ensure API Keys Are Rotated Every 90 Days
Medium### Description:
Applies to
Covered asset types
Ensure App Engine Applications Enforce HTTPS Connections
MediumIn order to maintain the highest level of security all connections to an application should be secure by default.
Applies to
Covered asset types
Ensure App Service Authentication is set up for apps in Azure App Service
MediumAzure App Service Authentication is a feature that can prevent anonymous HTTP requests from reaching a Web Application or authenticate those with tokens before they reach the app. If an anonymous request is received from a browser, App Service will redirect to a logon page. To handle the logon process, a choice from a set of identity providers can be made, or a custom authentication mechanism can be implemented.
Applies to
Covered asset types
Ensure application assignments are configured through groups
MediumYou can grant users access to applications directly or through groups. The latter is preferred because it greatly simplifies access management.
Applies to
Covered asset types
Ensure Application Gateway WAF is enabled in Prevention mode
HighDetection-only mode provides visibility but does not block attacks. Prevention mode is required for stronger protection on internet-facing workloads.
Applies to
Covered asset types
Ensure Application Insights are Configured
LowApplication Insights within Azure act as an Application Performance Monitoring solution, providing valuable data into how well an application performs and additional information when responding to incidents. The types of log data collected include application metrics, telemetry data, and application trace logging data, which provide organizations with detailed information about application activity and transactions. Both data sets help organizations adopt proactive and retroactive means to handle security and performance-related metrics within their modern applications.
Applies to
Covered asset types
Ensure Application Load Balancer uses HTTPS Listener
Medium### Overview
Applies to
Covered asset types
Ensure Artifact Registry Docker repositories enforce immutable tags
Medium### Overview
Applies to
Covered asset types
Ensure Artifact Registry repositories are not publicly accessible
High### Overview
Applies to
Covered asset types
Ensure Artifact Registry repositories use customer-managed encryption keys
Medium### Overview
Applies to
Covered asset types
Ensure at least two Google Workspace Super Admins are configured
MediumWhile having too many administrators constitutes a security risk, having only one is also a risk especially when MFA is enforced. You should assign at least two Google Workspace super administrators for access redundancy.
Applies to
Covered asset types
Ensure at least two Okta admins are configured
MediumWhile having too many administrators constitutes a security risk, having only one is also a risk especially when MFA is enforced. You should assign at least two Okta administrators for access redundancy.
Applies to
Covered asset types
Ensure audit logs for multiple cloud resources are integrated with Log Service
MediumApplies to
General guidanceEnsure Automatic Key Rotation is Enabled Within Azure Key Vault for the Supported Services
MediumAutomatic Key Rotation is available in Public Preview. The currently supported applications are Key Vault, Managed Disks, and Storage accounts, which allow access to keys within Key Vault. The number of supported applications will incrementally increase.
Applies to
Covered asset types
Ensure Automatic node repair is enabled for Kubernetes Clusters
MediumKubernetes Engine's node auto-repair feature helps you keep the nodes in your cluster in a healthy, running state. When enabled, Kubernetes Engine makes periodic checks on the health state of each node in your cluster. If a node fails consecutive health checks over an extended time period, Kubernetes Engine initiates a repair process for that node. If you disable node auto-repair at any time during the repair process, the in-progress repairs are not cancelled and still complete for any node currently under repair.
Applies to
Covered asset types
Ensure Automatic node upgrades is enabled on Kubernetes Engine Clusters nodes
MediumNode auto-upgrades help you keep the nodes in your cluster or node pool up to date with the latest stable version of Kubernetes. Auto-Upgrades use the same update mechanism as manual node upgrades.
Applies to
Covered asset types
Ensure AWS Config is enabled in all regions
LowAWS Config is a web service that performs configuration management of supported AWS resources within your account and delivers log files to you. The recorded information includes the configuration item (AWS resource), relationships between configuration items (AWS resources), any configuration changes between resources. It is recommended to enable AWS Config be enabled in all regions.
Applies to
Covered asset types
Ensure AWS Config recorder is enabled and recording all supported resources
MediumAWS Config is foundational for compliance monitoring. If recording is disabled or incomplete, many controls become blind.
Applies to
Covered asset types
Ensure AWS Inspector is configured for EC2 Instances
Low### Overview
Applies to
Covered asset types
Ensure Azure Cache for Redis disables non-SSL port and enforces TLS 1.2+
HighRedis often stores sensitive session and cache data. Non-SSL access and weak TLS versions increase interception risk.
Applies to
Covered asset types
Ensure Azure Container Registry admin user is disabled
MediumACR admin user provides shared username/password access and should be disabled in favor of Entra ID and RBAC.
Applies to
Covered asset types
Ensure Azure Container Registry public network access is disabled
HighContainer registries should use private endpoints where possible to minimize internet exposure.
Applies to
Covered asset types
Ensure Azure Key Vaults are used to store secrets
MediumAzure Key Vault will store multiple types of sensitive information, such as encryption keys, certificate thumbprints, and Managed Identity Credentials. Access to these secrets can be controlled through granular permissions.
Applies to
Covered asset types
Ensure Basic Authentication is disabled on Kubernetes Engine Clusters
HighBasic authentication allows a user to authenticate to the cluster with a username and password and it is stored in plain text without any encryption. Disabling Basic authentication will prevent attacks like brute force. Its recommended to use either client certificate or IAM for authentication.
Applies to
Covered asset types
Ensure Basic Authentication is not enabled on Kubernetes Engine Clusters
MediumApplies to
General guidanceEnsure Basic SCM/FTP Authentication is 'Disabled' for App Service
MediumBasic Authentication provides the ability to create identities and authentication for an App Service without a centralized Identity Provider. For a more effective, capable, and secure solution for Identity, Authentication, Authorization, and Accountability, a centralized Identity Provider such as Entra ID is strongly advised.
Applies to
Covered asset types
Ensure basic/primitive roles are not used
Medium### Overview
Applies to
Covered asset types
Ensure BigQuery Datasets Are Not Anonymously or Publicly Accessible
MediumIt is recommended that the IAM policy on BigQuery datasets does not allow anonymous and/or public access.
Applies to
Covered asset types
Ensure buckets are not accessible from functions with http trigger unauthenticated
Low### Overview
Applies to
Covered asset types
Ensure buckets are not accessible from VMs with open management ports
Medium### Overview
Applies to
Covered asset types
Ensure buckets are not publicly accessible
High### Overview
Applies to
Covered asset types
Ensure buckets are not publicly readable
HighBuckets should almost never be publicly accessible (excepting when using them to host public static websites). When configured to allow public access, anyone can read the data (objects) without having to perform any authentication or authorization. This can lead to data leaks and can potentially generate considerable costs.
Applies to
Covered asset types
Ensure buckets are not publicly writable
HighPublicly writable buckets allow anyone to upload, modify, and/or delete data from your buckets. This can lead to data loss, malware spread, and increased costs.
Applies to
Covered asset types
Ensure buckets don't have permissive access policies
High### Overview
Applies to
Covered asset types
Ensure buckets have versioning enabled
Medium### Overview
Applies to
Covered asset types
Ensure Cloud Asset Inventory Is Enabled
MediumGCP Cloud Asset Inventory is a service that provides a historical view of GCP resources and IAM policies through a time-series database. The information recorded includes metadata on Google Cloud resources, metadata on policies set on Google Cloud projects or resources, and runtime information gathered within a Google Cloud resource.
Applies to
Covered asset types
Ensure Cloud Audit Logging is configured properly across all services and all users from a project
LowIt is recommended that Cloud Audit Logging is configured to track all Admin activities and read, write access to user data.
Applies to
Covered asset types
Ensure Cloud Bigtable uses CMEK for regulated data
MediumCMEK on Bigtable helps organizations meet key custody and compliance requirements.
Applies to
Covered asset types
Ensure Cloud DNS Logging Is Enabled for All VPC Networks
LowCloud DNS logging records the queries from the name servers within your VPC to Stackdriver. Logged queries can come from Compute Engine VMs, GKE containers, or other GCP resources provisioned within the VPC.
Applies to
Covered asset types
Ensure Cloud Firewall access and security log analysis is enabled
MediumApplies to
General guidanceEnsure Cloud KMS cryptokeys are not anonymously or publicly accessible
HighIt is recommended that the IAM policy on Cloud KMS cryptokeys should restrict anonymous and/or public access.
Applies to
Covered asset types
Ensure Cloud Spanner uses CMEK for regulated data
MediumCustomer-managed encryption keys (CMEK) provide stronger governance and key lifecycle control for regulated workloads.
Applies to
Covered asset types
Ensure Cloud SQL database instances are configured with automated backups
MediumIt is recommended to have all SQL database instances set to enable automated backups.
Applies to
Covered asset types
Ensure Cloud SQL database instances do not have public IPs
MediumIt is recommended to configure Second Generation Sql instance to use private IPs instead of public IPs.
Applies to
Covered asset types
Ensure Cloud SQL Database Instances do not implicitly whitelist all public IP addresses
MediumDatabase Server should accept connections only from trusted network(s)/IP(s) and restrict access from public IP addresses.
Applies to
Covered asset types
Ensure Cloud Storage buckets have uniform bucket-level access enabled
MediumIt is recommended that uniform bucket-level access is enabled on Cloud Storage buckets.
Applies to
Covered asset types
Ensure CloudMonitor is set to Enabled on Kubernetes Engine Clusters
MediumApplies to
General guidanceEnsure CloudTrail is enabled in all regions
MediumAWS CloudTrail is a web service that records AWS API calls for your account and delivers log files to you. The recorded information includes the identity of the API caller, the time of the API call, the source IP address of the API caller, the request parameters, and the response elements returned by the AWS service. CloudTrail provides a history of AWS API calls for an account, including API calls made via the Management Console, SDKs, command line tools, and higher-level AWS services (such as CloudFormation).
Applies to
Covered asset types
Ensure CloudTrail log file validation is enabled
MediumCloudTrail log file validation creates a digitally signed digest file containing a hash of each log that CloudTrail writes to S3. These digest files can be used to determine whether a log file was changed, deleted, or unchanged after CloudTrail delivered the log. It is recommended that file validation be enabled on all CloudTrails.
Applies to
Covered asset types
Ensure CloudTrail logs are encrypted at rest using KMS CMKs
MediumAWS CloudTrail is a web service that records AWS API calls for an account and makes those logs available to users and resources in accordance with IAM policies. AWS Key Management Service (KMS) is a managed service that helps create and control the encryption keys used to encrypt account data, and uses Hardware Security Modules (HSMs) to protect the security of encryption keys. CloudTrail logs can be configured to leverage server side encryption (SSE) and KMS customer created master keys (CMK) to further protect CloudTrail logs. It is recommended that CloudTrail be configured to use SSE-KMS.
Applies to
Covered asset types
Ensure CloudTrail trails are integrated with CloudWatch Logs
MediumAWS CloudTrail is a web service that records AWS API calls made in a given AWS account. The recorded information includes the identity of the API caller, the time of the API call, the source IP address of the API caller, the request parameters, and the response elements returned by the AWS service. CloudTrail uses Amazon S3 for log file storage and delivery, so log files are stored durably. In addition to capturing CloudTrail logs within a specified S3 bucket for long term analysis, realtime analysis can be performed by configuring CloudTrail to send logs to CloudWatch Logs. For a trail that is enabled in all regions in an account, CloudTrail sends log files from all those regions to a CloudWatch Logs log group. It is recommended that CloudTrail logs be sent to CloudWatch Logs.
Applies to
Covered asset types
Ensure Cluster Check is triggered at least once per week for Kubernetes Clusters
MediumApplies to
General guidanceEnsure clusters are created with Private Endpoint Enabled and Public Access Disabled
HighDisable access to the Kubernetes API from outside the node network if it is not required.
Applies to
Covered asset types
Ensure clusters are created with Private Nodes
HighDisable public IP addresses for cluster nodes, so that they only have private IP
Applies to
Covered asset types
Ensure Compute instances are launched with Shielded VM enabled
MediumTo defend against advanced threats and ensure that the boot loader and firmware on your VMs are signed and untampered, it is recommended that Compute instances are launched with Shielded VM enabled.
Applies to
Covered asset types
Ensure Compute instances do not have public IP addresses
MediumCompute instances should not be configured to have external IP addresses.
Applies to
Covered asset types
Ensure Compute Instances have Confidential Computing Enabled
LowGoogle Cloud encrypts data at-rest and in-transit, but customer data must be decrypted for processing. Confidential Computing is a breakthrough technology which encrypts data in-use while it is being processed. Confidential Computing environments keep data encrypted in memory and elsewhere outside the central processing unit (CPU).
Applies to
Covered asset types
Ensure container images do not contain exploitable vulnerabilities
Medium### Overview
Applies to
Covered asset types
Ensure Container-Optimized OS (cos) is used for Kubernetes Engine Clusters Node image
LowContainer-Optimized OS is an operating system image for your Compute Engine VMs that is optimized for running Docker containers. With Container-Optimized OS, you can bring up your Docker containers on Google Cloud Platform quickly, efficiently, and securely.
Applies to
Covered asset types
Ensure credentials unused for 45 days or greater are disabled
Medium### Overview
Applies to
Covered asset types
Ensure data stored in SNS Topics is encrypted
MediumAmazon SNS is a publishers and subscribers messaging service. When you publish messages to encrypted topics, customer master keys (CMK), powered by AWS KMS, can be used to encrypt your messages.
Applies to
Covered asset types
Ensure databases are encrypted
High### Overview
Applies to
Covered asset types
Ensure databases are not publicly accessible
HighManaged databases with public exposure can be reached directly from the internet, which significantly increases the risk of brute-force attempts, credential stuffing, exploitation of unpatched engines, and data exfiltration.
Applies to
Covered asset types
Ensure databases have deletion protection enabled
Medium### Overview
Applies to
Covered asset types
Ensure databases have TLS 1.2 or newer enabled
LowCyscale looks for managed database instances that have TLS enabled and its versions are no older than 1.2. TLS 1.0 and 1.1 are vulnerable to downgrade attacks since they rely on SHA-1 for the integrity of exchanged messages.
Applies to
Covered asset types
Ensure Default Network Access Rule for Storage Accounts is Set to Deny
HighRestricting default network access helps to provide a new layer of security since storage accounts accept connections from clients on any network. The default action must be changed to limit access to selected networks.
Applies to
Covered asset types
Ensure default Service account is not used for Project access in Kubernetes Clusters
MediumA service account is an identity that an instance or an application can use to run API requests on your behalf. This identity is used to identify applications running on your virtual machine instances to other Google Cloud Platform services. By default, Kubernetes Engine nodes are given the Compute Engine default service account. This account has broad access by default, making it useful to a wide variety of applications, but it has more permissions than are required to run your Kubernetes Engine cluster.
Applies to
Covered asset types
Ensure Diagnostic Setting captures appropriate categories
LowPrerequisite: A Diagnostic Setting must exist. If a Diagnostic Setting does not exist, the navigation and options within this recommendation will not be available.
Applies to
Covered asset types
Ensure disks are not publicly accessible
MediumCyscale looks for disks/volumes attached to virtual machines/instances reachable from the internet on administration ports (22, 3389). To reduce the risk of data breaches, configure the security groups/firewalls to allow access only from specific sources or re-consider whether you really need SSH/RDP access.
Applies to
Covered asset types
Ensure DNSSEC is enabled for Cloud DNS
MediumCloud Domain Name System (DNS) is a fast, reliable and cost-effective domain name system that powers millions of domains on the internet. Domain Name System Security Extensions (DNSSEC) in Cloud DNS enables domain owners to take easy steps to protect their domains against DNS hijacking and man-in-the-middle and other attacks.
Applies to
Covered asset types
Ensure EBS encryption by default is enabled
MediumElastic Compute Cloud (EC2) supports encryption at rest when using the Elastic Block Store(EBS) service. While disabled by default, forcing encryption at EBS volume creation is supported.
Applies to
Covered asset types
Ensure EC2 Instances are deployed in a VPC
MediumIf you created your AWS account before December 4, 2013, you might have support for EC2-Classic in some AWS Regions. Some Amazon EC2 resources and features, such as enhanced networking and newer instance types, require a virtual private cloud (VPC).
Applies to
Covered asset types
Ensure ECR repositories use immutable tags and image scanning
MediumContainer images should be protected from tag overwrite and scanned for vulnerabilities.
Applies to
Covered asset types
Ensure ECS clusters use Container Insights
LowContainer Insights collects metrics at the cluster, task, and service levels.
Applies to
Covered asset types
Ensure ECS containers run as non-privileged
HighECS containers should run as non-privileged. . The control fails if the `privileged` parameter in the container definition of Amazon ECS Task Definitions is set to true.
Applies to
Covered asset types
Ensure ECS services don't have public IP addresses assigned to them automatically
HighThis control checks whether Amazon ECS services are configured to automatically assign public IP addresses.
Applies to
Covered asset types
Ensure ECS task definitions do not share the host's process namespace
HighA process ID (PID) namespace provides separation between processes. It prevents system processes from being visible, and allows PIDs to be reused, including PID 1. If the host's PID namespace is shared with containers, it would allow containers to see all of the processes on the host system. This reduces the benefit of process level isolation between the host and the containers. These circumstances could lead to unauthorized access to processes on the host itself, including the ability to manipulate and terminate them. Customers shouldn't share the host's process namespace with containers running on it. This control only evaluates the in-use (RUNNING Task) revision of an Amazon ECS task definition.
Applies to
Covered asset types
Ensure encrypted storage is used for VMs that might host a database
MediumIf you have to or choose to host the database on a virtual machine, encrypting the volumes is highly recommended.
Applies to
Covered asset types
Ensure encryption keys are not expiring within the next 14 days
High### Overview
Applies to
Covered asset types
Ensure encryption keys are not publicly accessible
High### Overview
Applies to
Covered asset types
Ensure encryption keys are rotated
High### Overview
Applies to
Covered asset types
Ensure encryption keys don't have permissive access policies
High### Overview
Applies to
Covered asset types
Ensure ENI multiple IP mode support for Kubernetes Cluster
MediumApplies to
General guidanceEnsure Essential Contacts is Configured for Organization
Low### Description:
Applies to
Covered asset types
Ensure Fewer Than 5 Users Have Global Administrator Assignment
HighThis recommendation aims to balance security and operational efficiency by ensuring that a minimum of 2 and a maximum of 4 users are assigned the Global Administrator role in Microsoft Entra ID. Having at least two Global Administrators ensures redundancy while limiting the number to four reduces the risk of excessive privileged access.
Applies to
Covered asset types
Ensure firewall rule does not allow all traffic for MongoDB (port 27017)
Medium### Overview
Applies to
Covered asset types
Ensure firewall rule does not allow all traffic for MySQL (port 3306)
Medium### Overview
Applies to
Covered asset types
Ensure firewall rule does not allow all traffic for Oracle DB (port 1521)
Medium### Overview
Applies to
Covered asset types
Ensure firewall rule does not allow all traffic for PostgreSQL DB (port 5432)
Medium### Overview
Applies to
Covered asset types
Ensure firewall rule does not allow all traffic on all ports
Medium### Overview
Applies to
Covered asset types
Ensure firewall rule does not allow all traffic on port 80
Medium### Overview
Applies to
Covered asset types
Ensure Firewalls do not allow traffic from the internet
MediumFirewalls/security groups allowing all traffic from the internet increase the **attack surface** of your cloud estate. When these are used to control the traffic to compute resources (most commonly VMs), attackers might be able to take advantage of various vulnerabilities present on these resources to infiltrate into the cloud environment. Then, if the compute resource has permissions to access data stores or other resources, the attacker might **move laterally** through the environment or **access potentially sensitive data**.
Applies to
Covered asset types
Ensure Functions are not publicly accessible
LowCyscale looks for functions directly reachable over the internet from any sources - i.e. functions with HTTP triggers/URLs.
Applies to
Covered asset types
Ensure Guest Users Are Reviewed on a Regular Basis (Manual)
MediumMicrosoft Entra ID is extended to include Azure AD B2B collaboration, allowing you to invite people outside your organization to be guest users in your cloud account and sign in with their work, school, or social identities. Guest users allow you to share your company's applications and services with users from any other organization while maintaining control over your corporate data.
Applies to
Covered asset types
Ensure hardware MFA is enabled for the "root" account (Hardware MFA)
LowThe root account is the most privileged user in an AWS account. MFA adds an extra layer of protection on top of a user name and password. With MFA enabled, when a user signs in to an AWS website, they will be prompted for their user name and password as well as for an authentication code from their AWS MFA device. For Level 2, it is recommended that the root account be protected with a hardware MFA.
Applies to
Covered asset types
Ensure high-risk cloud events have alerting policies
MediumDetection without alerting delays incident response. High-risk events should always trigger notifications.
Applies to
Covered asset types
Ensure HTTP(S) access from the Internet is evaluated and restricted
MediumNetwork security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restricted wherever they are not explicitly required and narrowly configured.
Applies to
Covered asset types
Ensure IAM Access Analyzer is enabled in all active regions
MediumIAM Access Analyzer helps identify unintended external access paths to resources.
Applies to
Covered asset types
Ensure IAM instance roles are used for AWS resource access from instances
MediumAWS access from AWS instances can be done by either encoding AWS keys into AWS API calls or by assigning the instance to a role which has an appropriate permissions policy for the required access. *AWS Access* means accessing the APIs of AWS in order to access AWS resources or manage AWS account resources.
Applies to
General guidanceEnsure IAM password policy expires passwords within 90 days or less
LowIAM password policies can require passwords to be rotated or expired after a given number of days. It is recommended that the password policy expire passwords after 90 days or less.
Applies to
Covered asset types
Ensure IAM password policy prevents password reuse
LowIAM password policies can prevent the reuse of a given password by the same user. It is recommended that the password policy prevent the reuse of passwords.
Applies to
Covered asset types
Ensure IAM password policy requires a minimum length of 14 or greater
MediumPassword policies are, in part, used to enforce password complexity requirements. IAM password policies can be used to ensure passwords are at least a given length. It is recommended that the password policy require a minimum password length of 14.
Applies to
Covered asset types
Ensure IAM password policy requires at least one lowercase letter
LowPassword policies are, in part, used to enforce password complexity requirements. IAM password policies can be used to ensure password are comprised of different character sets. It is recommended that the password policy require at least one lowercase letter.
Applies to
Covered asset types
Ensure IAM password policy requires at least one number
LowPassword policies are, in part, used to enforce password complexity requirements. IAM password policies can be used to ensure password are comprised of different character sets. It is recommended that the password policy require at least one number.
Applies to
Covered asset types
Ensure IAM password policy requires at least one symbol
LowPassword policies are, in part, used to enforce password complexity requirements. IAM password policies can be used to ensure password are comprised of different character sets. It is recommended that the password policy require at least one symbol.
Applies to
Covered asset types
Ensure IAM password policy requires at least one uppercase letter
LowPassword policies are, in part, used to enforce password complexity requirements. IAM password policies can be used to ensure password are comprised of different character sets. It is recommended that the password policy require at least one uppercase letter.
Applies to
Covered asset types
Ensure IAM policies that allow full "*:*" administrative privileges are not attached
HighIAM policies are the means by which privileges are granted to users, groups, or roles. It is recommended and considered a standard security practice to grant least privilege that is, granting only the permissions required to perform a task. Determine what users need to do what and then accordingly create policies for them instead of allowing full administrative privileges.
Applies to
Covered asset types
Ensure IAM Role can be assumed only by specific Principals
HighThe list of principals able to assume a role should be limited as much as possible, and should not include "*", meaning that any authenticated identity across all of AWS can assume the role.
Applies to
Covered asset types
Ensure IAM users are managed centrally via identity federation or AWS Organizations for multi-account environments
LowIn multi-account environments, IAM user centralization facilitates greater user control. User access beyond the initial account is then provide via role assumption. Centralization of users can be accomplished through federation with an external identity provider or through the use of AWS Organizations.
Applies to
General guidanceEnsure IAM users are not assigned the Service Account User or Service Account Token Creator roles at project level
MediumIt is recommended to assign the `Service Account User` (iam.serviceAccountUser) and `Service Account Token Creator` (iam.serviceAccountTokenCreator) roles to a user for a specific service account rather than assigning the role to a user at project level.
Applies to
Covered asset types
Ensure IAM Users receive permissions only through Groups
MediumIAM users are granted access to services, functions, and data through IAM policies. There are multiple ways to define policies for an user, such as:
Applies to
Covered asset types
Ensure IAM Users that are inactive for 30 days or more are deactivated
MediumIAM users who have not logged into AWS and have no API activity for 30 days should be considered inactive.
Applies to
Covered asset types
Ensure Image Vulnerability Scanning using Amazon ECR image scanning or a third party provider
MediumScan images being deployed to Amazon EKS for vulnerabilities.
Applies to
Covered asset types
Ensure in-use encryption keys are not scheduled for deletion
HighCyscale looks for encryption keys scheduled for deletion that are currently in-use.
Applies to
Covered asset types
Ensure Instance IP assignment is set to private
MediumInstance addresses can be public IP or private IP. Public IP means that the instance is accessible through the public internet. In contrast, instances using only private IP are not accessible through the public internet, but are accessible through a Virtual Private Cloud (VPC).
Applies to
Covered asset types
Ensure instances are not configured to use the default service account
MediumIt is recommended to configure your instance to not use the default Compute Engine service account because it has the Editor role on the project.
Applies to
Covered asset types
Ensure Key Vaults are Recoverable
HighThe Key Vault contains object keys, secrets, and certificates. Accidental unavailability of a Key Vault can cause immediate data loss or loss of security functions (authentication, validation, verification, non-repudiation, etc.) supported by the Key Vault objects.
Applies to
Covered asset types
Ensure Kinesis Data Streams use encryption at rest
MediumWith server-side encryption, your Kinesis stream producers and consumers don't need to manage master keys or cryptographic operations. Your data is automatically encrypted as it enters and leaves the Kinesis Data Streams service, so your data at rest is encrypted.
Applies to
Covered asset types
Ensure KMS encryption keys are rotated within a period of 90 days
MediumGoogle Cloud Key Management Service stores cryptographic keys in a hierarchical structure designed for useful and elegant access control management.
Applies to
Covered asset types
Ensure KMSKeys are not exposed through publicly accessible VMs
High### Overview
Applies to
Covered asset types
Ensure Kubernetes Cluster is created with 'Private cluster' enabled
MediumApplies to
General guidanceEnsure Kubernetes Cluster is created with Alias IP ranges enabled
LowGoogle Cloud Platform Alias IP Ranges lets you assign ranges of internal IP addresses as aliases to a virtual machine's network interfaces. This is useful if you have multiple services running on a VM and you want to assign each service a different IP address.
Applies to
Covered asset types
Ensure Kubernetes Cluster is created with Client Certificate enabled
MediumA client certificate is a base64-encoded public certificate used by clients to authenticate to the cluster endpoint.
Applies to
Covered asset types
Ensure Kubernetes Cluster is created with Private cluster enabled
MediumA private cluster is a cluster that makes your master inaccessible from the public internet. In a private cluster, nodes do not have public IP addresses, so your workloads run in an environment that is isolated from the internet. Nodes have addressed only in the private RFC 1918 address space. Nodes and masters communicate with each other privately using VPC peering.
Applies to
Covered asset types
Ensure Kubernetes Clusters are configured with Labels
LowA cluster label is a key-value pair that helps you organize your Google Cloud Platform resources, such as clusters. You can attach a label to each resource, then filter the resources based on their labels. Information about labels is forwarded to the billing system, so you can break down your billing charges by the label.
Applies to
Covered asset types
Ensure Kubernetes Clusters are created with limited service account Access scopes for Project access
LowAccess scopes are the legacy method of specifying permissions for your instance. Before the existence of IAM roles, access scopes were the only mechanism for granting permissions to service accounts. By default, your node service account has access scopes.
Applies to
Covered asset types
Ensure Kubernetes Engine uses HTTP load balancing
MediumHTTP/HTTPS load balancing provides global load balancing for HTTP/HTTPS requests destined for your cluster. Enabling HTTP/HTTPS load balancers will let the Kubernetes Engine to terminate unauthorized HTTP/HTTPS requests and make better context-aware load balancing decisions.
Applies to
Covered asset types
Ensure Kubernetes Secrets are encrypted using Customer Master Keys (CMKs) managed in AWS KMS
MediumEncrypt Kubernetes secrets, stored in etcd, using secrets encryption feature during
Applies to
Covered asset types
Ensure Kubernetes web UI / Dashboard is disabled
HighDashboard is a web-based Kubernetes user interface. You can use Dashboard to deploy containerized applications to a Kubernetes cluster, troubleshoot your containerized application, and manage the cluster itself along with its attendant resources. You can use Dashboard to get an overview of applications running on your cluster, as well as for creating or modifying individual Kubernetes resources (such as Deployments, Jobs, DaemonSets, etc). For example, you can scale a Deployment, initiate a rolling update, restart a pod or deploy new applications using a deploy wizard.
Applies to
Covered asset types
Ensure Kubernetes web UI / Dashboard is not enabled
HighApplies to
General guidanceEnsure Legacy Authorization is set to Disabled on Kubernetes Engine Clusters
HighIn Kubernetes, authorizers interact by granting a permission if any authorizer grants the permission. The legacy authorizer in Kubernetes Engine grants broad, statically defined permissions. To ensure that RBAC limits permissions correctly, you must disable the legacy authorizer. RBAC has significant security advantages, can help you ensure that users only have access to cluster resources within their own namespace and is now stable in Kubernetes.
Applies to
Covered asset types
Ensure legacy networks do not exist
MediumApplies to
General guidanceEnsure legacy networks do not exist for a project
High**Description: **
Applies to
Covered asset types
Ensure log metric filter and alerts exist for Audit Configuration Changes
LowGoogle Cloud Platform (GCP) services write audit log entries to the Admin Activity and Data Access logs to help answer the questions of, "who did what, where, and when?" within GCP projects.
Applies to
Covered asset types
Ensure log metric filter and alerts exist for Cloud Storage IAM permission changes
LowIt is recommended that a metric filter and alarm be established for Cloud Storage Bucket IAM changes.
Applies to
Covered asset types
Ensure log metric filter and alerts exist for Custom Role changes
LowIt is recommended that a metric filter and alarm be established for changes to Identity and Access Management (IAM) role creation, deletion and updating activities.
Applies to
Covered asset types
Ensure log metric filter and alerts exist for Project Ownership assignments/changes
LowIn order to prevent unnecessary project ownership assignments to users/service accounts and further misuses of projects and resources, all `roles/Owner` assignments should be monitored
Applies to
Covered asset types
Ensure log metric filter and alerts exist for SQL instance configuration changes
LowIt is recommended that a metric filter and alarm be established for SQL Instance configuration changes.
Applies to
Covered asset types
Ensure log metric filter and alerts exist for VPC network changes
LowIt is recommended that a metric filter and alarm be established for VPC network changes.
Applies to
Covered asset types
Ensure log metric filter and alerts exist for VPC Network Firewall rule changes
LowIt is recommended that a metric filter and alarm be established for Virtual Private Cloud (VPC) Network Firewall rule changes.
Applies to
Covered asset types
Ensure log metric filter and alerts exist for VPC network route changes
LowIt is recommended that a metric filter and alarm be established for VPC network route changes.
Applies to
Covered asset types
Ensure log monitoring and alerts are set up for Cloud Firewall changes
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for disabling or deletion of customer created CMKs
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for Management Console authentication failures
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for Management Console sign-in without MFA
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for OSS bucket policy changes
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for OSS permission changes
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for RAM Role changes
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for RDS instance configuration changes
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for security group changes
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for unauthorized API calls
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for usage of 'root' account
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for VPC changes
MediumApplies to
General guidanceEnsure log monitoring and alerts are set up for VPC network route changes
MediumApplies to
General guidanceEnsure Log Service is enabled for Container Service for Kubernetes
MediumApplies to
General guidanceEnsure Log Service is set to 'Enabled' on Kubernetes Engine Clusters
MediumApplies to
General guidanceEnsure logging for Azure AppService 'HTTP logs' is enabled
LowEnable AppServiceHTTPLogs diagnostic log category for Azure App Service instances to ensure all HTTP requests are captured and centrally logged.
Applies to
Covered asset types
Ensure logging for Azure Key Vault is 'Enabled'
MediumEnable `AuditEvent` logging for key vault instances to ensure interactions with key vaults are logged and available.
Applies to
Covered asset types
Ensure Logging is enabled for HTTP(S) Load Balancers
MediumLogging enabled on a HTTPS Load Balancer will show all network traffic and its destination.
Applies to
Covered asset types
Ensure Managed IAM Policies are used instead of Inline Policies
MediumInline policies are policies that are embedded directly into a single user, group, or role.
Applies to
Covered asset types
Ensure Managed Identities Are Used for App Service
MediumManaged service identity in App Service provides more security by eliminating secrets from the app, such as credentials in the connection strings. When registering an App Service with Entra ID, the app will connect to other Azure services securely without usernames and passwords.
Applies to
Covered asset types
Ensure management ports are restricted from the internet
HighNetwork security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restricted wherever they are not explicitly required.
Applies to
Covered asset types
Ensure Master authorized networks is set to Enabled on Kubernetes Engine Clusters
MediumAuthorized networks are a way of specifying a restricted range of IP addresses that are permitted to access your container cluster's Kubernetes master endpoint. Kubernetes Engine uses both Transport Layer Security (TLS) and authentication to provide secure access to your container cluster's Kubernetes master endpoint from the public internet. This provides you the flexibility to administer your cluster from anywhere; however, you might want to further restrict access to a set of IP addresses that you control. You can set this restriction by specifying an authorized network.
Applies to
Covered asset types
Ensure MFA Delete is enabled on S3 buckets
Low### Overview
Applies to
Covered asset types
Ensure MFA is configured with strong factors
MediumWhile adopting MFA is a great step forward, some factors are safer than others. As you might imagine a code (OTP) sent through SMS or email, which is still prone to phishing attacks, is considerably less secure than a biometric factor for example.
Applies to
Covered asset types
Ensure MFA is enabled for the 'root' account
MediumApplies to
General guidanceEnsure MFA is enabled for the "root" account
HighThe root account is the most privileged user in an AWS account. MFA adds an extra layer of protection on top of a user name and password. With MFA enabled, when a user signs in to an AWS website, they will be prompted for their user name and password as well as for an authentication code from their AWS MFA device.
Applies to
Covered asset types
Ensure Microsoft Defender for App Services is set to 'On`
LowTurning on Microsoft Defender for App Services enables threat detection for App Services, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Defender for Azure Cosmos DB is set to 'On'
LowMicrosoft Defender for Azure Cosmos DB scans all incoming network requests for threats to your Azure Cosmos DB resources.
Applies to
Covered asset types
Ensure Microsoft Defender for Azure SQL databases is set to 'On'
LowTurning on Microsoft Defender for Azure SQL databases enables threat detection for Azure SQL databases, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Defender for Cloud Apps integration with Microsoft Defender for Cloud is selected
LowThis integration setting enables Microsoft Defender for Cloud Apps (formerly 'Microsoft Cloud App Security' or 'MCAS' - see additional info) to communicate with Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Defender for Containers is set to 'On'
LowTurning on Microsoft Defender for Containers enables threat detection for Container Registries, including Kubernetes, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud. The following services will be enabled for container instances:
Applies to
Covered asset types
Ensure Microsoft Defender for Key Vault is set to 'On'
LowTurning on Microsoft Defender for Key Vault enables threat detection for Key Vault, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Defender for Open-Source Relational Databases is set to 'On'
LowTurning on Microsoft Defender for Open-source relational databases enables threat detection for Open-source relational databases, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Defender for Resource Manager is set to 'On'
LowMicrosoft Defender for Resource Manager scans incoming administrative requests to change your infrastructure from both CLI and the Azure portal.
Applies to
Covered asset types
Ensure Microsoft Defender for Servers is set to 'On'
LowTurning on Microsoft Defender for Servers enables threat detection, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Defender for SQL Servers on machines is set to 'On'
LowTurning on Microsoft Defender for SQL Servers on machines enables threat detection for SQL Servers on machines, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Defender for Storage is set to 'On'
LowTurning on Microsoft Defender for Storage enables threat detection, providing threat intelligence, anomaly detection, and behavior analytics in the Microsoft Defender for Cloud.
Applies to
Covered asset types
Ensure Microsoft Entra authentication is Configured for SQL Servers
MediumUse Microsoft Entra authentication for authentication with SQL Database to manage credentials in a single place.
Applies to
Covered asset types
Ensure Multi-factor Authentication is Required for Risky Sign-ins
LowDesignated users will be prompted to use their multi-factor authentication (MFA) process upon login.
Applies to
Covered asset types
Ensure Multifactor Authentication is Required for Windows Azure Service Management API
LowThis recommendation ensures that users accessing the Windows Azure Service Management API (i.e., Azure Powershell, Azure CLI, Azure Resource Manager API, etc.) must use multifactor authentication (MFA) credentials when accessing resources through the Windows Azure Service Management API.
Applies to
Covered asset types
Ensure Multifactor Authentication is Required to access Microsoft Admin Portals
LowThis recommendation ensures that users accessing the Microsoft Admin Portals (i.e., Microsoft 365 Admin, Microsoft 365 Defender, Exchange Admin Center, Azure Portal, etc.) must use multifactor authentication (MFA) credentials when logging into an Admin Portal.
Applies to
Covered asset types
Ensure namespace enabled restricted pod security admission or if there are external policies (validating/mutating webhooks)
LowChecks that every namespace enabled restricted pod security admission, or if there are external policies applied for namespaced resources (validating/mutating webhooks) - returns them to be reviewed.
Applies to
Covered asset types
Ensure network access rule for storage bucket is not set to publicly accessible
MediumApplies to
General guidanceEnsure Network Load Balancer uses TLS Listener
MediumUse secure listeners to support encrypted communication between clients and your load balancers. You can use AWS Certificate Manager (ACM) or AWS Identity and Access Management (IAM) to manage the server certificates installed on your load balancer.
Applies to
Covered asset types
Ensure Network policy is enabled on Kubernetes Engine Clusters
MediumApplies to
General guidanceEnsure Network policy is enabled on Kubernetes Engine Clusters
MediumA network policy is a specification of how groups of pods are allowed to communicate with each other and other network endpoints. NetworkPolicy resources use labels to select pods and define rules which specify what traffic is allowed to the selected pods. The Kubernetes Network Policy API allows the cluster administrator to specify what pods are allowed to communicate with each other.
Applies to
Covered asset types
Ensure Network Security Group Flow Log retention period is 'greater than 90 days'
LowNetwork Security Group Flow Logs should be enabled and the retention period is set to greater than or equal to 90 days.
Applies to
Covered asset types
Ensure Network Security Group Flow logs are captured and sent to Log Analytics
LowEnsure that network flow logs are captured and fed into a central log analytics workspace.
Applies to
Covered asset types
Ensure Network Watchers are 'Enabled' for in-use Azure regions
LowEnable Network Watcher for Azure subscriptions.
Applies to
Covered asset types
Ensure no "root" user account access key exists
HighThe "root" account is the most privileged user in an AWS account. AWS Access Keys provide programmatic access to a given AWS account. It is recommended that all access keys associated with the "root" account be removed.
Applies to
Covered asset types
Ensure no Azure SQL Databases allow ingress from 0.0.0.0/0 (ANY IP)
HighEnsure that no SQL Databases allow ingress from 0.0.0.0/0 (ANY IP).
Applies to
Covered asset types
Ensure No Custom Subscription Administrator Roles Exist
LowThe principle of least privilege should be followed, and only necessary privileges should be assigned instead of allowing full administrative access.
Applies to
Covered asset types
Ensure no databases have outdated engine versions
High### Overview
Applies to
Covered asset types
Ensure no HTTPS or SSL proxy load balancers permit SSL policies with weak cipher suites
HighSecure Sockets Layer (SSL) policies determine what port Transport Layer Security (TLS) features clients are permitted to use when connecting to load balancers. To prevent usage of insecure features, SSL policies should use (a) at least TLS 1.2 with the MODERN profile; or (b) the RESTRICTED profile, because it effectively requires clients to use TLS 1.2 regardless of the chosen minimum TLS version; or (3) a CUSTOM profile that does not support any of the following features:
Applies to
Covered asset types
Ensure no Network ACLs allow ingress from 0.0.0.0/0 to remote server administration ports
LowThe Network Access Control List (NACL) function provide stateless filtering of ingress and egress network traffic to AWS resources. It is recommended that no NACL allows unrestricted ingress access to remote server administration ports, such as SSH to port `22` and RDP to port `3389`, using either the TCP (6), UDP (17) or ALL (-1) protocols.
Applies to
Covered asset types
Ensure no root account access key exists
HighApplies to
General guidanceEnsure no SSL certificates expire in the next 14 days
MediumSSL/TLS server certificate is required to enable HTTPS connections to your website or application.
Applies to
Covered asset types
Ensure Only Approved Extensions Are Installed (Manual)
MediumOnly install organization-approved extensions on VMs.
Applies to
Covered asset types
Ensure only MFA enabled identities can access privileged Virtual Machine
MediumVerify identities without MFA that can log in to a privileged virtual machine using separate login credentials. An adversary can leverage the access to move laterally and perform actions with the virtual machine's managed identity. Ensure the virtual machine only has necessary permissions, and revoke the admin-level permissions according to the least privileges principle.
Applies to
Covered asset types
Ensure oslogin is enabled for a Project
MediumEnabling OS login binds SSH certificates to IAM users and facilitates effective SSH certificate management.
Applies to
Covered asset types
Ensure parameter 'log_connections' is set to 'ON' for PostgreSQL Database
MediumApplies to
General guidanceEnsure PodSecurityPolicy controller is enabled on the Kubernetes Engine Clusters
MediumA Pod Security Policy is a cluster-level resource that controls security sensitive aspects of the pod specification. The PodSecurityPolicy objects define a set of conditions that a pod must run with in order to be accepted into the system, as well as defaults for the related fields.
Applies to
General guidanceEnsure Private Endpoints are Used for Azure Key Vault
MediumPrivate endpoints will secure network traffic from Azure Key Vault to the resources requesting secrets and keys.
Applies to
Covered asset types
Ensure Private Endpoints Are Used To Access Cosmos DB Accounts
MediumPrivate endpoints limit network traffic to approved sources.
Applies to
Covered asset types
Ensure Private Endpoints are used to access Storage Accounts
MediumUse private endpoints for your Azure Storage accounts to allow clients and services to securely access data located over a network via an encrypted Private Link. The private endpoint uses an IP address from the VNet for each service to do this. Network traffic between disparate services securely traverses and is encrypted over the VNet. This VNet can also link addressing space, extend your network, and access resources. Similarly, it can be a tunnel through public networks to connect remote infrastructures. This creates further security by segmenting network traffic and preventing outside sources from accessing it.
Applies to
Covered asset types
Ensure Private Google Access is set on Kubernetes Engine Cluster Subnets
MediumPrivate Google Access enables your cluster hosts, which have only private IP addresses, to communicate with Google APIs and services using an internal IP address rather than an external IP address. External IP addresses are routable and reachable over the Internet. Internal (private) IP addresses are internal to Google Cloud Platform and are not routable or reachable over the Internet. You can use Private Google Access to allow VMs without Internet access to reach Google APIs, services, and properties that are accessible over HTTP/HTTPS.
Applies to
Covered asset types
Ensure Public IP addresses are Evaluated on a Periodic Basis (Manual)
LowPublic IP Addresses provide tenant accounts with Internet connectivity for resources contained within the tenant. A public IP address may be created during the creation of certain resources in Azure. All Public IP Addresses within the tenant should be periodically reviewed for accuracy and necessity.
Applies to
Covered asset types
Ensure Public Network Access is Disabled for SQL Servers
MediumDisabling public network access restricts the service from accessing public networks.
Applies to
Covered asset types
Ensure queues are not publicly accessible
High### Overview
Applies to
Covered asset types
Ensure RAM password policy expires passwords within 90 days or less
LowApplies to
Covered asset types
Ensure RAM password policy prevents password reuse
LowApplies to
Covered asset types
Ensure RAM password policy requires a minimum length of 14 or greater
MediumRAM password policies can be used to ensure password complexity. It is recommended that the password policy require a minimum of 14 or greater characters for any password.
Applies to
Covered asset types
Ensure RAM password policy requires at least one lowercase letter
MediumRAM password policies can be used to ensure password complexity. It is recommended that the password policy requires at least one lowercase letter.
Applies to
Covered asset types
Ensure RAM password policy requires at least one number
MediumRAM password policies can be used to ensure password complexity. It is recommended that the password policy requires at least one number.
Applies to
Covered asset types
Ensure RAM password policy requires at least one symbol
MediumRAM password policies can be used to ensure password complexity. It is recommended that the password policy requires at least one symbol.
Applies to
Covered asset types
Ensure RAM password policy requires at least one uppercase letter
MediumRAM password policies can be used to ensure password complexity. It is recommended that the password policy requires at least one uppercase letter.
Applies to
Covered asset types
Ensure RAM password policy temporarily blocks logon after 5 incorrect logon attempts within an hour
MediumApplies to
Covered asset types
Ensure RAM policies are attached only to groups or roles
Medium### Description
Applies to
Covered asset types
Ensure RAM policies that allow full '*:*'' administrative privileges are not created
MediumApplies to
Covered asset types
Ensure RDS instance TDE protector is encrypted with BYOK (Use your own key)
MediumApplies to
General guidanceEnsure RDS Instances accept traffic only from the Application Servers
Medium### Overview
Applies to
Covered asset types
Ensure RDS instances are not publicly reachable
MediumRDS instances should be accessible only through well-defined paths and only from networks you manage. We recommend to disable 'Public access' if possible which removes the public IP address assigned to the database instance.
Applies to
Covered asset types
Ensure RDS instances require all incoming connections to use SSL
MediumIt is recommended to enforce all incoming connections to SQL database instance to use SSL.
Applies to
Covered asset types
Ensure RDS instances use encrypted volumes
Medium### Overview
Applies to
Covered asset types
Ensure Retention Policies on Cloud Storage Buckets used for exporting logs are configured using Bucket Lock
LowEnabling retention policies on log buckets will protect logs stored in cloud storage buckets from being overwritten or accidentally deleted. It is recommended to set up retention policies and configure Bucket Lock on all storage buckets that are used as log sinks.
Applies to
Covered asset types
Ensure role-based access control (RBAC) authorization is Enabled on Kubernetes Engine Clusters
MediumApplies to
General guidanceEnsure rotation for customer-created symmetric CMKs is enabled
MediumAWS Key Management Service (KMS) allows customers to rotate the backing key which is key material stored within the KMS which is tied to the key ID of the Customer Created customer master key (CMK). It is the backing key that is used to perform cryptographic operations such as encryption and decryption. Automated key rotation currently retains all prior backing keys so that decryption of encrypted data can take place transparently. It is recommended that CMK key rotation be enabled.
Applies to
Covered asset types
Ensure routing tables for VPC peering are 'least access'
MediumApplies to
General guidanceEnsure routing tables for VPC peering are "least access"
MediumOnce a VPC peering connection is established, routing tables must be updated to establish any connections between the peered VPCs. These routes can be as specific as desired - even peering a VPC to only a single host on the other side of the connection.
Applies to
General guidanceEnsure RSASHA1 is not used for the key-signing key in Cloud DNS DNSSEC
MediumNOTE: Currently, the SHA1 algorithm has been removed from general use by Google, and, if being used, needs to be whitelisted on a project basis by Google and will also, therefore, require a Google Cloud support contract.
Applies to
Covered asset types
Ensure RSASHA1 is not used for the zone-signing key in Cloud DNS DNSSEC
MediumNOTE: Currently, the SHA1 algorithm has been removed from general use by Google, and, if being used, needs to be whitelisted on a project basis by Google and will also, therefore, require a Google Cloud support contract.
Applies to
Covered asset types
Ensure S3 bucket access logging is enabled on the CloudTrail S3 bucket
LowS3 Bucket Access Logging generates a log that contains access records for each request made to your S3 bucket. An access log record contains details about the request, such as the request type, the resources specified in the request worked, and the time and date the request was processed. It is recommended that bucket access logging be enabled on the CloudTrail S3 bucket.
Applies to
Covered asset types
Ensure S3 bucket ACL grants permissions only to specific AWS accounts
MediumIn AWS the prefered way to grant access to a bucket is by using Bucket Policies, but you can also grant access via Access Control Lists.
Applies to
Covered asset types
Ensure S3 bucket policy does not grant Allow permission to everyone
Medium### Overview
Applies to
Covered asset types
Ensure S3 Bucket Policy is set to deny HTTP requests
High### Overview
Applies to
Covered asset types
Ensure SageMaker Notebooks Are Encrypted
Medium### Overview
Applies to
Covered asset types
Ensure Secrets are not stored in Cloud Functions environment variables by using Secret Manager
MediumGoogle Cloud Functions allow you to host serverless code that is executed when an event is triggered, without requiring the management of a host operating system. These functions can also store environment variables to be used by the code that may contain authentication or other information that need to remain confidential.
Applies to
Covered asset types
Ensure security alert emails for subscription owners are enabled
LowEnable security alert emails to subscription owners.
Applies to
Covered asset types
Ensure Security Center Network, Host and Security log analysis is enabled
MediumApplies to
General guidanceEnsure security contact information is registered
Low### Overview
Applies to
General guidanceEnsure Security Defaults is enabled on Microsoft Entra ID
Medium> If your organization pays for Microsoft Entra ID licensing (included in Microsoft 365 E3, E5, or F5, and EM&S E3 or E5 licenses) and CAN use Conditional Access, ignore the recommendations in this section and proceed to the Conditional Access section.
Applies to
Covered asset types
Ensure security questions are registered in the AWS account
Low### Overview
Applies to
General guidanceEnsure Separation of duties is enforced while assigning Service Account related roles to users
MediumIt is recommended that the principle of 'Separation of Duties' is enforced while assigning service-account related roles to users.
Applies to
Covered asset types
Ensure server parameter 'audit_log_enabled' is set to 'ON' for MySQL flexible server
MediumEnable `audit_log_enabled` on `MySQL flexible servers`.
Applies to
Covered asset types
Ensure server parameter 'audit_log_events' has 'CONNECTION' set for MySQL flexible server
MediumSet `audit_log_events` to include `CONNECTION` on `MySQL flexible servers`.
Applies to
Covered asset types
Ensure server parameter 'connection_throttle.enable' is set to 'ON' for PostgreSQL flexible servers
MediumEnable connection throttling on PostgreSQL flexible servers.
Applies to
Covered asset types
Ensure server parameter 'connection_throttling' is set to 'ON' for PostgreSQL Database Server
MediumEnable `connection_throttling` on PostgreSQL Database Servers.
Applies to
Covered asset types
Ensure server parameter 'log_checkpoints' is set to 'ON' for PostgreSQL Database Server
MediumEnable `log_checkpoints` on PostgreSQL Database Servers.
Applies to
Covered asset types
Ensure server parameter 'log_checkpoints' is set to 'ON' for PostgreSQL flexible servers
MediumEnable `log_checkpoints` on `PostgreSQL flexible servers`.
Applies to
Covered asset types
Ensure server parameter 'log_disconnections' is set to 'ON' for PostgreSQL Database Server
MediumApplies to
General guidanceEnsure server parameter 'log_duration is set to 'ON' for PostgreSQL Database Server
MediumApplies to
General guidanceEnsure server parameter 'log_retention_days' is greater than 3 days for PostgreSQL Database Server
MediumEnable `log_retention_days` on PostgreSQL Database Servers.
Applies to
Covered asset types
Ensure server parameter 'logfiles.retention_days' is greater than 3 days for PostgreSQL flexible servers
MediumEnsure `logfiles.retention_days` on `PostgreSQL flexible servers` is set to an appropriate value.
Applies to
Covered asset types
Ensure server parameter 'require_secure_transport' is set to 'ON' for MySQL flexible servers
MediumEnable `require_secure_transport` on `MySQL flexible servers`.
Applies to
Covered asset types
Ensure server parameter 'require_secure_transport' is set to 'ON' for PostgreSQL flexible servers
MediumEnable `require_secure_transport` on `PostgreSQL flexible servers`.
Applies to
Covered asset types
Ensure server parameter 'tls_version' is set to 'TLSv1.2' (or higher) for MySQL flexible servers
MediumEnsure `tls_version` on `MySQL flexible servers` is set to use TLS version 1.2 or higher.
Applies to
Covered asset types
Ensure server-side encryption is set to 'Encrypt with BYOK'
Medium### Description
Applies to
Covered asset types
Ensure server-side encryption is set to 'Encrypt with Service Key'
Medium### Description
Applies to
Covered asset types
Ensure Service Account has no Admin privileges
MediumA service account is a special Google account that belongs to your application or a VM, instead of to an individual end user. Your application uses the service account to call the Google API of a service, so that the users aren't directly involved. It's recommended not to use admin access for Service Account.
Applies to
Covered asset types
Ensure Service Bus namespaces disable public network access
HighService Bus should not be directly reachable from public networks when private connectivity can be used.
Applies to
Covered asset types
Ensure Shared Access Signature Tokens Expire Within One Hour
Low> In its original form, this control cannot be audited since SAS tokens are not stored in Azure. Cyscale checks the [SAS expiration policy](https://learn.microsoft.com/en-us/azure/storage/common/sas-expiration-policy?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fazure%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json&tabs=azure-portal#about-sas-expiration-policies) for each storage account.
Applies to
Covered asset types
Ensure sinks are configured for all Log entries
LowIt is recommended to create a sink that will export copies of all the log entries. This can
Applies to
Covered asset types
Ensure Soft Delete is Enabled for Azure Containers and Blob Storage
MediumThe Azure Storage blobs contain data like ePHI and financial information, which can be secret or personal. Data that is erroneously modified or deleted accidentally by an application or other storage account user can cause data loss or unavailability.
Applies to
Covered asset types
Ensure SQL server's TDE protector is encrypted with Customer Managed Keys (CMK)
LowTransparent Data Encryption (TDE) with Customer-managed key support provides increased transparency and control over the TDE Protector, increased security with an HSM-backed external service, and promotion of separation of duties.
Applies to
Covered asset types
Ensure SSL policies enforce minimum TLS 1.2 for HTTPS proxies
HighWeak TLS versions expose workloads to known cryptographic downgrade and interception risks.
Applies to
Covered asset types
Ensure Stackdriver Logging is set to Enabled on Kubernetes Engine Clusters
Medium**Description: **
Applies to
Covered asset types
Ensure Stackdriver Monitoring is set to Enabled on Kubernetes Engine Clusters
MediumStackdriver Monitoring to monitor signals and build operations in your Kubernetes Engine clusters. Stackdriver Monitoring can access metrics about CPU utilization, some disk traffic metrics, network traffic, and uptime information. Stackdriver Monitoring uses the Monitoring agent to access additional system resources and application services in virtual machine instances.
Applies to
Covered asset types
Ensure Storage Account Access Keys are Periodically Regenerated
MediumFor increased security, regenerate storage account access keys periodically.
Applies to
Covered asset types
Ensure Storage for Critical Data Is Encrypted with Customer Managed Keys
LowEnable sensitive data encryption at rest using Customer Managed Keys rather than Microsoft Managed Keys.
Applies to
Covered asset types
Ensure Storage logging is Enabled for Blob Service for 'Read', 'Write', and 'Delete' requests
LowThe Storage Blob service provides scalable, cost-efficient object storage in the cloud. Storage Logging happens server-side and allows details for successful and failed requests to be recorded in the storage account. These logs allow users to see the details of read, write, and delete operations against the blobs. Storage Logging log entries contain the following information about individual requests: timing information such as start time, end-to-end latency, and server latency; authentication details; concurrency information; and the sizes of the request and response messages.
Applies to
Covered asset types
Ensure Storage logging is Enabled for Queue Service for 'Read', 'Write', and 'Delete' requests
LowThe Storage Queue service stores messages that any client accessing the storage account may read. A queue can contain an unlimited number of messages, each of which can be up to 64KB in size using version 2011-08-18 or newer. Storage Logging happens server-side and allows details for successful and failed requests to be recorded in the storage account. These logs allow users to see the details of read, write, and delete operations against the queues. Storage Logging log entries contain the following information about individual requests: Timing information such as start time, end-to-end latency, server latency, authentication details, concurrency information, and the sizes of the request and response messages.
Applies to
Covered asset types
Ensure Storage Logging is Enabled for Table Service for 'Read', 'Write', and 'Delete' Requests
LowAzure Table storage is a service that stores structured NoSQL data in the cloud, providing a key/attribute store with a schema-less design. Storage Logging happens server-side and allows details for successful and failed requests to be recorded in the storage account. These logs allow users to see the details of read, write, and delete operations against the tables. Storage Logging log entries contain the following information about individual requests: timing information such as start time, end-to-end latency, and server latency; authentication details; concurrency information; and the sizes of the request and response messages.
Applies to
Covered asset types
Ensure subnetworks enable Private Google Access and Flow Logs
MediumSubnetwork-level hardening should include private service access and network telemetry for monitoring and forensic use.
Applies to
Covered asset types
Ensure that 'Auditing' is set to 'On' for applicable database instances
MediumApplies to
General guidanceEnsure that 'Auditing' Retention is 'greater than 6 months'
MediumApplies to
General guidanceEnsure that 'Enable Data Access Authentication Mode' is 'Checked'
MediumData Access Authentication Mode provides a method of uploading or exporting Virtual Machine Disks.
Applies to
Covered asset types
Ensure that 'Java version' is currently supported (if in use)
MediumOlder versions of Java may periodically be deprecated and no longer supported. To avoid potential unpatched vulnerabilities, it is recommended that you use a supported version of Java for app services.
Applies to
Covered asset types
Ensure that 'Notify about alerts with the following severity' is set to 'High'
MediumEnables emailing security alerts to the subscription owner or other designated security contact.
Applies to
Covered asset types
Ensure that 'OS and Data' disks are encrypted with Customer Managed Keys (CMK)
MediumEnsure that OS disks (boot volumes) and data disks (non-boot volumes) are encrypted with CMK (Customer Managed Keys). Customer Managed Keys can be used with either ADE (Azure Disk Encryption) or SSE (Server Side Encryption).
Applies to
Covered asset types
Ensure that 'PHP version' is currently supported (if in use)
MediumPeriodically, older versions of PHP may be deprecated and no longer supported. Using a supported version of PHP for app services is recommended to avoid potential unpatched vulnerabilities.
Applies to
Covered asset types
Ensure that 'Python version' is currently supported (if in use)
MediumPeriodically, newer versions are released for Python software either due to security flaws or to include additional functionality. Using the latest Python version for web apps is recommended in order to take advantage of security fixes, if any, and/or new functionalities of the newer version.
Applies to
Covered asset types
Ensure that 'Secure transfer required' is set to 'Enabled'
HighApplies to
General guidanceEnsure that 'TDE' is set to 'Enabled' for applicable database instances
Medium### Description
Applies to
Covered asset types
Ensure that 'Unattached disks' are encrypted
MediumApplies to
Covered asset types
Ensure that 'Unattached disks' are encrypted with Customer Managed Keys (CMK)
MediumEnsure that unattached disks in a subscription are encrypted with a Customer Managed Key (CMK).
Applies to
Covered asset types
Ensure that 'Virtual Machine's disk' are encrypted
Medium### Description
Applies to
Covered asset types
Ensure that ActionTrail is configured to export copies of all Log entries
Medium### Description
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Create or Update Network Security Group
LowCreate an Activity Log Alert for the Create or Update Network Security Group event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Create or Update Public IP Address rule
LowCreate an Activity Log Alert for the Create or Update Public IP Addresses event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Create or Update Security Solution
LowCreate an activity log alert for the Create or Update Security Solution event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Create or Update SQL Server Firewall Rule
LowCreate an activity log alert for the Create or Update SQL Server Firewall Rule events.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Create Policy Assignment
LowCreate an activity log alert for the Create Policy Assignment event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Delete Network Security Group
LowCreate an activity log alert for the "Delete Network Security Group" event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Delete Policy Assignment
LowCreate an activity log alert for the "Delete Policy Assignment" event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Delete Public IP Address rule
LowCreate an Activity Log Alert for the Delete Public IP Addresses event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Delete Security Solution
LowCreate an activity log alert for the "Delete Security Solution" event.
Applies to
Covered asset types
Ensure that Activity Log Alert exists for Delete SQL Server Firewall Rule
LowCreate an activity log alert for the Delete SQL Server Firewall Rule event.
Applies to
Covered asset types
Ensure that all assets are installed with security agent
MediumApplies to
General guidanceEnsure that all Namespaces have Network Policies defined
MediumUse network policies to isolate traffic in your cluster network.
Applies to
Covered asset types
Ensure that all the expired SSL/TLS certificates stored in AWS IAM are removed
MediumSSL/TLS server certificate is required to enable HTTPS connections to your website or application in AWS. You can use ACM or IAM to store and deploy server certificates. IAM securely encrypts your private keys and stores the encrypted version in IAM SSL certificate storage. IAM supports deploying server certificates in all regions, but you must obtain your certificate from an external provider for use with AWS.
Applies to
Covered asset types
Ensure that Asset Fingerprint automatically collects asset fingerprint data
MediumApplies to
General guidanceEnsure that Automatic Quarantine is enabled
MediumApplies to
General guidanceEnsure that AWS Lambda functions do not share the same AWS IAM execution role
MediumIt is recommended to have one IAM role per each Lambda function in order to follow the Principle of Least Privilege.
Applies to
Covered asset types
Ensure that Config Assessment is granted with privilege
MediumApplies to
General guidanceEnsure that corporate login credentials are used instead of Gmail accounts
MediumUse corporate login credentials instead of personal accounts, such as Gmail accounts.
Applies to
Covered asset types
Ensure that default service accounts are not actively used
LowThe default service account should not be used to ensure that rights granted to
Applies to
Covered asset types
Ensure that Elasticsearch database is not exposed to the internet (ports 9200 and/or 9300)
MediumServices and databases store data that may be sensitive, protected by law, subject to regulatory requirements or compliance standards.
Applies to
Covered asset types
Ensure that encryption is enabled for RDS Instances
MediumAmazon RDS encrypted DB instances use the industry standard AES-256 encryption algorithm to encrypt your data on the server that hosts your Amazon RDS DB instances. After your data is encrypted, Amazon RDS handles authentication of access and decryption of your data transparently with a minimal impact on performance.
Applies to
Covered asset types
Ensure that Endpoint Protection for all Virtual Machines is installed
LowInstall endpoint protection for all virtual machines.
Applies to
General guidanceEnsure that IAM Access analyzer is enabled for all regions
MediumEnable IAM Access analyzer for IAM policies about all resources in each region.
Applies to
Covered asset types
Ensure that instances are not configured to use the default service account with full access to all Cloud APIs
HighTo support principle of least privileges and prevent potential privilege escalation it is recommended that instances are not assigned to default service account `Compute Engine default service account` with Scope `Allow full access to all Cloud APIs`.
Applies to
Covered asset types
Ensure that IP forwarding is not enabled on Instances
MediumCompute Engine instance cannot forward a packet unless the source IP address of the packet matches the IP address of the instance. Similarly, GCP won't deliver a packet whose destination IP address is different than the IP address of the instance receiving the packet. However, both capabilities are required if you want to use instances to help route packets.
Applies to
Covered asset types
Ensure that logging is enabled for Cloud Storage buckets
MediumStorage Access Logging generates a log that contains access records for each request made to the Storage bucket. An access log record contains details about the request, such as the request type, the resources specified in the request worked, and the time and date the request was processed. Cloud Storage offers access logs and storage logs in the form of CSV files that can be downloaded and used for analysis/incident response. Access logs provide information for all of the requests made on a specified bucket and are created hourly, while the daily storage logs provide information about the storage consumption of that bucket for the last day. The access logs and storage logs are automatically created as new objects in a bucket that you specify. An access log record contains details about the request, such as the request type, the resources specified in the request worked, and the time and date the request was processed. While storage Logs helps to keep track the amount of data stored in the bucket. It is recommended that storage Access Logs and Storage logs are enabled for every Storage Bucket.
Applies to
Covered asset types
Ensure that logging is enabled for OSS buckets
MediumApplies to
Covered asset types
Ensure that Logstore data retention period is set to 365 days or greater
MediumApplies to
General guidanceEnsure that MySql database instances do not allow root login from any Host
LowIt is recommended that root access to a MySql Database Instance should be allowed only through specific white-listed trusted IPs.
Applies to
Covered asset types
Ensure that notification is enabled on all high risk items
MediumApplies to
General guidanceEnsure that object versioning is enabled on log-buckets
Low**Description**
Applies to
Covered asset types
Ensure that Object-level logging for read events is enabled for S3 bucket
LowS3 object-level API operations such as GetObject, DeleteObject, and PutObject are called data events. By default, CloudTrail trails don't log data events and so it is recommended to enable Object-level logging for S3 buckets.
Applies to
Covered asset types
Ensure that Object-level logging for write events is enabled for S3 bucket
LowS3 object-level API operations such as GetObject, DeleteObject, and PutObject are called data events. By default, CloudTrail trails don't log data events and so it is recommended to enable Object-level logging for S3 buckets.
Applies to
Covered asset types
Ensure that RDS instances are not open to the world
MediumApplies to
Ensure that Resource Locks are set for mission critical Azure resources
LowResource Manager Locks provide a way for administrators to lock down Azure resources to prevent deletion of, or modifications to, a resource. These locks sit outside of the Role Based Access Controls (RBAC) hierarchy and, when applied, will place restrictions on the resource for all users. These locks are very useful when there is an important resource in a subscription that users should not be able to delete or change. Locks can help prevent accidental and malicious changes or deletion
Applies to
General guidanceEnsure that S3 Buckets are configured with 'Block public access (bucket settings)'
MediumAmazon S3 provides *Block public access (bucket settings)* and *Block public access (account settings)* to help you manage public access to Amazon S3 resources. By default, S3 buckets and objects are created with public access disabled. However with an IAM principle with sufficient S3 permissions can enable public access at the bucket and/or object level.
Applies to
Covered asset types
Ensure that scheduled vulnerability scan is enabled on all servers
MediumApplies to
General guidanceEnsure that Security Center is Advanced or Enterprise Edition
MediumApplies to
General guidanceEnsure that Separation of duties is enforced while assigning KMS related roles to users
MediumIt is recommended that the principle of 'Separation of Duties' is enforced while assigning KMS related roles to users.
Applies to
Covered asset types
Ensure that Service Account Tokens are only mounted where necessary
MediumService accounts tokens should not be mounted in pods except where the workload running in the pod explicitly needs to communicate with the API server.
Applies to
Covered asset types
Ensure that the cluster-admin role is only used where required
HighThe RBAC role `cluster-admin` provides wide-ranging powers over the environment and should be used only where and when needed.
Applies to
Covered asset types
Ensure that the endpoint protection for all Virtual Machines is installed
MediumApplies to
General guidanceEnsure that the latest OS Patches for all Virtual Machines are applied
MediumApplies to
General guidanceEnsure that the shared URL signature expires within an hour
MediumApplies to
General guidanceEnsure that there are only GCP-managed service account keys for each service account
MediumUser-managed service accounts should not have user-managed keys.
Applies to
Covered asset types
Ensure that URL signature is allowed only over https
MediumApplies to
General guidanceEnsure that Webshell detection is enabled on all web servers
MediumApplies to
General guidanceEnsure the 'contained database authentication' database flag for Cloud SQL on the SQL Server instance is set to 'off'
MediumIt is recommended to set `contained database authentication` database flag for Cloud SQL SQL Server instance to `off`.
Applies to
Covered asset types
Ensure the 'cross db ownership chaining' database flag for Cloud SQL on the SQL Server instance is set to 'Off'
MediumIt is recommended to set `cross db ownership chaining` database flag for Cloud SQL Server instance to off.
Applies to
Covered asset types
Ensure the 'local_infile' database flag for a Cloud SQL MySQL instance is set to 'Off'
LowIt is recommended to set the `local_infile` database flag for a Cloud SQL MySQL instance to `off`.
Applies to
Covered asset types
Ensure the 'log_connections' database flag for Cloud SQL PostgreSQL instance is set to 'On'
LowEnabling the `log_connections` setting causes each attempted connection to the server to be logged, along with successful completion of client authentication. This parameter cannot be changed after the session starts.
Applies to
Covered asset types
Ensure the 'log_disconnections' database flag for Cloud SQL PostgreSQL instance is set to 'On'
LowEnabling the `log_disconnections` setting logs the end of each session, including the session duration.
Applies to
Covered asset types
Ensure the 'log_min_duration_statement' database flag for Cloud SQL PostgreSQL instance is set to '-1' (Disabled)
LowThe `log_min_duration_statement` flag defines the minimum amount of execution time of a statement in milliseconds where the total duration of the statement is logged. Ensure that `log_min_duration_statement` is disabled, i.e., a value of `-1` is set.
Applies to
Covered asset types
Ensure the 'log_min_messages' database flag for Cloud SQL PostgreSQL instance is set appropriately
LowThe `log_min_messages` flag defines the minimum message severity level that is considered as an error statement. Messages for error statements are logged with the SQL statement. Valid values include `DEBUG5`, `DEBUG4`, `DEBUG3`, `DEBUG2`, `DEBUG1`, `INFO`, `NOTICE`, `WARNING`, `ERROR`, LOG, FATAL, and PANIC. Each severity level includes the subsequent levels mentioned above. ERROR is considered the best practice setting. Changes should only be made in accordance with the organization's logging policy.
Applies to
Covered asset types
Ensure the Cloud SQL database instances require all incoming connections to use SSL
MediumIt is recommended to enforce all incoming connections to SQL database instance to use SSL.
Applies to
Covered asset types
Ensure the default firewall does not have any default rules besides http and https
Medium### Overview
Applies to
Covered asset types
Ensure the default network does not exist in a project
HighTo prevent use of `default` network, a project should not have a `default` network.
Applies to
Covered asset types
Ensure the default security group of every VPC restricts all traffic
MediumA VPC comes with a default security group whose initial settings deny all inbound traffic, allow all outbound traffic, and allow all traffic between instances assigned to the security group. If you don't specify a security group when you launch an instance, the instance is automatically assigned to this default security group. Security groups provide stateful filtering of ingress/egress network traffic to AWS resources. It is recommended that the default security group restrict all traffic.
Applies to
Covered asset types
Ensure the Expiration Date is set for Key Vault Secrets
MediumEnsure that all Secrets in Azure Key Vaults have an expiration date set.
Applies to
Covered asset types
Ensure the Expiration Date is set for Key Vaults Keys
MediumEnsure that all Keys in Azure Key Vaults have an expiration date set.
Applies to
Covered asset types
Ensure the OSS used to store ActionTrail logs is not publicly accessible
MediumApplies to
Covered asset types
Ensure the S3 bucket used to store CloudTrail logs is not publicly accessible
HighCloudTrail logs a record of every API call made in your AWS account. These logs file are stored in an S3 bucket. It is recommended that the bucket policy, or access control list (ACL), applied to the S3 bucket that CloudTrail logs to prevents public access to the CloudTrail logs.
Applies to
Covered asset types
Ensure the security groups are configured with fine grained rules
MediumApplies to
General guidanceEnsure the storage account storing activity logs is encrypted with Customer Managed Key (CMK)
MediumStorage accounts with the activity log exports can be configured to use Customer Managed Keys (CMK).
Applies to
Covered asset types
Ensure the web app has 'Client Certificates (Incoming client certificates)' set to 'On'
MediumClient certificates allow for the app to request a certificate for incoming requests. Only clients that have a valid certificate will be able to reach the app.
Applies to
Covered asset types
Ensure there are no weak password policies
MediumThis control looks for password policies that do not require at least a length of 14 characters, one lowercase letter, one uppercase letter, one numeric character, one symbol, and that allows password reuse.
Applies to
Covered asset types
Ensure there are no workloads with exploitable vulnerabilities
Medium### Overview
Applies to
Covered asset types
Ensure there is only one active access key available for any single IAM user
MediumAccess keys are long-term credentials for an IAM user or the AWS account root user. You can use access keys to sign programmatic requests to the AWS CLI or AWS API (directly or using the AWS SDK).
Applies to
Covered asset types
Ensure Trusted Launch is enabled on Virtual Machines
MediumWhen **Secure Boot** and **vTPM** are enabled together, they provide a strong foundation for protecting your VM from boot attacks. For example, if an attacker attempts to replace the bootloader with a malicious version, Secure Boot will prevent the VM from booting. If the attacker is able to bypass Secure Boot and install a malicious bootloader, vTPM can detect the intrusion and alert you.
Applies to
Covered asset types
Ensure Trusted Locations Are Defined
LowMicrosoft Entra ID Conditional Access allows an organization to configure `Named locations` and configure whether those locations are trusted or untrusted. These settings provide organizations the means to specify `Geographical locations` for use in conditional access policies, or define actual IP addresses and IP ranges and whether or not those IP addresses and/or ranges are trusted by the organization.
Applies to
Covered asset types
Ensure UDP access from the Internet is evaluated and restricted
MediumNetwork security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restricted wherever they are not explicitly required.
Applies to
Covered asset types
Ensure unencrypted LDAP port (389) is not exposed to the internet
Medium### Overview
Applies to
Covered asset types
Ensure used KMSKeys are not exposed through publicly accessible VMs
High### Overview
Applies to
Covered asset types
Ensure user-managed/external keys for service accounts are rotated every 90 days or less
MediumService Account keys consist of a key ID (Private_key_Id) and Private key, which are used to sign programmatic requests that you make to Google cloud services accessible to that particular Service account. It is recommended that all Service Account keys are regularly rotated.
Applies to
Covered asset types
Ensure users not logged on for 90 days or longer are disabled for console logon
Medium### Description
Applies to
Covered asset types
Ensure Users With Access to Datastores Have MFA/2SV
MediumMulti-factor authentication (MFA) is an important tool in protecting corporate resources. MFA, also called 2-step verification (2SV), requires users to verify their identity through something they know (such as a password) plus something they have (such as a physical key or access code).
Applies to
Covered asset types
Ensure Virtual Machines are utilizing Managed Disks
LowMigrate BLOB based VHDs to Managed Disks on Virtual Machines to exploit the default features of this configuration. The features include:
Applies to
Covered asset types
Ensure virtual network flow log service is enabled
LowApplies to
General guidanceEnsure VM disks for critical VMs are encrypted with Customer-Supplied Encryption Keys (CSEK)
LowCustomer-Supplied Encryption Keys (CSEK) are a feature in Google Cloud Storage and Google Compute Engine. If you supply your own encryption keys, Google uses your key to protect the Google-generated keys used to encrypt and decrypt your data. By default, Google Compute Engine encrypts all data at rest. Compute Engine handles and manages this encryption for you without any additional actions on your part. However, if you wanted to control and manage this encryption yourself, you can provide your own encryption keys.
Applies to
Covered asset types
Ensure VMs are not publicly accessible
MediumCyscale looks for virtual machines reachable from the internet on administration ports (22, 3389). To reduce the risk of data breaches, configure the security groups/firewalls to allow access only from specific sources or re-consider whether you really need SSH/RDP access.
Applies to
Covered asset types
Ensure VPC flow logging is enabled in all VPCs
LowVPC Flow Logs is a feature that enables you to capture information about the IP traffic going to and from network interfaces in your VPC. After you've created a flow log, you can view and retrieve its data in Amazon CloudWatch Logs. It is recommended that VPC Flow Logs be enabled for packet "Rejects" for VPCs.
Applies to
Covered asset types
Ensure VPC flow logging is enabled in all VPCs
LowApplies to
General guidanceEnsure VPC Flow Logs are enabled for production VPCs
MediumVPC Flow Logs capture network metadata that is essential for incident response and threat hunting.
Applies to
Covered asset types
Ensure VPC Flow logs is enabled for every subnet in a VPC Network
LowFlow Logs is a feature that enables you to capture information about the IP traffic going to and from network interfaces in your VPC Subnets. After you've created a flow log, you can view and retrieve its data in Stackdriver Logging. It is recommended that Flow Logs be enabled for every business critical VPC subnet.
Applies to
Covered asset types
Ensure weak TLS Protocols are not used for ELB
Medium### Overview
Applies to
Covered asset types
Ensure Web App is using the latest version of TLS encryption
MediumThe TLS (Transport Layer Security) protocol secures transmission of data over the internet using standard encryption technology. Encryption should be set with the latest version of TLS. App service allows TLS 1.2 by default, which is the recommended TLS level by industry standards such as PCI DSS.
Applies to
Covered asset types
Ensure Web App Uses HTTP 2.0
MediumPeriodically, newer HTTP versions are released, either due to security flaws or to include additional functionality. Apps should use the latest HTTP version to take advantage of any security fixes and/or new functionalities of the newer version.
Applies to
Covered asset types
Ensure Web Application Firewall access and security log service is enabled
MediumApplies to
Covered asset types
Identities allowing external access
MediumIdentities that can be assumed or impersonated by external principals create a direct cross-tenant access path.
Applies to
Covered asset types
Identity Provider Inactive Users
MediumCheck Identity Provider Users with last login older than 30 days
Applies to
Covered asset types
Identity Provider Super Administrators
MediumGet super administrators from added identity provider connectors
Applies to
Covered asset types
Identity Provider Users With Old Password
MediumGet Identity Provider Users with passwords older than 90 days
Applies to
Covered asset types
Launch Templates Should Not Allow Metadata Response Hop Limit Higher Than 1
MediumLaunch templates should not allow a metadata hop count greater than 1 when source/destination check is disabled.
Applies to
Covered asset types
Launch Templates Should Only Allow IMDSv2
MediumWith IMDSv2, every request is now protected by session authentication. A session begins and ends a series of requests that software running on an EC2 instance uses to access the locally-stored EC2 instance metadata and credentials. The software starts a session with a simple HTTP PUT request to IMDSv2.
Applies to
Covered asset types
Launch Templates with Disk Configuration Should Encrypt the Disks
Medium### Overview
Applies to
Covered asset types
Limit the use of bind, impersonate and escalate permissions
MediumCluster roles and roles with the impersonate, bind or escalate permissions should not be granted unless strictly required. Each of these permissions allow a particular subject to escalate their privileges beyond those explicitly granted by cluster administrators.
Applies to
Covered asset types
Maintain current contact details
Low### Overview
Applies to
General guidanceMake sure secrets are not passed as container environment variables
HighAmazon Elastic Container Service (ECS) [task definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) are JSON files that describe how a Docker container should be launched within an ECS cluster.
Applies to
Covered asset types
Minimize access to create pods
LowThe ability to create pods in a namespace can provide a number of opportunities for privilege escalation, such as assigning privileged service accounts to these pods or mounting hostPaths with access to sensitive data (unless Pod Security Policies are implemented to restrict this access)
Applies to
Covered asset types
Minimize access to secrets
LowThe Kubernetes API stores secrets, which may be service account tokens for the Kubernetes API or credentials used by workloads in the cluster. Access to these secrets should be restricted to the smallest possible group of users to reduce the risk of privilege escalation.
Applies to
Covered asset types
Minimize cluster access to read-only for Amazon ECR
MediumConfigure the Cluster Service Account with Storage Object Viewer Role to only allow
Applies to
Covered asset types
Minimize the admission of containers which use HostPorts
HighDo not generally permit containers which require the use of HostPorts.
Applies to
Covered asset types
Minimize the admission of containers wishing to share the host IPC namespace
MediumA container running in the host's IPC namespace can use IPC to interact with processes outside the container.
Applies to
Covered asset types
Minimize the admission of containers wishing to share the host network namespace
MediumA container running in the host's network namespace could access the local loopback device, and could access network traffic to and from other pods.
Applies to
Covered asset types
Minimize the admission of containers wishing to share the host process ID namespace
MediumA container running in the host's PID namespace can inspect processes running outside the container. If the container also has access to ptrace capabilities this can be used to escalate privileges outside of the container.
Applies to
Covered asset types
Minimize the admission of containers with allowPrivilegeEscalation
MediumDo not generally permit containers to be run with the `allowPrivilegeEscalation` flag set
Applies to
Covered asset types
Minimize the admission of privileged containers
HighDo not generally permit containers to be run with the `securityContext.privileged` flag
Applies to
Covered asset types
Minimize wildcard use in Roles and ClusterRoles
HighKubernetes Roles and ClusterRoles provide access to resources based on sets of objects and actions that can be taken on those objects. It is possible to set either of these to be the wildcard "*" which matches all items.
Applies to
Covered asset types
Prefer using a container-optimized OS when possible
LowA container-optimized OS is an operating system image that is designed for secure managed hosting of containers on compute instances.
Applies to
Covered asset types
Prefer using secrets as files over secrets as environment variables
MediumKubernetes supports mounting secrets as data volumes or as environment variables. Minimize the use of environment variable secrets.
Applies to
Covered asset types
Restrict Access to the Control Plane Endpoint
HighEnable Endpoint Private Access to restrict access to the cluster's control plane to only
Applies to
Covered asset types
SageMaker Notebooks Should Not Allow Root Access
HighBecause users with root access have administrator privileges, users can access and edit all files on a notebook instance with root access enabled.
Applies to
Covered asset types
SageMaker Notebooks Should Only Allow IMDSv2
MediumWith IMDSv2, every request is now protected by session authentication. A session begins and ends a series of requests that software running on an EC2 instance uses to access the locally stored EC2 instance metadata and credentials. The software starts a session with a simple HTTP PUT request to IMDSv2.
Applies to
Covered asset types
Service Identities attached to publicly accessible workloads
MediumService identities attached to public-facing workloads increase blast radius.
Applies to
Covered asset types
Service Identities With Access to Everything
Medium### Overview
Applies to
Covered asset types
The default namespace should not be used
LowKubernetes provides a default namespace, where objects are placed if no namespace is specified for them. Placing objects in this namespace makes application of RBAC and other controls more difficult.
Applies to
Covered asset types
Unused Service Identities
MediumUnused service identities are unnecessary attack surface.
Applies to
Covered asset types
Use Entra ID Client Authentication and Azure RBAC for Cosmos DB
MediumCosmos DB can use tokens or Entra ID for client authentication which in turn will use Azure RBAC for authorization. Using Entra ID is significantly more secure because Entra ID handles the credentials and allows for MFA and centralized management, and the Azure RBAC is better integrated with the rest of Azure.
Applies to
Covered asset types
Users Should Have Multi-Factor Authentication (MFA/2SV)
MediumMulti-factor authentication (MFA) is an important tool in protecting corporate resources. MFA, also called 2-step verification (2SV), requires users to verify their identity through something they know (such as a password) plus something they have (such as a physical key or access code).
Applies to
Covered asset types
Microsoft Azure
Kubernetes
Alibaba Cloud
AWS
Google Cloud
Google Workspace
Okta