Ensure no security groups allow ingress from 0.0.0.0/0 to Redis port 6379

Description:

Security groups act as virtual firewalls for Amazon EC2 instances and other AWS resources. Allowing unrestricted Redis access (port 6379) from the entire internet (0.0.0.0/0) poses a significant security risk, making resources susceptible to brute-force attacks and unauthorized access. It's critical to restrict Redis access to known and trusted IP addresses or CIDR blocks.


Remediation:

1. Identify Security Groups with Open Redis Access:

AWS Management Console:
  1. Click on the specific security group's ID link.
    Navigate to the Inbound Rules tab.
    Select the rule that allows traffic from 0.0.0.0/0 to port 6379 and click Edit inbound rules.
    Modify the rule to restrict access to trusted IP addresses or CIDR blocks, or remove the rule entirely if it's not needed.
    Click Save rules.
AWS CLI:

To list security groups that have an open Redis rule:

aws ec2 describe-security-groups --query "SecurityGroups[?IpPermissions[?ToPort==`6379` && IpRanges[?CidrIp=='0.0.0.0/0']]]" --output table

2. Modify Inbound Rules:

AWS Management Console:

Follow the steps provided in the previous section.

AWS CLI:

To revoke an open Redis rule for a particular security group:

aws ec2 revoke-security-group-ingress --group-id [SECURITY_GROUP_ID] --protocol tcp --port 6379 --cidr 0.0.0.0/0

Replace [SECURITY_GROUP_ID] with the appropriate security group ID.

Terraform:

To ensure your security group does not have an open Redis rule in Terraform:

resource "aws_security_group" "example" {
  # ... other configurations ...

  ingress {
    from_port   = 6379
    to_port     = 6379
    protocol    = "tcp"
    cidr_blocks = ["trusted_ip/32"]  # Replace 'trusted_ip/32' with your trusted CIDR block
  }

  # ... other configurations ...
}

In the code above, replace the placeholder trusted_ip/32 with your trusted IP or CIDR block. This ensures only the specified IPs can access the resource over Redis.

3. Regularly Monitor and Audit:

Follow the monitoring and auditing steps provided in the previous section.


Recommendation:

It's a best practice to restrict Redis access to specific IP addresses or CIDR blocks that require it. Implementing solutions like AWS Systems Manager Session Manager for secure access without opening Redis ports to the public can enhance security. Ensure regular monitoring and auditing of security group configurations to adhere to security best practices.