Was ist die Heartbleed-Sicherheitslücke?

Eine der bekanntesten Schwachstellen der Mitte der 2010er Jahre hieß „Heartbleed“. Heartbleed war besonders gravierend, weil es die Software „OpenSSL“ betraf, die wichtigste kryptografische Bibliothek für HTTPS-Verbindungen, die sehr weit verbreitet sind. Erschwerend kommt hinzu, dass die Schwachstelle zuvor mehr als zwei Jahre in OpenSSL vorhanden war Es wurde entdeckt, veröffentlicht und gepatcht, was bedeutete, dass viele Leute ein angreifbares Gerät verwendeten Ausführung.

Heartbleed war eine Datenleck-Schwachstelle in der Heartbeat-Erweiterung, die bei Ausnutzung Daten aus dem RAM vom Server zum Client durchsickerte. Die Heartbeat-Erweiterung wird verwendet, um eine Verbindung zwischen dem Webserver und dem Client aufrechtzuerhalten, ohne einen normalen Seitenaufruf zu tätigen.

Im Fall von OpenSSL sendet der Client eine Nachricht an den Server und teilt dem Server mit, wie lang die Nachricht ist, bis zu 64 KB. Der Server soll dann dieselbe Nachricht zurückgeben. Entscheidend ist jedoch, dass der Server tatsächlich nicht überprüft hat, ob die Nachricht so lang war, wie der Client behauptete. Dies bedeutete, dass ein Client eine 10-KB-Nachricht senden konnte, behauptete, es seien 64 KB und eine 64-KB-Antwort erhalten, wobei die zusätzlichen 54 KB aus den nächsten 54 KB RAM bestehen, unabhängig davon, welche Daten dort gespeichert waren. Dieser Prozess wird gut visualisiert durch die

XKCD-Comic #1354.

Bild mit freundlicher Genehmigung von xkcd.com.

Indem ein Angreifer viele kleine Heartbeat-Anfragen stellt und behauptet, sie seien groß, könnte er sich ein Bild vom größten Teil des Arbeitsspeichers des Servers machen, indem er die Antworten zusammensetzt. Zu den im RAM gespeicherten Daten, die durchsickern könnten, gehören Verschlüsselungsschlüssel, HTTPS-Zertifikate sowie unverschlüsselte POST-Daten wie Benutzernamen und Passwörter.

Hinweis: Es ist weniger bekannt, aber das Heartbeat-Protokoll und der Exploit funktionierten auch in die andere Richtung. Ein bösartiger Server könnte so konfiguriert worden sein, dass er bis zu 64 KB Benutzerspeicher pro Heartbeat-Anfrage liest.

Das Problem wurde am 1. April 2014 von mehreren Sicherheitsforschern unabhängig voneinander entdeckt und privat an OpenSSL weitergegeben, damit ein Patch erstellt werden konnte. Der Fehler wurde bei der Veröffentlichung des Patches am 7. April 2014 veröffentlicht. Die beste Lösung zur Behebung des Problems bestand darin, den Patch zu installieren, aber es war auch möglich, das Problem durch Deaktivieren der Heartbeat-Erweiterung zu beheben, wenn ein sofortiges Patchen nicht möglich war.

Obwohl der Exploit öffentlich und allgemein bekannt ist, wurden viele Websites leider immer noch nicht sofort aktualisiert, und die Schwachstelle wird auch noch Jahre später gelegentlich gefunden. Dies führte dazu, dass der Exploit in einer Reihe von Fällen verwendet wurde, um Zugang zu Konten zu erhalten oder Daten zu verlieren.