The interwebs is awash with reports and speculations about the Heartbleed. Post-Y2k it’s difficult to recall any occasion when a security vulnerability managed to gain such widespread attention. But, exactly what is Heartbleed? Here’s a quick summary of everything you need to know about Heartbleed.
What is Heartbleed?
Heartbleed is a critical vulnerability in the OpenSSL library. The official designation of this bug is CVE-2014-0160. SSL stands for Secure Sockets Layer and is a standard security technology for establishing an encrypted link between a web server and a browser. This bit of technology essentially ensures that no one can peek into the data sent between you and the webserver. Every website with an URL that begins with https:// (often indicated by a padlock in your browser’s address bar) uses SSL to keep data, including the authentication information that you key in, private. OpenSSL is an extremely popular open source implementation of this protocol.
Heartbleed is a bug in the OpenSSL code, which can be theoretically be leveraged by an attacker to gain access to data transmitted between you and the webserver. This means that theoretically the attacker can see all of the data that you enter into an affected website, including your username and password. There has also been speculation that the bug can enable the attacker to gain access to a server’s private key. This would essentially allow the attacker to impersonate any web service and conduct MTM (man in the middle) attacks. This would force every affected website to revoke and reissue their certificates. However, there’s still debate about whether this worst case scenario is possible or not. CloudFlare has declared that after extensive testing it has been unable to grab private SSL keys by exploiting Heartbleed.
Update: The CloudFlare challenge has been cracked. So, it’s possible to access a server’s key with this exploit.
How did this happen?
Contrary to the conspiracy theories buzzing around the social media websites and discussion boards, there is a very simple explanation behind how the Heartbleed vulnerability was introduced. It was a simple coder oversight.
The bug was introduced by Dr Seggelmann, a German contributor to the OpenSSL project. He was working on patching existing bugs and adding new features. Unfortunately, in one of the new features, he forgot to validate a variable containing a length. The same mistake was also overlooked by the code reviewer Dr Stephen Henson, and thus the bug made its way into the production code of OpenSSL.
How does this exploit work?
As mentioned earlier, the Heartbleed vulnerability is due to a missing validation on a variable size. One of the reasons why the bug has been named as Heartbleed is that it occurs in the heartbeat stage of the protocol. A heartbeat is essentially a technique that enables a computer at one end of the SSL connection to double check that the recipient is still alive. The following XKCD comic does a pretty good job at explaining the issue in simple terms. Essentially, the hearbeat mechanism sends a key and requests a response from the recipient to confirm that the recipient is still active. However, the length of the request isn’t validated. So, you can send a key that is just 3 characters long, but request an acknowledgement that is up to 65536 characters long. Since, the server isn’t checking the length of the response requested, it would send you all of the requested characters, which will include whatever characters that are stored in the memory after your key. With some luck and persistence, you can exploit this oversight to gain access to confidential information.
Who discovered it?
The Heartbleed bug was introduced two years ago; however, in a strange co-incidence, it was discovered and reported by two parties on the same day. One of those parties was Google’s Neel Mehta, who quietly reported the bug to OpenSSL. The other party was a Finnish security research firm called Codenomicon. Realizing that the discovered bug was extraordinary in its impact and severity, Codenomicon decided to create a campaign to make sure everyone took notice of the issue. They registered the domain heartbleed.com, came up with the compelling name, designed a logo, and created the initial narrative. Both researchers collaborated with OpenSSL to ensure that the vulnerability wasn’t disclosed before an official patch was released.
What can you do?
To be honest there isn’t much you can do. A fix for the vulnerability has already been issued by OpenSSL. Most major websites, including banks and other financial service providers, have already updated their OpenSSL installation. Given the massive publicity this bug has received, it’s likely that most websites will implement the patch in the coming days. Mashable has published a massive list of popular websites affected by this vulnerability. It’s wise to change your password at any website that was affected by the bug, but you should do so only after that website has patched the vulnerability. Otherwise, you risk exposing yourself further. As always, folks using unique passwords are considerably safer.
Lastpass, one of the most popular password managers, has updated its Security Challenge tool to include Heartbleed related information. It automatically scans websites in your vault and lists all the websites that have been affected. It also lets you know which websites have been patched, so that you can go ahead and change your password.