/ Security

Berühmt-berüchtigte Sicherheitslücken: Der Heartbleed-Bug

Der Heartbleed-Bug ist ein Programmierfehler, der im April 2014 öffentlich gemacht wurde. Obwohl Heartbleed aufgrund seiner schwerwiegenden Auswirkungen große Bekanntheit erlangte, existieren auch heute immer noch angreifbare Systeme.

In diesem Artikel erfahren Sie mehr über die Sicherheitslücke, die auch nach ihrem Bekanntwerden immer noch so weit verbreitet war, dass es einem kanadischen Teenager gelang, rund 900 Sozialversicherungsnummern von den Servern der kanadischen Steuerbehörde CRA zu stehlen.

Die Grundlagen

Nehmen wir an, ein Benutzer Herbert möchte eine Webseite im Internet aufrufen, zum Beispiel den Steine & Unkraut Online-Shop. Dazu muss Herberts Computer eine Verbindung zu dem Server aufbauen, auf dem diese Webseite liegt. Da über diese Verbindung sensible Daten, wie z.B. Herberts Benutzername, sein Passwort oder eventuell seine Zahlungsdaten gesendet werden, wird die Verbindung verschlüsselt.
Im Internet passiert das in der Regel mit einem Verschlüsselungsprotokoll namens TLS (Transport Layer Security).

Für das TLS Protokoll gibt es die sogenannte "Heartbeat-Erweiterung". Diese Erweiterung erlaubt es eine TLS Verbindung aktiv zu halten, obwohl seit längerem keine Daten mehr darüber geflossen sind. Bevor es die Heartbeat-Erweiterung gab, wurde eine TLS Verbindung immer beendet, wenn eine bestimmte Zeit lang keine Daten ausgetauscht wurden. Das kann für längere Wartezeiten beim Benutzer sorgen, da die Aushandlung einer neuen TLS Verbindung mit etwas Aufwand verbunden ist. Die Heartbeat-Erweiterung wurde auch genutzt, um zu überprüfen, ob der Kommunikationspartner überhaupt noch "da ist" oder ob der andere Computer z.B. abgeschaltet wurde.

Aber wie funktioniert das konkret? Die Heartbeat-Erweiterung sieht vor, dass eine bis zu 16kByte große Menge an beliebigen Daten and die Gegenseite gesendet wird, das ist die sogenannte "Heartbeat-Anfrage". Sie besteht aus einer sogenannten "Payload" (typischerweise ein Text) und der Größe dieser Payload. Der antwortende Computer schickt die Payload anschließend unverändert zurück.

Man kann sich diese Unterhaltung ungefähr so vorstellen:
Herberts Computer: "Hallo, ist noch jemand da? Wenn ja, dann gib bitte das 5 Buchstaben lange Wort Katze zurück."
Server des Steine & Unkraut Online Shops: "Katze".

Von Heartbeat zu Heartbleed

So weit so gut. Bei der Übernahme dieser Erweiterung in OpenSSL ist dann allerdings ein Programmierfehler passiert.

Was ist OpenSSL?

OpenSSL ist eine sogenannte Verschlüsselungsbibliothek. Wenn man als Entwickler ein neues Programm schreibt oder aus irgendeinem anderen Grund Verschlüsselungsfunktionen braucht, dann schreibt man diese Funktionen nicht jedes Mal selbst komplett neu. Das wäre extrem aufwendig, aber auch sehr unsicher. Denn wie man am Heartbleed Beispiel sieht, passieren selbst Profis dabei gelegentlich Fehler. Programmierer verwenden für Verschlüsselungsfunktionen also eine Bibliothek, die die von ihnen benötigten Algorithmen zur Verfügung stellt. OpenSSL war 2014 die Verschlüsselungsbibliothek schlechthin, da der Quellcode öffentlich zugänglich und die Nutzung kostenlos war. SSL (Secure Sockets Layer) ist übrigens das Vorläufer-Protokoll von TLS, oft werden die beiden Bezeichnungen aber synonym verwendet.

Der Fehler

Der eigentliche Fehler ist nun relativ klein, hatte aber sehr große Auswirkungen. Anstatt zu überprüfen, ob die in der Heartbeat-Anfrage mitgeschickte Größe wirklich der tatsächlichen Größe der Payload entspricht, vertraute der antwortende Computer einfach so auf die Angabe.

Ein Hacker kann diesen Programmierfehler ausnutzen, indem er die Heartbeat Anfrage geschickt manipuliert. Er sendet eine Heartbeat-Anfrage mit einer Payload, die z.B. 1 Byte lang ist, sagt dem anderen Computer aber, die Größe der Payload wäre 64kByte. Dieser sendet daraufhin auch brav 64kByte an Daten zurück, die sich eben gerade an der Stelle in seinem aktiven Speicher befinden. Manchmal sind das dann unnütze, kryptische Zahlenreihen, aber wenn der Hacker diese Anfrage z.B. an einen Online-Shop Server schickt sind es eben manchmal auch Passwörter oder Zahlungsdaten der Nutzer dieses Online Shops. Um bei unserem obigen Beispiel zu bleiben, man kann sich das ungefähr so vorstellen:

Hacker: "Hallo, ist noch jemand da? Wenn ja, dann gib bitte das 500 Buchstaben lange Wort Katze zurück."
Server des Steine & Unkraut Online Shops: "Katzedhvsjsojhghssnddnpassword=123456username=Herbert43w4344..."

Diese Attacke kann zudem beliebig oft wiederholt werden, um an möglichst viel Information zu gelangen. Besonders gefährlich ist die Attacke auch, weil ein Hacker mit diesem Angriff an die Schlüssel kommen kann, mit denen die TLS Verbindung zwischen Server und Benutzer verschlüsselt wird. Wenn ihm das gelingt, kann er die komplette zukünftige Kommunikation zwischen diesen beiden Parteien entschlüsseln.
Wenn die Einstellung "Perfect Forward Secrecy" im TLS Protokoll nicht aktiviert ist, dann sogar die komplette vergangene Kommunikation.

Wie kann ich mich schützen?

Diese Sicherheitslücke wurde zum Glück mittlerweile größtenteils behoben. Als Benutzer sollten Sie allerdings Passwörter, Sie seit 2014 nicht geändert haben, sofort wechseln. Als Betreiber eines Servers sollten Sie generell darauf achten Ihre Software stets aktuell zu halten.

Wie konnte das überhaupt passieren?

Der Heartbleed-Bug schlummerte 2 Jahre lang unentdeckt im Quellcode von OpenSSL. Es ist auch nicht auszuschließen, dass der Bug während dieser 2 Jahre bereits ausgenutzt wurde. Da der Quellcode öffentlich zugänglich und einsehbar war und OpenSSL auch von großen, namenhaften Firmen eingesetzt wurde, erzeugt die Existenz dieser Sicherheitslücke ein gewisses Unverständnis. Zumindest bis man herausfindet, dass OpenSSL zu jenem Zeitpunkt von nur einem Vollzeit Mitarbeiter entwickelt wurde und einer kleinen Gruppe Freiwilliger, die in ihrer Freizeit daran arbeiteten. Obwohl OpenSSL so häufig verwendet wurde, wurde der Code schlichtweg nicht oft genug von den einsetzenden Unternehmen überprüft.

Genau deswegen ist IT-Monitoring ein so hilfreiches Werkzeug. Sie erfahren sofort von verdächtigen Aktionen auf Ihrer Webseite und können direkt handeln. Auch auf den Heartbleed-Bug testen wir von Enginsight natürlich. Registrieren Sie sich einfach bei uns und testen Sie selbst 14 Tage lang, ob wir Sie beim Aufbau der IT-Sicherheit in Ihrem Unternehmen unterstützen sollen.