Skip to main content

More Info:

No security group should allow unrestricted inbound access to TCP port 443 (HTTPS).

Risk Level

Low

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • AWS Startup Security Baseline
  • AWS Well Architected Framework
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • GDPR
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIS2 Directive
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • Reserve Bank of India (RBI) Cyber Security Framework
  • Reserve Bank of India (RBI) Master Direction – Information Technology Framework
  • SOC2
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Using Console

To remediate the “Unrestricted HTTPS Access Should Not Be Allowed” misconfiguration in AWS, you can follow these steps:
  1. Log in to the AWS Management Console.
  2. Navigate to the AWS EC2 service.
  3. Click on the “Security Groups” option from the left-hand menu.
  4. Select the security group that is associated with the instance(s) that have unrestricted HTTPS access.
  5. Click on the “Inbound Rules” tab.
  6. Locate the HTTPS rule that has unrestricted access (i.e., source is set to “0.0.0.0/0” or ”::/0”).
  7. Click on the “Edit” button for the rule.
  8. Change the source to a more restrictive IP range or security group that requires HTTPS access.
  9. Click on the “Save Rules” button to apply the changes.
Note: If you are unsure which security group is associated with the instance(s) that have unrestricted HTTPS access, you can view the instance details to find the security group ID and then navigate to the Security Groups section to find the security group.

To remediate the misconfiguration of unrestricted HTTPS access in AWS using AWS CLI, follow these steps:Step 1: Open the AWS CLI in your terminal or command prompt.Step 2: Run the following command to list all the security groups in your AWS account:
Step 3: Identify the security group(s) that have unrestricted HTTPS access allowed.Step 4: Run the following command to remove the HTTPS access rule from the identified security group(s):
Note: Replace <security_group_id> with the actual ID of the security group that needs to be remediated.Step 5: Verify that the HTTPS access rule has been removed by running the following command:
Note: Replace <security_group_id> with the actual ID of the security group that was remediated.Step 6: Repeat the above steps for all the security groups that have unrestricted HTTPS access allowed.By following the above steps, you can remediate the misconfiguration of unrestricted HTTPS access in AWS using AWS CLI.
To remediate the unrestricted HTTPS access issue in AWS using Python, you can follow the below steps:
  1. Identify the Security Group(s) which are allowing unrestricted HTTPS access.
  2. Using the AWS SDK for Python (Boto3), modify the inbound rules of the identified Security Group(s) to allow HTTPS access only from trusted sources.
  3. Create a script to automate this process for all the Security Group(s) in your AWS account.
Here is a sample Python code to remediate the issue:
Note: Replace the region and security_group_id variables with your own values. Also, replace the trusted_ip_address with the IP address(es) of the trusted sources that should be allowed HTTPS access.
This Terraform configuration removes any ingress rule that allows TCP port 443 from 0.0.0.0/0 or ::/0 and replaces it with rules restricted to trusted CIDR ranges, matching the effect of revoking those unrestricted rules via the AWS CLI. The change is in-place and does not replace the security group itself, but it may disrupt connectivity for clients outside the trusted ranges.To verify, terraform plan should show:
  • Removal of any existing ingress blocks with from_port = 443, to_port = 443, and cidr_blocks = ["0.0.0.0/0"] and/or ipv6_cidr_blocks = ["::/0"].
  • Addition (or update) of ingress blocks so that port 443 is only allowed from the specified trusted IPv4/IPv6 CIDR ranges.

Additional Reading: