Heartbleed
Schlaganfall des WWW
Also, was war so grausames passiert? Ein Bug in OpenSSL ist publik geworden, der es einem Angreifer ermöglicht, Daten aus dem Arbeitsspeicherbereich von OpenSSL auszulesen. Dieser Fehler ist bei der Implementierung der "Heartbeat"-Erweiterung für TLS (Transport Layer Security, im Kontext "Verschlüsselung für Internetverbindungen") entstanden. Heartbeat ist dazu gedacht, TLS-Verbindungen über einen längeren Zeitraum offen zu halten. Dabei werden periodisch vom Client Nachrichten an den Server gesendet, dass dieser doch mit "randomTextHere (14 Zeichen)" antworten möge, um zu bestätigen, dass die Verbindung noch lebt. Sendet der Angreifer nun "xREL (65535 Zeichen)", so antwortet der Server mit 64 KB an Daten. Das lässt sich beliebig oft wiederholen. Die Daten, die so ungewollt öffentlich zugänglich sind, sind zufällig — was gerade so im Arbeitsspeicher des Servers rum liegt. Das kann von "harmlosem" wie nutzerbezogenen Daten über Logindaten, inklusive Passwörter, bis hin zu den dem Serverzertifikat zugehörigen privaten Schlüsseln alles sein. Eine grafische Erklärung findet ihr hier, mehr Text hier.
Der Heartbleed-Bug ermöglicht weitere Angriffsszenarien. Neben dem direkten Auslesen der Nutzerdaten, das jeder Hacker und Kriminelle kann, ist die Extraktion des privaten Schlüssels des Servers besonders gefährlich. Diese sind eigentlich dafür zuständig, um dem Client zu beweisen, dass die Verschlüsselung mit einem vertrauenswürdigen und richtigen Schlüssel aufgebaut wird. Sind diese privaten Schlüssel öffentlich, kann sich jeder als diese Webseite ausgeben, ohne dass der Nutzer das bemerkt. Geschieht dies, kann der Datenverkehr vom Angreifer als "Man-in-the-Middle" nach Belieben manipuliert werden. Man denke an Onlinebanking. Oder Windows Updates. Hier ist ein kompromittierter Schlüssel ein Totalschaden. Glücklicherweise ist es heute schwierig, ein solcher Man-in-the-Middle im Internet zu werden. Anders sieht es allerdings bei nicht vertrauenswürdigen lokalen Netze wie z. B. öffentlichen WLANs aus. Des Weiteren können mit den privaten Schlüsseln aufgezeichnete Kommunikation aus der Vergangenheit entschlüsselt werden, sofern die Webseite kein PFS (Perfect Forward Secrecy) eingesetzt hat. Vor dem Hintergrund, dass die NSA die Kommunikation ganzer Staaten vorratsdatenspeichert, ebenfalls ein Totalschaden.
Was bedeutet das im Klartext? Seit 2 Jahren waren viele, sehr viele Webseiten und Angebote Hackern, die diesen Bug kannten, ausgeliefert. Und (für die meisten) viel schlimmer: Die Nutzer und ihre Daten auch. Aber selbst wenn der Bug bis zum 07. April unbemerkt blieb: Ab da war er bekannt, sowohl für Web-Administratoren, aber eben auch für Angreifer.
Dabei ist das Bekanntwerden dieses mächtigen Fehlers eine interessante Geschichte. Gefunden hatte den Heartbleed-Bug, der seinen Namen auf Grund der Heartbeat-Erweiterung von OpenSSL für TLS/DTLS erhalten hat, ein Google Sicherheitsforscher Neel Mehta sowie einem Team der Firma Codenomicon . Doch der Bug wurde nicht direkt öffentlich gemacht, sondern — so lange es möglich war — im Geheimen gehalten. So konnte ein Fix entwickelt werden und einige, wichtige Netzwerke konnten sich, zumindest teilweise, gegen Heartbleed schützen. Dazu gehört zum Beispiel Facebook, Teile von Google oder auch das Content Delivery Network Cloudflare, das auch xREL nutzt.
Allerdings ließ sich diese Schwachstelle nur ein paar Tage von der Öffentlichkeit verbergen, bis sich OpenSSL dazu gedrängt sah, eine öffentliche Warnung herauszugeben — inklusive Notfall-Patch. Auf einen Schlag waren eine Vielzahl von Servern und Usern im Internet potentiellen Angreifern ausgesetzt. Darunter auch die Besucher populärer Seiten, etwa Teilen von Google, Diensten die auf die Amazon WebServices zurückgreifen oder Yahoo.
Es kamen aber Zweifel auf, ob die Lücke wirklich so schwerwiegend sei, wie angenommen — immerhin werden nur zufällige Speicherinhalte ausgegeben, es könnte also sein, dass die wichtigen Informationen nicht Teil der Leaks sind. Aus diesem Grund setzte Cloudflare einen verwundbaren Server auf und forderte die Sicherheitsforscher heraus, die Schlüssel zu erlangen — was prompt auch gelang. Damit war bewiesen, dass Heartbleed so schnell wie möglich gefixt werden musste.
Neben der großen Anzahl an Servern, die gepatcht werden müssen, besteht dabei ein zweites Problem: Sind die dem Zertifikat zugehörigen privaten Schlüssel erst einmal ausgelesen, hilft das Ändern der Passwörter, wie von vielen Diensten angeraten, auch nicht mehr viel. Vielmehr müssen die Zertifikate zurückgezogen und neu ausgestellt werden. Das Problem hierbei: Das funktioniert nicht. Denn die Browser ignorieren die bestehenden Strukturen zur Kontrolle, ob ein Zertifikat zurückgezogen wurde oder nicht. Im Zweifelsfall ist man einem Angreifer also weiterhin ausgesetzt.
Und nicht nur das. Auch digitalzeitliche Urgesteine wie SMS-Nachrichten sind, zumindest bei vereinzelten Diensten, mittels Heartbleed auslesbar — inklusive der Nachrichten, die für die 2-Faktor-Authentifizierung verschickt werden. Auch innerhalb des Tor-Netzwerkes, das Nutzern Anonymität im Internet verschaffen will, hat mit den Folgen von Heartbleed zu kämpfen.
Natürlich kamen dann auch einige Gerüchte zur Verwicklung der alliierten Geheimdienste auf. Es wurde gemutmaßt, dass der US-Geheimdienst NSA schon lange von der Sicherheitslücke wisse und sie absichtlich nicht veröffentlicht hat — wegen der vielen Terroristen natürlich. Eine andere Theorie besagt, dass der deutsche Programmierer sie sogar absichtlich für die Geheimdienste in den Code eingefügt habe. Natürlich wurden beide Gerüchte unverzüglich von den Beteiligten dementiert.
Jetzt, fast drei Wochen nach bekanntwerden des Bugs, sind zumindest alle größeren Dienste nicht mehr direkt angreifbar. Allerdings kann nicht gesagt werden, wie viele Zertifikate erlangt wurden oder auf wie vielen Diensten eine noch kritische OpenSSL-Version läuft (wie zum Beispiel bei oben erwähntem SMS-Versand). Es wird also noch eine ganze Zeit dauern, bis das Internet wieder “sicher” ist.
Die Lehre aus Heartbleed ist recht einfach. Nur weil etwas Open-Source ist und jeder es theoretisch kontrollieren kann, heißt das nicht, dass jede Zeile Code auch von genug Menschen kontrolliert wird. Denn nur dadurch, dass die Heartbeat-Funktion so selten eingesetzt wird, war es möglich, dass über zwei Jahre keiner den Fehler bemerkte. Es ist also wünschenswert, solch wichtige Bibliotheken so schlank wie möglich zu halten und nicht mit Features aufzublähen, die am Ende doch keiner nutzt. Ein solches Vorhaben betreibt das OpenBSD-Team mit LibreSSL.
Die kommerziellen Dienste ziehen allerdings auch ihre Schlüsse aus dem Desaster. Denn mit mehr finanziellen Mitteln könnten die Open-Source Organisationen auch besser die Codes überprüfen. Aus diesem Grund wurde die Core Infrastructure Initiative von IT-Riesen wie Microsoft, Google, IBM, Facebook oder Amazon ins Leben gerufen, die mit großzügigen Summen die für das World Wide Web lebenswichtigen Strukturen verstärken soll. So soll ein zweiter Vorfall wie dieser verhindert werden.
Wie geht ihr mit Heartbleed um? Hat sich euer Nutzungsverhalten geändert? Teilt uns eure Meinung in den Kommentaren mit!
Vielen Dank an AnyThinG, der an diesem Blog mitgewirkt hat.
Wer testen möchte, ob eine Seite betroffen ist, der kann das hier tun.
Zmap.io bietet eine Auflistung der Top 200.000 Webseiten, die noch vom Heartbleed-Bug betroffen sind sowie Statistiken und aktuelle Updates.