By Simon Treadaway
Background on CVE-2014-0160 (Heartbleed)
Secure Sockets Layer (SSL), and Transport Layer Security (TLS) are cryptographic protocols that are used to provide secure communications between a client and a server, and is most often used to encrypt HTTP traffic. SSL and TLS can also be used to secure other communications protocols including those used by email servers, chat clients, databases and more. In addition to providing encryption SSL/TLS also provides authentication functions by utilising certificates to positively identify the other party. Once a trusted third party has signed the certificate a certain level of trust is established between the two parties communicating providing independent assurance that the certificate holder is indeed who they claim to be.
OpenSSL is a software package used to generate SSL and TLS encryption keys and provides code libraries that are used in many applications to establish the secure communications channel using SSL or TLS. CVE-2014-0160 documents a serious security flaw in several versions of the OpenSSL package that may impact upon the protection of these keys.
Successful exploitation of the vulnerability allows a cyber-criminal to access a dynamic portion of the remote system memory. The data contained within the memory space will vary dependent upon the sever function and role, but as many connections can be established large portions of memory can be retrieved. Another risk that has been reported is that the actual cryptographic keys used to encrypt the communications may be compromised, allowing an attacker to decrypt current and possible past communications. This would also permit them to potentially impersonate a site.
As exploitation does not require authentication or an indicator of compromise the most effective response is to implement remediation measures as soon as reasonably possible.
Who is affected
Several versions of OpenSSL released in late 2011 and later have been identified as vulnerable to the heartbleed attack. OpenSSL versions 1.0.1 through to and including 1.0.1f are vulnerable. OpenSSL versions outside of this range are not vulnerable.
Successful exploitation is also dependant on the protocol being used to encrypt traffic.
If you are utilising one of the vulnerable OpenSSL versions and are allowing TLS v1.2 connections to your web site you are likely vulnerable.
How can you identify if you are vulnerable
- On unix/linux systems the command openssl version –a will show the version being used.
- Utilise nmap and the ssl-heartbleed.nse script to scan the environment.
- Use ssllabs free online scanner (https://www.ssllabs.com/ssltest/).
- Additionally, ensure that the ‘Do not show the results on the boards’ checkbox is enabled.
- Be cautious, not all sites offering free scans for this issue are legitimate sites.
In addition to checking your web sites, web applications, web services, etc. you will also need to check your commercial products and appliances as many vendors embed openSSL within their code base. For example Juniper, CISCO, DELL, Symantec all utilise openSSL within their product base.
How can you remediate
A risk-based approach should be taken into implementing the following steps;
- Identify all services using OpenSSL, and specifically those that are internet facing,
- Update vulnerable version of OpenSSL. If a third party appliance is vulnerable, contact the vendor obtain a patch or in the absence of a patch apply mitigating controls. Disallowing TLS v1.2 can remediate the issue, but will likely require a new certificate.
- Once all vulnerable version of OpenSSL have been remediated, all SSL/TLS keys generated using a vulnerable version of OpenSSL should then be replaced,
- Once replaced, old SSL/TLS keys should be revoked,
- Update system passphrases (passwords).
How can we help
If required there are several ways in which we can assist. These include;
- Identifying vulnerable services
- Prioritising patch deployment
- Assisting with risk management
Shearwater is dedicated to its customers, and are always happy to provide advice. If any assistance is required please contact us via email to: email@example.com or via phone on: +61 2 9488 4600