Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389Provider: AWS
Service:
ec2Severity: HIGH
Categories:
internet-exposedResource type:
AwsEc2SecurityGroupWhat this check verifies
EC2 security groups restrict inbound RDP onTCP 3389 to trusted sources, avoiding Internet-wide (0.0.0.0/0, ::/0) exposure.
Risk
Internet-exposed RDP enables brute force and credential stuffing and increases the chance of remote code execution via RDP flaws. Adversaries can gain interactive access, exfiltrate data (confidentiality), tamper with systems (integrity), and trigger ransomware or service disruption (availability).Recommendation
Apply least privilege: disallow0.0.0.0/0 and ::/0 to 3389; permit only specific IPs or private networks.
Prefer Session Manager, VPN, or a hardened bastion with MFA and just-in-time access. Use private subnets and add defense in depth with network controls and monitoring.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws ec2 revoke-security-group-ingress —group-id <SECURITY_GROUP_ID> —protocol tcp —port 3389 —cidr 0.0.0.0/0
References
- https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/EC2/unrestricted-rdp-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_3389. 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