Herzschlag aussetzen: Analyse der Heartbleed OpenSSL-Sicherheitslücke

Originalartikel von Pawan Kinger, Vulnerability Research Manager

Eine Sicherheitslücke bezüglich der Heartbeat-Erweiterung von OpenSSL (quelloffenes Toolkit für sichere Transaktionen über das Internet) schreckt IT-Fachleute auf. Sollte diese Lücke ausgenützt werden, kann das eine Menge Transaktionen auf Websites und in Anwendungen, die OpenSSL nutzen, kompromittieren.

Überblick über die Heartbeat OpenSSL-Erweiterung

Die Heartbeat-Erweiterung gibt es mit der OpenSSL 1.0.1-Version seit 2011, und sie ist in RFC 6520 TLS/DTLS Heartbeat Extension definiert. Ihre Funktion liegt darin, die Wiederaufnahme von Sitzungen zu unterstützen und einen Mechanismus zu ermöglichen, mit dem SSL-Sitzungen länger aktiv bleiben können. Der RFC schlägt einen HeartbeatRequest vor, der mit einer HeartbeatResponse-Nachricht beantwortet wird. Das Ergebnis ist die Beibehaltung von Netzwerkressourcen, die im Allgemeinen für eine erneute Aushandlung der Sitzung genutzt würden. Viele Websites und Software nutzen OpenSSL, so quelloffene Server wie Apache und nginx, aber auch E-Mail- und Chat-Server sowie VPNs und sogar Netzwerk-Appliances.

Der Heartbleed-Fehler

Die Heartbleed benannte Sicherheitslücke (CVE-2014-0160) gibt es in allen OpenSSL-Implementierungen, die die Heartbeat-Erweiterung einsetzen. Nutzt ein Angreifer die Lücke aus, so kann er den Hauptspeicher in bis zu 64 KB großen Abschnitten auslesen, ohne eine Spur zu hinterlassen.

Dieser kleine Hauptspeicherteil könnte wichtige persönliche Informationen, wie private Schlüssel, Nutzername, Passwörter (häufig in Klartext), Kreditkarteninformationen und vertrauliche Dokumente, enthalten. Auch kann ein Angreifer diesen Teil immer wieder anfordern, um soviele Informationen wie möglich zu erhalten. Zudem könnte die Lücke von überall und von jederman im Internet missbraucht werden.

Im Grunde genommen besteht der Heartbleed-Bug aus einem einfachen, gewöhnlichen Programmierfehler, aufgrund dessen Hauptspeicherinhalte ohne zu überprüfen, wieviel gelesen wird, tatsächlich zurückgegeben werden. Daher kann der Nutzer mehr Informationen anfordern und erhält diese auch, ohne eines vorausgehenden Checks, ob er tatsächlich dafür autorisiert ist, diese zu sehen. Es gibt ein Payload Length-Feld, das dahingehend manipuliert werden kann.


Bild 1. Payload Length des Heartbleed-Fehlers

Ein Angriff über diese Sicherheitslücke hinterlässt keine Spuren, so dass es schwierig ist festzustellen, ob der Fehler bereits missbraucht wurde.
Betroffene OpenSSL-Versionen

Dem OpenSSL Advisory zufolge sind „lediglich die 1.0.1- und 1.0.2-Betareleases von OpenSSL betroffen, einschließlich 1.0.1f und 1.0.2-Beta1”. Das bedeutet, dass alle Anwendungen, die mit einer dieser Versionen kompiliert wurden, angreifbar sind. Nutzer können auf dieser Website prüfen, ob ihre Server dazugehören.

Eine aktualisierte Version 1.0.1g ist am 7. April 7 2014 veröffentlicht worden.

Gegenmaßnahmen

Von der Sicherheitslücke betroffene Nutzer können auf OpenSSL Version 1.0.1g updaten. Sollte dies nicht möglich sein, so müssen die Anwendungen neu kompiliert werden, sodass die Heartbeat-Erweiterung abgeschaltet wird. Dies lässt sich mit der DOPENSSL_NO_HEARTBEATS-Flag tun.

Trend Micro-Lösung

Kunden von Trend Micro Deep Security sollten auf DSRU-14-009 upgraden und die folgenden Regeln zuordnen:

  • 1006010 – Restrict OpenSSL TLS/DTLS Heartbeat Request
  • 1006011 – OpenSSL TLS/DTLS Heartbeat Information Disclosure Vulnerability
  • 1006012 – Identified Suspicious OpenSSL TLS/DTLS Heartbeat Request

Kunden mit Intrusion Defense Firewall sollten folgende Regeln zuordnen:

  • 1006017 – Restrict OpenSSL TLS/DTLS Heartbeat Message
  • 1006016 – OpenSSL TLS/DTLS Heartbeat Message Information Disclosure Vulnerability

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*