Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21Provider: AWS
Service:
ec2Severity: HIGH
Categories:
internet-exposedResource type:
AwsEc2SecurityGroupWhat this check verifies
EC2 security groups are evaluated for Internet-exposed FTP: any inbound rule allowingtcp ports 20 or 21 from 0.0.0.0/0 or ::/0.
Risk
Exposed FTP weakens CIA:- Confidentiality: cleartext credentials/files enable interception and brute force.
- Integrity: unauthorized uploads or tampering enable malware staging.
- Availability: mass scans and login attempts can exhaust resources and disrupt services.
Recommendation
Apply least privilege and defense in depth:- Remove
0.0.0.0/0and::/0to20/21; allow only trusted IPs or private access (VPN/peering). - Prefer SFTP/FTPS or HTTPS; disable anonymous FTP.
- Segment transfer hosts, monitor access, and enforce rate limits and strong authentication.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/EC2/unrestricted-ftp-access.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks