Skip to main content

More Info:

Your AWS Cloudfront Content Delivery Network distributions should not be using insecure SSL protocols (i.e. SSLv3) for HTTPS communication between CloudFront edge locations and your custom origins.

Risk Level

Medium

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • 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)
  • Essential 8
  • 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
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • StateRAMP
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Using Console

To remediate the misconfiguration “CloudFront Distributions Should Not Use Insecure SSL Protocols” in AWS using AWS console, follow the below steps:
  1. Login to your AWS console.
  2. Go to the CloudFront service.
  3. Select the distribution which is using insecure SSL protocols.
  4. Click on the “Edit” button.
  5. Scroll down to the “SSL Certificate” section.
  6. In the “Minimum SSL Protocol Version” dropdown, select “TLSv1.2_2018”.
  7. Click on the “Yes, Edit” button to save the changes.
By doing this, you have successfully remediated the misconfiguration “CloudFront Distributions Should Not Use Insecure SSL Protocols” in AWS using AWS console.

To remediate the CloudFront Distributions Should Not Use Insecure SSL Protocols misconfiguration in AWS using AWS CLI, you can follow the below steps:
  1. Open your terminal and install AWS CLI if it is not installed already.
  2. Run the following command to update the CloudFront distribution to use only secure SSL protocols:
Note: Replace <distribution-id> with the ID of the CloudFront distribution that you want to update.
  1. After running the above command, the CloudFront distribution will be updated to use only secure SSL protocols.
  2. Verify the changes by checking the SSL protocols used by the CloudFront distribution using the following command:
Note: Replace <distribution-id> with the ID of the CloudFront distribution that you updated.
  1. The output of the above command should show that the minimum SSL protocol version is TLSv1.1 or higher.
By following these steps, you can remediate the CloudFront Distributions Should Not Use Insecure SSL Protocols misconfiguration in AWS using AWS CLI.
To remediate the misconfiguration of CloudFront distributions using insecure SSL protocols in AWS using Python, you can follow the below steps:
  1. Import the required AWS modules and libraries in your Python script:
  1. Create an AWS client for CloudFront using the boto3 library:
  1. Get a list of all the CloudFront distributions using the list_distributions method:
  1. Loop through the list of CloudFront distributions and check if they are using insecure SSL protocols. You can do this by checking the value of the MinimumProtocolVersion parameter. If it is set to SSLv3 or TLSv1, then it is using an insecure SSL protocol.
  1. To remediate the misconfiguration, you need to update the CloudFront distribution with a secure SSL protocol. You can do this by updating the ViewerCertificate parameter with a new value for MinimumProtocolVersion. For example, to set it to TLSv1.2_2018, you can use the update_distribution method:
  1. Finally, run the Python script to remediate the misconfiguration for all the CloudFront distributions using insecure SSL protocols.
This change updates the origin’s origin_ssl_protocols so CloudFront only uses TLSv1.2 when connecting to your custom origin; it is an in‑place update (no distribution replacement), but propagation can take several minutes globally.To verify, terraform plan should show the existing aws_cloudfront_distribution with a diff changing custom_origin_config.origin_ssl_protocols from the old list (including SSLv3/TLSv1.0/TLSv1.1) to only ["TLSv1.2"], with no create/destroy actions on the distribution itself.

Additional Reading: