-
Notifications
You must be signed in to change notification settings - Fork 0
Description
2026-02-20T00:54:07Z INFO [misconfig] Misconfiguration scanning is enabled
2026-02-20T00:54:07Z INFO [checks-client] Need to update the checks bundle
2026-02-20T00:54:07Z INFO [checks-client] Downloading the checks bundle...
235.65 KiB / 235.65 KiB [-------------------------------------------------------------------------------------------------] 100.00% 13.61 MiB p/s 200ms
2026-02-20T00:54:09Z INFO [terraform scanner] Scanning root module file_path="."
2026-02-20T00:54:09Z WARN [terraform parser] Variable values were not found in the environment or variable files. Evaluating may not work correctly. module="root" variables="aws_ses_access_key_id, aws_ses_secret_access_key, db_admin_password, db_admin_user, dev_cookie_secret, dev_db_password, dev_jwt_secret, homolog_cookie_secret, homolog_db_password, homolog_jwt_secret, mysql_root_password, prod_cookie_secret, prod_db_name, prod_db_password, prod_db_user, prod_jwt_secret"
2026-02-20T00:54:09Z INFO Detected config files num=6
Report Summary
┌────────────────────────────────┬───────────┬───────────────────┐
│ Target │ Type │ Misconfigurations │
├────────────────────────────────┼───────────┼───────────────────┤
│ . │ terraform │ 0 │
├────────────────────────────────┼───────────┼───────────────────┤
│ ec2-databases.tf │ terraform │ 2 │
├────────────────────────────────┼───────────┼───────────────────┤
│ modules/backend/api-gateway.tf │ terraform │ 5 │
├────────────────────────────────┼───────────┼───────────────────┤
│ modules/backend/lambda.tf │ terraform │ 1 │
├────────────────────────────────┼───────────┼───────────────────┤
│ security-groups.tf │ terraform │ 4 │
├────────────────────────────────┼───────────┼───────────────────┤
│ vpc.tf │ terraform │ 3 │
└────────────────────────────────┴───────────┴───────────────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)
ec2-databases.tf (terraform)
Tests: 2 (SUCCESSES: 0, FAILURES: 2)
Failures: 2 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 2, CRITICAL: 0)
AWS-0028 (HIGH): Instance does not require IMDS access to require a token.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
IMDS v2 (Instance Metadata Service) introduced session authentication tokens which improve security when talking to IMDS.
By default aws_instance resource sets IMDS session auth tokens to be optional.
To fully protect IMDS you need to enable session tokens by using metadata_options block and its http_tokens variable set to required.
See https://avd.aquasec.com/misconfig/aws-0028
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
ec2-databases.tf:26-49
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
26 ┌ resource "aws_instance" "database" {
27 │ for_each = var.database_environments
28 │
29 │ ami = "ami-0c614dee691cbbf37" # Amazon Linux 2
30 │ instance_type = "t2.micro"
31 │ vpc_security_group_ids = [aws_security_group.database_sg.id]
32 │ subnet_id = local.database_configs[each.key].subnet_id
33 │ iam_instance_profile = aws_iam_instance_profile.ssm_instance_profile.name
34 └
..
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0131 (HIGH): Root block device is not encrypted.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Block devices should be encrypted to ensure sensitive data is held securely at rest.
See https://avd.aquasec.com/misconfig/aws-0131
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
ec2-databases.tf:26-49
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
26 ┌ resource "aws_instance" "database" {
27 │ for_each = var.database_environments
28 │
29 │ ami = "ami-0c614dee691cbbf37" # Amazon Linux 2
30 │ instance_type = "t2.micro"
31 │ vpc_security_group_ids = [aws_security_group.database_sg.id]
32 │ subnet_id = local.database_configs[each.key].subnet_id
33 │ iam_instance_profile = aws_iam_instance_profile.ssm_instance_profile.name
34 └
..
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/api-gateway.tf (terraform)
Tests: 5 (SUCCESSES: 0, FAILURES: 5)
Failures: 5 (UNKNOWN: 0, LOW: 3, MEDIUM: 1, HIGH: 1, CRITICAL: 0)
AWS-0001 (MEDIUM): Access logging is not configured.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
API Gateway stages should have access log settings block configured to track all access to a particular stage. This should be applied to both v1 and v2 gateway stages.
See https://avd.aquasec.com/misconfig/aws-0001
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/api-gateway.tf:93-97
via main.tf:95-106 (module.abnmo_svm_backend["development"])
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
93 ┌ resource "aws_api_gateway_stage" "this" {
94 │ deployment_id = aws_api_gateway_deployment.this.id
95 │ rest_api_id = aws_api_gateway_rest_api.this.id
96 │ stage_name = var.environment
97 └ }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0003 (LOW): X-Ray tracing is not enabled.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
X-Ray tracing enables end-to-end debugging and analysis of all API Gateway HTTP requests.
See https://avd.aquasec.com/misconfig/aws-0003
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/api-gateway.tf:93-97
via main.tf:95-106 (module.abnmo_svm_backend["development"])
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
93 ┌ resource "aws_api_gateway_stage" "this" {
94 │ deployment_id = aws_api_gateway_deployment.this.id
95 │ rest_api_id = aws_api_gateway_rest_api.this.id
96 │ stage_name = var.environment
97 └ }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0004 (LOW): Authorization is not enabled for this method.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
API Gateway methods should generally be protected by authorization or api key. OPTION verb calls can be used without authorization
See https://avd.aquasec.com/misconfig/aws-0004
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/api-gateway.tf:23
via modules/backend/api-gateway.tf:19-24 (aws_api_gateway_method.proxy)
via main.tf:95-106 (module.abnmo_svm_backend["development"])
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
19 resource "aws_api_gateway_method" "proxy" {
20 rest_api_id = aws_api_gateway_rest_api.this.id
21 resource_id = aws_api_gateway_resource.proxy.id
22 http_method = "ANY"
23 [ authorization = "NONE"
24 }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0004 (LOW): Authorization is not enabled for this method.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
API Gateway methods should generally be protected by authorization or api key. OPTION verb calls can be used without authorization
See https://avd.aquasec.com/misconfig/aws-0004
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/api-gateway.tf:131
via modules/backend/api-gateway.tf:127-132 (aws_api_gateway_method.options_proxy)
via main.tf:95-106 (module.abnmo_svm_backend["development"])
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
127 resource "aws_api_gateway_method" "options_proxy" {
128 rest_api_id = aws_api_gateway_rest_api.this.id
129 resource_id = aws_api_gateway_resource.proxy.id
130 http_method = "OPTIONS"
131 [ authorization = "NONE"
132 }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0005 (HIGH): Domain name is configured with an outdated TLS policy.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
You should not use outdated/insecure TLS versions for encryption. You should be using TLS v1.2+.
See https://avd.aquasec.com/misconfig/aws-0005
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/api-gateway.tf:100-114
via main.tf:95-106 (module.abnmo_svm_backend["development"])
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
100 ┌ resource "aws_api_gateway_domain_name" "api" {
101 │ count = var.custom_domain_name != null ? 1 : 0
102 │
103 │ domain_name = var.custom_domain_name
104 │ regional_certificate_arn = var.certificate_arn
105 │
106 │ endpoint_configuration {
107 │ types = ["REGIONAL"]
108 └ }
...
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/lambda.tf (terraform)
Tests: 1 (SUCCESSES: 0, FAILURES: 1)
Failures: 1 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
AWS-0066 (LOW): Function does not have tracing enabled.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
X-Ray tracing enables end-to-end debugging and analysis of all function activity. This will allow for identifying bottlenecks, slow downs and timeouts.
See https://avd.aquasec.com/misconfig/aws-0066
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modules/backend/lambda.tf:1-21
via main.tf:95-106 (module.abnmo_svm_backend["development"])
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 ┌ resource "aws_lambda_function" "this" {
2 │ function_name = "${var.project_name}-lambda-${var.environment}"
3 │ role = aws_iam_role.lambda_exec_role.arn
4 │ handler = var.lambda_handler
5 │ runtime = var.lambda_runtime
6 │ filename = "${path.module}/placeholder.zip"
7 │ source_code_hash = filebase64sha256("${path.module}/placeholder.zip")
8 │ timeout = var.timeout
9 └
..
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
security-groups.tf (terraform)
Tests: 4 (SUCCESSES: 0, FAILURES: 4)
Failures: 4 (UNKNOWN: 0, LOW: 3, MEDIUM: 0, HIGH: 0, CRITICAL: 1)
AWS-0104 (CRITICAL): Security group rule allows unrestricted egress to any IP address.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Opening up ports to connect out to the public internet is generally to be avoided. You should restrict access to IP addresses or ranges that are explicitly required where possible.
See https://avd.aquasec.com/misconfig/aws-0104
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
security-groups.tf:28
via security-groups.tf:24-29 (egress)
via security-groups.tf:2-34 (aws_security_group.database_sg)
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2 resource "aws_security_group" "database_sg" {
.
28 [ cidr_blocks = ["0.0.0.0/0"]
..
34 }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0124 (LOW): Security group rule does not have a description.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Security group rules should include a description for auditing purposes.
Simplifies auditing, debugging, and managing security groups.
See https://avd.aquasec.com/misconfig/aws-0124
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
security-groups.tf:8-13
via security-groups.tf:2-34 (aws_security_group.database_sg)
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2 resource "aws_security_group" "database_sg" {
.
8 ┌ ingress {
9 │ from_port = 3306
10 │ to_port = 3306
11 │ protocol = "tcp"
12 │ cidr_blocks = ["0.0.0.0/0"]
13 └ }
..
34 }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0124 (LOW): Security group rule does not have a description.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Security group rules should include a description for auditing purposes.
Simplifies auditing, debugging, and managing security groups.
See https://avd.aquasec.com/misconfig/aws-0124
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
security-groups.tf:16-21
via security-groups.tf:2-34 (aws_security_group.database_sg)
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2 resource "aws_security_group" "database_sg" {
.
16 ┌ ingress {
17 │ from_port = 443
18 │ to_port = 443
19 │ protocol = "tcp"
20 │ cidr_blocks = ["0.0.0.0/0"]
21 └ }
..
34 }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0124 (LOW): Security group rule does not have a description.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Security group rules should include a description for auditing purposes.
Simplifies auditing, debugging, and managing security groups.
See https://avd.aquasec.com/misconfig/aws-0124
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
security-groups.tf:24-29
via security-groups.tf:2-34 (aws_security_group.database_sg)
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2 resource "aws_security_group" "database_sg" {
.
24 ┌ egress {
25 │ from_port = 0
26 │ to_port = 0
27 │ protocol = "-1"
28 │ cidr_blocks = ["0.0.0.0/0"]
29 └ }
..
34 }
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
vpc.tf (terraform)
Tests: 3 (SUCCESSES: 0, FAILURES: 3)
Failures: 3 (UNKNOWN: 0, LOW: 0, MEDIUM: 1, HIGH: 2, CRITICAL: 0)
AWS-0164 (HIGH): Subnet associates public IP address.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
You should limit the provision of public IP addresses for resources. Resources should not be exposed on the public internet, but should have access limited to consumers required for the function of your application.
See https://avd.aquasec.com/misconfig/aws-0164
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
vpc.tf:28
via vpc.tf:24-34 (aws_subnet.public_subnet_a)
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
24 resource "aws_subnet" "public_subnet_a" {
25 vpc_id = aws_vpc.abnmo_svm_vpc.id
26 cidr_block = "10.0.1.0/24"
27 availability_zone = "us-east-1a"
28 [ map_public_ip_on_launch = true
29
30 tags = {
31 Name = "${var.project_name}-public-subnet-a"
32 Type = "public"
..
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0164 (HIGH): Subnet associates public IP address.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
You should limit the provision of public IP addresses for resources. Resources should not be exposed on the public internet, but should have access limited to consumers required for the function of your application.
See https://avd.aquasec.com/misconfig/aws-0164
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
vpc.tf:40
via vpc.tf:36-46 (aws_subnet.public_subnet_b)
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
36 resource "aws_subnet" "public_subnet_b" {
37 vpc_id = aws_vpc.abnmo_svm_vpc.id
38 cidr_block = "10.0.2.0/24"
39 availability_zone = "us-east-1b"
40 [ map_public_ip_on_launch = true
41
42 tags = {
43 Name = "${var.project_name}-public-subnet-b"
44 Type = "public"
..
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
AWS-0178 (MEDIUM): VPC does not have VPC Flow Logs enabled.
═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
VPC Flow Logs provide visibility into network traffic that traverses the VPC and can be used to detect anomalous traffic or insight during security workflows.
See https://avd.aquasec.com/misconfig/aws-0178
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
vpc.tf:2-12
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2 ┌ resource "aws_vpc" "abnmo_svm_vpc" {
3 │ cidr_block = "10.0.0.0/16"
4 │ enable_dns_hostnames = true
5 │ enable_dns_support = true
6 │
7 │ tags = {
8 │ Name = "${var.project_name}-vpc"
9 │ Projeto = var.project_name
10 └ Ambiente = "shared"
..
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────