Confirmed: hackers can use Heartbleed to steal private SSL keys
- 14 April, 2014 08:23
Researchers have proven the Heartbleed OpenSSL bug can be used to extract private keys from a vulnerable web server, giving affected services concrete evidence they do need to revoke and reissue private SSL certificates.
Software engineer Fedor Indutny and security researcher Illka Mattila from Finland’s National Cyber Security Centre late Friday settled whether the Heartbleed OpenSSL bug could be used to steal private SSL keys from an affected server. The researchers were the first to extract private SSL keys from a vulnerable web server set up by web optimisation provider CloudFlare to test whether it could be done.
Should an attacker be able to use Heartbleed to extract a vulnerable website’s private SSL key, they would have the tools to impersonate all “HTTPS” sites that rely on a vulnerable version of OpenSSL.
““This would be the disaster scenario, requiring virtually every service to reissue and revoke its SSL certificates,” CloudFlare security engineer Nick Sullivan said..
It’s been speculated since details of the Heartbleed bug became public last Monday that it could expose private keys to an attacker, however experts considered it improbable in the absence of proof.
Calling for calm on Tuesday, Google security researcher Neel Mehta (one of the people who discovered the bug) wrote in a tweet: “heap allocation patterns make private key exposure unlikely for #heartbleed #dontpanic”
The bug meant an attacker could send small specially crafted packets to an affected server and cause it to spit back 64KB nuggets of data from the server’s memory, potentially exposing usernames and passwords, private keys and other contents that would normally be encrypted. While web servers are the most visible point of vulnerability, the bug also affects a variety of other tools, such as VPN, routers and security products that OpenSSL is implemented in.
In an initial report released on Friday Sullivan said CloudFlare’s own engineers could not to use the bug to extract private keys during its 12 days testing the bug.
It then threw open the question to security researchers through a Heartbleed Challenge web site that ran on a vulnerable ngnix web server. Within nine hours, Indutry had the private key and posted it on Github as proof.
“Fedor sent 2.5 million requests over the course of the day and Ilkka sent around 100K requests,” Sullivan noted.
“We confirmed that all individuals used only the Heartbleed exploit to obtain the private key.”
Several other researchers have also managed to extract the private key.
Re-issuing and revoking SSL keys was already a recommended response to the bug, however the discovery that it can confirms that it’s necessary. Still, the advice from security experts is to stay calm.
“There have been lots of bugs that affect something that ultimately grants access to SSL private keys. The world didn’t end then and it’s not ending now,” security researcher Dan Kaminsky said in response to the CloudFlare challenge.
Still, the bug should prompt rapid action by anyone running an affected service, given that knowledge of the bug offers hackers chance to develop tools to exploit it.
Kaminsky’s advice for system administrators and chief information security officers is to dig up all services that rely on SSL, including things like VPN. Cisco and Juniper, for example, have issued updates for the bug for some network gear, as have several security vendors. BlackBerry meanwhile has confirmed its BBM messaging app for iOS and Android are affected, in addition to its enterprise product Secure Work Spaces for Android and iOS.
“Patch immediately, particularly the systems exposed to the outside world, and don’t just worry about HTTP. Find anything moving SSL, particularly your SSL VPNs, prioritizing on open inbound, any TCP port,” said Kaminsky.
“Cycle your certs if you have them, you’re going to lose them, you may have already, we don’t know. But patch, even if there’s self signed certs, this is a generic Information leakage in all sorts of apps. If there is no patch and probably won’t ever be, look at putting a TLS proxy in front of the endpoint. Pretty sure stunnel4 can do this for you.”