Checks
Browse individual security checks available in the Prowler Registry. Filter by cloud provider, severity, or search by check ID.
Browse individual security checks available in the Prowler Registry. Filter by cloud provider, severity, or search by check ID.
AWS-0054
Plain HTTP is unencrypted and human-readable. This means that if a malicious actor was to eavesdrop on your connection, they would be able to see all of your data flowing back and forth. You should use HTTPS, which is HTTP over an encrypted (TLS) connection, meaning eavesdroppers cannot read your traffic.
IAM account password policies should prevent the reuse of passwords.
The account password policy should be set to prevent using any of the last five used passwords.
IAM account password policies should ensure that passwords content including at least one lowercase character.
IAM account password policies should ensure that passwords content including at least one number.
IAM account password policies should ensure that passwords content including a symbol.
,
IAM account password policies should ensure that passwords content including at least one uppercase character.
IAM account password policies should have a maximum age specified.
The account password policy should be set to expire passwords after 90 days or less.
IAM account password policies should ensure that passwords have a minimum length.
The account password policy should be set to enforce minimum password length of at least 14 characters.
AWS-0064
Kinesis streams should be encrypted to ensure sensitive data is kept private. Additionally, non-default KMS keys should be used so granularity of access control can be ensured.
You should configure your KMS keys to auto rotate to maintain security and defend against compromise.
X-Ray tracing enables end-to-end debugging and analysis of all function activity. This will allow for identifying bottlenecks, slow downs and timeouts.
When the principal is an AWS service, the ARN of the specific resource within that service to grant permission to. Without this, any resource from principal will be granted permission – even if that resource is from another account. For S3, this should be the ARN of the S3 Bucket. For CloudWatch Events, this should be the ARN of the CloudWatch Events Rule. For API Gateway, this should be the ARN of the API
Logging should be enabled to allow tracing of issues and activity to be investigated more fully. Logs provide additional information and context which is often invalauble during investigation
Logging should be enabled to allow tracing of issues and activity to be investigated more fully. Logs provide additional information and context which is often invalauble during investigation
Public access of the MQ broker should be disabled and only allow routes to applications that require access.
Encryption should be forced for Kafka clusters, including for communication between nodes. This ensure sensitive data is kept private.
Managed streaming for Kafka can log to Cloud Watch, Kinesis Firehose and S3, at least one of these locations should be logged to
Neptune does not have auditing by default. To ensure that you are able to accurately audit the usage of your Neptune instance you should enable export logs.
Encryption of Neptune storage ensures that if their is compromise of the disks, the data is still protected.
RDS backup retention for clusters defaults to 1 day, this may not be enough to identify and respond to an issue. Backup retention periods should be set to a period that is a balance on cost and limiting risk.
Amazon RDS uses the AWS managed key for your new DB instance. For complete control over KMS keys, including establishing and maintaining their key policies, IAM policies, and grants, enabling and disabling them, and rotating their cryptographic material, use a customer managed keys.
The encryption key specified in performance_insights_kms_key_id references a KMS ARN
Encryption should be enabled for an RDS Aurora cluster. When enabling encryption by setting the kms_key_id, the storage_encrypted must also be set to true.
Encryption should be enabled for an RDS Database instances. When enabling encryption by setting the kms_key_id.
Security groups and security group rules should include a description for auditing purposes. Simplifies auditing, debugging, and managing security groups.