What is Heartbleed? The Heartbleed vulnerability explained
Heartbleed is a security vulnerability in the OpenSSL cryptography library carried out through the TLS heartbeat extension. Google Security first discovered this bug in 2014. However, it still is a security threat to many businesses and organizations. So it is crucial to understand how Heartbleed exploits vulnerable OpenSSL versions, its potential harm, and ways to protect your networks.
Contents
What is the Heartbleed bug?
Heartbleed is an internet security bug in the OpenSSL cryptographic software library. It allows the exploitation of Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols used to secure internet communication for web applications, email, messaging, and virtual private networks (VPNs). Hackers use Heartbleed to trick a vulnerable SSL/TLS server into giving away sensitive information, including usernames and passwords.
“Heartbleed” is an odd name for a computer error, right? Well, it derives from the TLS heartbeat extension, or RFC6520, a component of OpenSSL that aims to check if a connection between two devices is active. One device sends an encoded data piece to the other, which returns the same data piece to the first device, confirming that they’re still connected. Heartbleed is a flaw in the heartbeat code, allowing one computer to capture sensitive data from the other during the connection check.
How does Heartbleed work?
As mentioned, Heartbleed exploits the heartbeat extension, which lets two computers establish an uninterrupted connection between them by exchanging ciphered data packages.
The periodic heartbeat request includes a random textual message with the number of characters (for example, eight) in the request. Then, the receiving end reads the message and replies with the same eight-character-long textual message. The trouble comes when web servers trust the sender too much and don’t check whether the actual size of the payload matches the stated size.
The attacker sends an eight-character message (for example, JoeJones) and states that it contains 1,000 characters. Because the server doesn’t check whether the actual size of the payload matches the indicated size, it reads beyond the actual payload to fill the response. That means the server sends back the eight characters (JoeJones) from the original message plus up to 992 characters — or 64 KB — of additional data from the server’s memory. This additional data could contain the private key, username, password, email address, and other sensitive information that belongs to the user, Joe Jones, allowing hackers to exploit this private data for potentially malicious purposes.
The Heartbleed code
A short line of code in the OpenSSL’s implementation is what allows the Heartbleed bug to exploit private organizational and business operating systems and steal the confidential information of unsuspecting users.
Let’s break it down:
- Heartbeat request code: memcpy(bp, pl, payload).
- “memcpy()”: copies data from the payload of the heartbeat request to a response buffer.
- “bp”: the destination of the copied data.
- “pl”: source location of the data.
- “payload”: the number of bytes of the actual received payload.
The problem arises when the code doesn’t verify that the payload length specified in the heartbeat request actually corresponds to the amount of data in “pl.” If the payload value is larger than the actual data in “pl,” “memcpy()” will continue copying adjacent memory into “bp.” This adjacent memory could contain sensitive information. And the worst thing is that OpenSSL is an open-source system, allowing anyone interested to check the code and use it for potentially malicious purposes.
Is the Heartbleed vulnerability dangerous?
Heartbleed was extremely dangerous in its own time because many popular websites and online services used OpenSSL to secure their network appliances. By exploiting the vulnerable versions of OpenSSL, hackers accessed the databases containing highly sensitive data, including primary key material (secret keys and private keys), secondary key material (usernames and passwords), and personal user information.
Heartbleed was relatively easy to manipulate and didn’t require expert hacking skills. This simply exploitable attack didn’t leave any trace on the system, making it hard to determine if hackers compromised the system and to what extent.
The Heartbleed vulnerability was the most dangerous from its introduction in late 2011 until Google Security disclosed it in April 2014 and shortly after. However, it is considered a legacy vulnerability now and only exists in outdated and unpatched software.
Cost and impact of Heartbleed
It is hard to quantify the exact costs and impact of Heartbleed. The OpenSSL team spent significant amounts of money on patching and updating vulnerable OpenSSL project versions, which required significant IT and human resources. Businesses and organizations needed to revoke and reissue SSL security certificates. This process was valued at around 500 million dollars. Those directly affected by data breaches due to Heartbleed experienced legal fees, fines, and reputational damage.
Because Hearbleed left no trace of exploitation on the systems, some attacks went undetected, which makes it even harder to estimate the actual level of damage.
Known Heartbleed exploits
Many Heartbleed exploitation cases were not detected or publicly disclosed. However, some of them received attention. For example, in April 2014, the Canada Revenue Agency (CRA) reported that hackers carried out a cyberattack exploiting the Heartbleed vulnerability and stole approximately 900 social insurance numbers. CRA was forced to close its vulnerable services temporarily and patch OpenSSL.
Later in the same month, hackers attacked the parenting website Mumsnet and stole a few accounts. One of the stolen accounts happened to be the Mumsnet CEO’s, allowing bad actors to impersonate them.
In August 2014, the US Community Health Systems (CHS) experienced a Heartbleed attack on its systems. Hackers managed to access patient data, including medical records and Social Security numbers.
Is there a Heartbleed fix?
When the Heartbleed vulnerability was discovered, the OpenSSL software developers rapidly introduced a security patch. They advised system administrators and organizations to update their OpenSSL to the newest version immediately. Developers also urged organizations to run through security audits and revoke and reissue SSL certificates to mitigate possible risks associated with the attack.
Websites and businesses that employed the vulnerable OpenSSL version recommended that their users change their passwords after the patching of the OpenSSL system, implying that hackers might have compromised user credentials.
How to detect Heartbleed
If you’re a system administrator, you can use built-in and third-party tools to detect the Heartbleed vulnerability:
- Use vulnerability scanners to detect a vulnerable version of OpenSSL.
- Employ online SSL/TLS testing tools to check your website’s SSL/TLS configuration for Heartbleed and other vulnerabilities.
- Check the OpenSSL version on your systems. Heartbleed impacts OpenSSL versions 1.0.1 through 1.0.1f and 1.0.2-beta.
- Use network monitoring tools and do penetration testing to detect unusual network activity.
- Employ automated patch management tools to detect vulnerabilities like Heartbleed and automatically apply the latest security patches.
Combine these methods to detect the Heartbleed bug in your system and strengthen the overall cybersecurity stance in your organization or business.
How to prevent Heartbleed
Preventing Heartbleed from leaking your sensitive data requires careful maintenance of your OpenSSL software library. Take the following tips to add an extra layer of security on your encrypted data:
- Update OpenSSL. Check every web server and application for vulnerable OpenSSL versions (1.0.1 to 1.0.1f and 1.0.2-beta). The patched versions include 1.0.1g or higher.
- Change passwords and secret and private keys. As soon as you update, change your passwords and reissue SSL certificates and keys in case hackers have already managed to compromise your system.
- Update software. Regularly update all of your software and patch your applications against known vulnerabilities.
- Monitor network traffic. Keep an eye out for suspicious activity on your network.
- Security audits. Run system security examinations to identify and fix vulnerabilities.
Heartbleed today
While Heartbleed was discovered a decade ago, it remains one of the main reasons attackers are still targeting OpenSSL. In November 2020, security researchers at the SANS Internet Storm Center discovered that more than 200,000 computers are still vulnerable to Heartbleed. Today, that number is probably lower. However, this bug may still cause problems in unpatched systems.
Even though the initial response to Heartbleed was prompt and widespread, some enterprises still neglect patching, which is essential to mitigate risks associated with the Heartbleed bug. The fact that this vulnerability is still present highlights the ongoing challenges of the internet community, especially when it comes to cybersecurity, patching, and managing older systems.
Can security vulnerabilities like Heartbleed arise in the future?
Yes, security vulnerabilities like Heartbleed can arise in the future due to software complexity, widespread use of common libraries, increasing attacker sophistication, and challenging patch management. So businesses and organizations must stay vigilant, run regular security scans, update software, and employ robust security practices to protect vulnerable websites and mitigate security risks related to Heartbleed.
Want to read more like this?
Get the latest news and tips from NordVPN.