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 in OpenSSL seit mehr als zwei Jahren vorhanden war, bevor sie entdeckt, veröffentlicht und gepatcht wurde, was bedeutete, dass viele Leute eine anfällige Version verwendeten.
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 durchzuführen.
Bei 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 durch den XKCD-Comic #1354 gut visualisiert .
Bild mit freundlicher Genehmigung von xkcd.com .
Indem ein Angreifer viele kleine Heartbeat-Anfragen stellt und behauptet, dass es sich um große handelt, kann sich ein Angreifer ein Bild vom größten Teil des RAM 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 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 veröffentlicht, als der Patch am 7. April 2014 veröffentlicht wurde. Die beste Lösung zur Behebung des Problems bestand darin, den Patch zu installieren. Es war jedoch auch möglich, das Problem durch Deaktivieren der Heartbeat-Erweiterung zu beheben, wenn ein sofortiges Patchen nicht möglich war Möglichkeit.
Obwohl der Exploit öffentlich und allgemein bekannt war, wurden viele Websites leider immer noch nicht sofort aktualisiert, und die Schwachstelle wurde auch noch Jahre später gelegentlich gefunden. Dies führte dazu, dass der Exploit in mehreren Fällen verwendet wurde, um Zugang zu Konten zu erhalten oder Daten zu verlieren.