logo

Database

Terraform Unrestricted Ftp Access

Description

Identifies AWS security group configurations that allow unrestricted FTP access (ports 20/21) to EC2 instances. This represents a security risk as unrestricted FTP access could enable unauthorized file transfers and potential data breaches.

Detection Strategy

    • Check AWS security group and security group rule resources in Terraform configurations

    • Look for ingress or egress rules that define port ranges including FTP ports (20,21)

    • Evaluate if the CIDR range in the rules is overly permissive (e.g. 0.0.0.0/0)

    • Flag security group configurations that allow unrestricted access to FTP ports from any source IP

Vulnerable code example

resource "aws_security_group_rule" "vulnerable" {
  security_group_id = "sg-123456"
  type             = "ingress"
  from_port        = 21        # Exposing FTP port (21) is risky
  to_port          = 21
  protocol         = "-1"      # Allowing all protocols (-1) is overly permissive
  cidr_blocks      = "0.0.0.0/0"   # Opening to all IPs (0.0.0.0/0) is dangerous
}

✅ Secure code example

resource "aws_security_group_rule" "secure" {
  security_group_id = "sg-123456"
  type             = "ingress"
  from_port        = 22         # Using SSH instead of FTP for secure file transfers
  to_port          = 22
  protocol         = "tcp"      # Restricting to TCP protocol only
  cidr_blocks      = ["10.0.0.0/16"]  # Limiting access to internal network range
  description      = "Allow SSH access from internal network"...