OpenSSL Heartbleed: Bloody nose for open-source bleeding hearts
Bloke behind the cockup says not enough people are helping crucial crypto project
Updated Robin Seggelmann, the man who accidentally introduced the password-leaking Heartbleed bug into OpenSSL, says not enough people are scrutinizing the crucial cryptographic library.
The Heartbleed flaw, which was revealed on Monday and sent shockwaves through the IT world all week, allows attackers to reach across the internet and silently siphon passwords, crypto-keys, and other sensitive information from vulnerable systems.
Any machine, whether it's your bank's HTTPS web server or your home router or your mobile phone, that uses OpenSSL 1.0.1 to 1.0.1f for secure connections is at risk, thanks to the Heartbleed bug. A new version of the library, 1.0.1g, is out now that fixes the flaw, and should be installed as soon as possible – then regenerating keys, updating SSL certificates and changing passwords can begin.
If a government spy or miscreant can grab a server's private SSL key, then, in the right conditions, any previously eavesdropped encrypted traffic can be decrypted, or the attacker can masquerade as the server – although extracting that particular secret key is no mean feat*.
After The Reg got in touch with Robin Seggelmann this morning, we were given a statement by his employer, Deutsche Telekom in Germany.
In that missive, the developer admitted he accidentally bungled the implementation of a keep-alive feature called the TLS Heartbeat Extension for OpenSSL, which was committed to the library's source code on New Year's Eve in 2011. Essentially, he forgot to check the size of a received message, allowing miscreants to take a snapshot of the inner workings of the attacked software and extract sensitive data flowing through memory.
"A possibility arose that granted access to security-relevant data, and a really simple mistake now has serious consequences," Seggelmann said today of the Heartbleed bug. "Whether the now known and fixed bug has been exploited by intelligence agencies or others is difficult to assess."
Open source or open sores?
The crux of the matter is that OpenSSL is used by millions and millions of people, even if they don't know it, but this vital encryption software – used to secure online shopping and banking, mobile apps, VPNs and much more – has a core developer team of just four volunteers who rely on donations and sponsorship. The library code is free and open source, and is used in countless products and programs, but Seggelmann and others point out that the project receives little help.
Hey companies that use OpenSSL: how many $$ have you spent recovering from Heartbleed? Why not fund OpenSSL so it doesn't happen again?— Matthew Green (@matthew_d_green) April 8, 2014
"It is important to monitor critical and safety-related software as often as possible. This is the great advantage of open source software: it is freely available to anyone who wishes to participate," Seggelmann explained this afternoon.
"Unfortunately, despite very wide distribution and use by millions of users, OpenSSL does not have adequate support. In spite of its many users, there are very few who actively participate in the project."
Would you want to audit 429,699 lines of code?
OpenSSL's code is right here to examine – and the theory goes that "given enough eyeballs, all bugs are shallow," meaning that by making the blueprints public, flaws should be quickly spotted and fixed. But Heartbleed has shown that perhaps just two sets of eyes – Seggelmann's and OpenSSL core developer Dr Stephen Henson, who committed the heartbeat update – studied the faulty code before it was blindly hoovered up by other software makers and developers. And for such a critical package, that doesn't seem right.
"Unfortunately, even the OpenSSL developer who conducted the review of the code did not notice the missing check," said Seggelmann. "Thus, the faulty code was adopted in the development version, which later became the published version."
Already people are wondering out loud why more money is not being thrown at OpenSSL, assuming that will do the trick of fixing its bugs. Freeware disk-encryption tool TrueCrypt, favored by NSA whistleblower Ed Snowden, is being audited for vulnerabilities after security researchers raised nearly $60,000 in donations to fund the effort, proving there is a demand for the scrutiny of freely available software.
But auditing OpenSSL is a daunting task: it has 429,699 lines of code according to a SLOCCount analysis, about 73 per cent of which is in C, and its code is, shall we say, non-trivial in places. It would perhaps cost about $15.7m to develop from scratch with a team of 35 programmers over three years.
The fallout from this tiny but devastating bug
Various flavors of the Linux operating system potentially shipped a broken OpenSSL code, including Debian Wheezy, Ubuntu 12.04.4 LTS, OpenBSD 5.3, FreeBSD 10.0, and OpenSUSE 12.2; OpenBSD leader Theo de Raadt had some choice words about the bug. Apple's OS X and iOS software, and its websites, were not vulnerable, and neither were Microsoft Windows and the Azure cloud simply because Redmond uses its own SSL/TLS suite.
Google's Android 4.1.1 is vulnerable, which affects a large number of mobile phones. The web king also had to patch its Cloud SQL service and Google Search Appliances, plus its web services: Search, Gmail, YouTube, Wallet, Play, Apps, and App Engine. Amazon also had to patch its cloud services. Google and Amazon users should pick new passwords just in case they were leaked by Heartbleed.
Websites Facebook, If This Then That, Tumblr, Yahoo! and Yahoo! Mail all had to update their servers to splat the data-leaking bug, and all urge their users to now change their account passwords.
El Reg tried to contact Dr Henson for comment, but he was not available to respond immediately. ®
Updated to add at 0229 UTC, April 12
* Cloudflare challenged the world to extract its private SSL key from an Nginx 1.5.13 web server linked against OpenSSL 1.0.1.f on Ubuntu Linux 13.10 x86_64. And two people managed to do exactly that, using the Heartbleed vulnerability.
"We confirmed that both of these individuals have the private key and that it was obtained through Heartbleed exploits," wrote the online content distribution network biz. "We rebooted the server at 3:08PST, which may have contributed to the key being available in memory, but we can’t be certain."