Das Vertrauen in Sicherheit im Internet hat es derzeit nicht leicht: NSA und andere Geheimdienste schnorcheln unsere Onlinekommunikation mit, in Deutschland wurde kürzlich bekanntgegeben, man habe 18 Millionen kompromittierte Nutzeraccounts gefunden und gestern kam die Hiobsbotschaft eines schwerwiegenden Sicherheitslecks in OpenSSL.
OpenSSL ist eine freie Implementierung des TLS-Protokolls. Transport Layer Security, das früher Secure Socket Layer hieß, ist ein Protokoll zur verschlüsselten Datenübertragung im Internet. Das Verfahren begegnet uns häufig, nämlich immer dann, wenn eine https-Verbindung aufgebaut wird. Das bedeutet, dass Daten verschlüsselt und authentifiziert vom Browser zum Webserver übertragen werden. Wird kein TLS genutzt, kann mitgeschnittener Netzwerkverkehr einfach im Klartext gelesen werden. Besonders in öffentlichen WLANs, in die sich jeder einwählen kann, ist das ein ernstes Problem.
Gestern gab OpenSSL bekannt, dass Sicherheitsingenieure des finnischen IT-Sicherheitsunternehmens Codenomicon und Neel Mehta von Google Security einen Bug gefunden haben, der die durch TLS-Nutzung angenommene Vertraulichkeit und Authentizität gefährdet:
A missing bounds check in the handling of the TLS heartbeat extension can be used to reveal up to 64k of memory to a connected client or server.
Der Bug wurde „Heartbleed Bug“ getauft, nach der Heartbeat-Erweiterung durch die er eingeführt wurde. Er kann dazu führen, dass durch Auslesen des oben erwähnten Speichers die privaten Schlüssel eines TLS-Servers extrahiert werden können. Aber auch Nutzernamen, Passwörter und andere sensible Informationen können sich in den angreifbaren 64k befinden. Denn der Angriff ist nicht auf einmalige Durchführung limitiert, sodass beliebig viele Speicherstückchen ermittelt werden können bis die gewünschte Information ermittelt wurde. Die Ingenieure von Codenomicon führten einen Selbsttest durch und brachten daraufhin den Ernst der Lage deutlich zum Ausdruck:
Without using any privileged information or credentials we were able steal from ourselves the secret keys used for our X.509 certificates, user names and passwords, instant messages, emails and business critical documents and communication.
Wer sich für die technischen Details interessiert, findet auf dem existentialize-Blog eine detaillierte Analyse.
Der Bug betrifft die SSL-Versionen OpenSSL 1.0.1, die im März 2012 veröffentlicht wurde, bis 1.0.1f. Frühere Versionen sind nicht gefährdet, da sie die fehlerhafte Heartbeat-Erweiterung noch nicht enthalten. Eine Version 1.0.1g, die den Bug behebt, wurde von den Entwicklern bereits zur Verfügung gestellt. Ob es bisher wirklich zu einer Ausnutzung des Sicherheitsproblems kam, ist nicht bekannt, da ein solcher Angriff keine Spuren hinterlässt.
Arma, einer der Entwickler des Tor-Projektes, empfiehlt, sich innerhalb der nächsten Zeit vorsichtig im Internet zu bewegen und im Zweifel von der Nutzung fernzuhalten, falls man auf starke Anonymität angewiesen sei, denn die Anonymisierung durch Tor könnte durch Rechner mit der sicherheitskritischen TLS-Implementierung eingeschränkt sein. Auch das Update anderer Dienste, die noch auf der anfälligen OpenSSL-Implementierung basieren, wird nicht von jetzt auf gleich vonstatten gehen, denn zahlreiche Internet-Anwendungen, dabei Mailprogramme und Browser dürften betroffen sein. Zusätzlich steht für Serverbetreiber die Frage im Raum, ob ihre privaten Keys durch die Sicherheitslücke eventuell in falsche Hände geraten sind, Zertifikate sollten demnach sicherheitshalber ausgetauscht werden.
Die Nachricht von der Sicherheitslücke in OpenSSL ist ein Schock für viele, denn die Kryptobibliothek genießt eine weite Verbreitung. So ist sie Standard bei vielen Linux-Distributionen und Apache Webservern, die mit 38,2% die am meisten genutzten Webserver-Implementierungen sind, sowie bei ebenfalls weit verbreiteten nginx-Servern, die gemeinsam eine Abdeckung von 66% erreichen, wobei nicht alle zwingend die betreffenden OpenSSL-Versionen nutzen.
„Heartbleed“ ist nicht der erste Bug, der in OpenSSL gefunden wurde. Im letzten Jahr wurden zwei Schwächen in Zufallszahlengeneratoren entdeckt, einer davon war der durch die NSA kompromittierte Pseudozufallszahlengenerator Dual_EC_DRBG. Die Sicherheitslücken sind aber nicht der einzige Kritikpunkt. Es gab geteilte Meinungen beim Vorgehen von OpenSSL bei der Benachrichtigung über den Bug.
Der große Serverbetreiber CloudFlare wurde beispielsweise im Vorhinein über die Sicherheitslücke informiert und hatte Zeit, sie bis zur öffentlichen Bekanntgabe zu schließen. Es herrscht Uneinigkeit, ob das von besonderem Verantwortungsbewusstsein zeugt oder kleinere nicht informierte Dienste unfair im Nachteil lässt. Ebenso steht in der Kritik, dass openssl.org bisher immer noch selbst die gefährdete Version der Programmbibliothek nutzt, wie man mit einem Testtool feststellen kann.
Im Fall dieses schwerwiegenden Bugs zeigt sich, wie dringend es einer sorgfältigen Auditierung von kryptographischen Bibliotheken bedarf. Es wäre falsch jetzt danach zu schreien, andere Software zu nutzen, die den derzeitigen Bug nicht enthält, denn wie der Informatiker Dijkstra bereits sagte:
Durch Testen kann man stets nur die Anwesenheit, nie aber die Abwesenheit von Fehlern beweisen.
Es gilt, sich darauf zu konzentrieren, bewährten und soliden Code weiter zu verbessern und unermüdlich nach Fehlern und Hintertüren Ausschau zu halten.
(Wir wissen, dass wir das Problem auch haben. Wir arbeiten dran.)
