Security / Software-Entwicklung

SSL Heartbleed – Das Ende aller Sicherheit im Internet?

Wer in der letzten Zeit die IT-Medien verfolgt hat, kam an einem Thema nicht vorbei: Heartbleed. So lautet der Name einer unlängst entdeckten schweren Sicherheitslücke in der weit verbreiteten Verschlüsselungsbibliothek OpenSSL. Dadurch lassen sich Passwörter und andere private Daten von Nutzern betroffener Server – etwa beim Verwenden von Online Banking – ausspähen. Berichte sprechen von der größten Sicherheitslücke aller Zeiten. Allein in Österreich wurden nach bekannt werden der Lücke mehrere Unternehmen, darunter Erste Bank und Card Complete, Opfer von Angriffen (Futurezone Bericht).

In diesem Artikel möchte ich zunächst die Lücke kurz erläutern, die tatsächliche Verbreitung  bewerten und abschließend gerne Tipps abgeben, wie man sich vor Angriffen schützen kann.

heartbleed openssl

Die Lücke und der Angriff

Das SSL Protokoll, welches unter anderem zur verschlüsselten Kommunikation mit Webseiten verwendet wird, hat eine Funktion namens Heartbeat. Da genau diese Funktion die Sicherheitslücke in OpenSSL verursacht, wurde der Name „Heartbleed“ gewählt. Die Funktion dient dazu sicherzustellen, dass die Verbindung bestehen bleibt und der andere Kommunikationspartner noch da ist. So sendet etwa bei einer Onlinebanking Sitzung der Webbrowser regelmäßig ein Paket mit Daten an den Webserver der Bank. Der Server legt die Daten aus dem Paket in seinem Arbeitsspeicher ab und sendet sie dann an den Browser zurück. So weit, so normal.

Das Problem in OpenSSL, welches nun zur Lücke führte, ist folgendes: Beim Senden des Paketes schickt der Browser eine Längenangabe mit. OpenSSL legt das Paket im Speicher ab, liest danach die Daten wieder mit der angegebenen Länge aus dem Speicher und schickt sie zurück. Wenn ein Angreifer nun ein Paket mit 5 Bytes an Daten schickt und in der Längenangabe fälschlicher Weise sagt, das Paket wäre 60 Bytes lang, schickt OpenSSL das Paket und die 55 Bytes, die im Speicher danach abgelegt sind zurück. Typischerweise sind dort Daten die der Server zuvor über verschlüsselte Verbindungen empfangen oder versendet hat (freigegebene Puffer). Diese Daten können Login Informationen von anderen Benutzern, wie z.B. Passwörter enthalten. Eine schöne Verbildlichung dieses Ablaufs ist im XKCD Comic Nummer 1354 zu finden.

 

Wie schlimm es wirklich ist

Laut ersten Berichten sollen bis zu 66% aller Webserver (Apache und nginx) von der Lücke betroffen gewesen sein (Bericht). Die Lücke existierte für circa zwei Jahre unentdeckt in OpenSSL. Webserver, die ältere Versionen verwenden oder die Heartbeat Funktion nicht unterstützen sind nicht betroffen. Daher wurde in weiteren Berichten die Zahl entsprechend korrigiert. Von den 66% seien über 80% gar nicht anfällig für die Lücke (Netcraft Artikel). Zusätzlich ist zu erwähnen, dass Microsoft Systeme (Windows, IIS) die Lücke überhaupt nicht enthalten, da hier statt OpenSSL die Microsoft-eigene Implementierung SChannel zum Einsatz kommt. Nichts desto trotz ist Heartbleed eine sehr schwere Sicherheitslücke, die viele Server und damit auch viele Nutzer betrifft.

 

Wie man sich schützen kann

Der Fehler ist in den OpenSSL Versionen 1.0.1 bis 1.0.1f enthalten. Daher sollte man die Bibliothek auf eigenen Servern umgehend auf 1.0.1g updaten bzw. entsprechende Patches einspielen. Wie in der Abbildung gezeigt, kann man eigene Systeme mit verschiedenen Diensten im Internet (https://www.ssllabs.com/, http://tif.mcafee.com/heartbleedtest) auf die Lücke hin überprüfen. Für firmeninterne Server, die vom Internet aus nicht erreichbar sind, gibt es ein entsprechendes Prüfskript zum herunter laden auf GitHub.

Heartbleed Prüfung von Google.at

Heartbleed Prüfung von Google.at

Ist man selbst nur Nutzer von möglicherweise betroffenen Systemen sollte man beim Betreiber nachfragen ob die Lücke geschlossen wurde. Im Zweifelsfall sollte man auch diese Systeme prüfen bevor man sich wieder dort anmeldet. Nachdem der Betreiber die Lücke geschlossen hat sollte man sicherheitshalber sein Passwort ändern.

 

Passende Artikel

2 Kommentare

  1. Sehr gute, klar verständliche Erklärung des Bugs und wen es betrifft bzw. welche Auswirkungen damit verbunden sind.

    • Christian Kadluba Christian Kadluba sagt:

      Vielen Dank! Freut mich, dass der Artikel verständlich ist. 🙂