Heartbleed: Die Lücke, durch die Angreifer Serverspeicher lasen
Im April 2014 erlaubte eine Sicherheitslücke in OpenSSL Angreifern, den Speicher von 24–55 % der HTTPS-Server beliebter Websites auszulesen. Wie das funktionierte und warum ein Patch allein nicht reichte.

Sofortmaßnahmen
- Aktualisiere OpenSSL von den Versionen 1.0.1 bis 1.0.1f auf 1.0.1g oder neuer.
- Wenn du nicht sofort aktualisieren kannst, kompiliere OpenSSL mit der Option
-DOPENSSL_NO_HEARTBEATSneu. - Behandle Schlüssel, die mit einer verwundbaren Version erzeugt wurden, als gestohlen: Erzeuge einen neuen privaten Schlüssel, besorge ein neues Zertifikat und widerrufe das alte.
- Prüfe auch Netzwerkgeräte und eingebettete Geräte: Viele wurden mit einer verwundbaren OpenSSL-Version ausgeliefert.
- Jahr
- 2014
- CVSS-3.1-Wert
- 7,5 hoch
- der HTTPS-Server unter den eine Million meistbesuchten Websites waren anfangs verwundbar
- 24–55 %
- der eine Million meistbesuchten HTTPS-Websites ersetzten binnen drei Wochen ihre Zertifikate
- 23 %
- Reichweite erfüllt
Anfangs waren 24–55 % der HTTPS-Server in der Alexa Top 1 Million verwundbar, zwei Tage nach der Bekanntgabe noch etwa 2 Millionen HTTPS-Server (The Matter of Heartbleed, 2014).
- Massenausnutzung nicht erfüllt
Forscher zählten 5.948 Angriffsversuche auf 217 Ziele in vier überwachten Netzwerken; die Quellen belegen keine Massenangriffe (The Matter of Heartbleed, 2014).
- Schaden nicht erfüllt
Eine verlässliche Gesamtzahl gibt es nicht; der Diebstahl von 900 Sozialversicherungsnummern bei der kanadischen Steuerbehörde Canada Revenue Agency ist nur aus der Presse bekannt (CTV News).
- Außergewöhnliche Reaktion erfüllt
Schlüssel und Zertifikate mussten als kompromittiert gelten (US-CERT), und 23 % der HTTPS-Websites in der Alexa Top 1 Million ersetzten binnen drei Wochen ihre Zertifikate (The Matter of Heartbleed, 2014).
| Betroffen | OpenSSL, die Verschlüsselungssoftware hinter vielen HTTPS-Servern |
|---|---|
| CVE | CVE-2014-0160 |
| CVSS-Vektor | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| Schwachstellentyp (CWE) | CWE-125 |
| Behoben in | OpenSSL 1.0.1g (7. April 2014) |
| In der CISA-Liste ausgenutzter Schwachstellen seit | 4. Mai 2022 |
| Gefunden von | Das Sicherheitsteam von Google und Codenomicon, unabhängig voneinander |
- 1Fehler gelangt in den Code
- 2Entdeckt+811 Tage
- 3Dem Hersteller gemeldet+822 Tage
- 4Patch verfügbar+828 Tage
- 5Erste Angriffe beobachtet+829 Tage
- 6In die CISA-Liste ausgenutzter Schwachstellen aufgenommen+3777 Tage
Am 7. April 2014 behob das OpenSSL-Projekt eine Sicherheitslücke, durch die jeder im Internet Teile des Arbeitsspeichers eines Servers auslesen konnte, darunter Passwörter und manchmal sogar die geheimen Schlüssel des Servers. OpenSSL ist ein Software-Baustein, mit dem viele Webserver, Mailserver und Geräte ihre Verbindungen verschlüsseln, etwa für HTTPS, die sichere Form des Webs. Eine Messstudie schätzt, dass anfangs 24–55 % der HTTPS-Server der eine Million meistbesuchten Websites verwundbar waren.
So funktionierte der Angriff
Verschlüsselte Verbindungen im Web nutzen ein Protokoll namens TLS. Es hat eine „Heartbeat“-Funktion (Herzschlag), die eine Verbindung offen hält: Eine Seite schickt eine kurze Nachricht zusammen mit einer Zahl, die angibt, wie lang die Nachricht ist, und die andere Seite schickt die Nachricht zurück.
OpenSSL vertraute dieser Zahl und verglich sie nie mit der tatsächlichen Länge. Ein Angreifer konnte eine Nachricht von einem Byte schicken, aber behaupten, sie sei 65.535 Byte lang. Der Server kopierte dann bis zu 64 KB von dem, was im Speicher neben der Nachricht lag, in die Antwort. Dazu konnten Sitzungs-Cookies gehören, die Nutzer angemeldet halten, außerdem Passwörter und manchmal der private Schlüssel des Servers, das Geheimnis, das seine verschlüsselten Verbindungen schützt.
Die Anfrage hinterließ keine Spuren in den normalen Logdateien und ließ sich beliebig oft wiederholen, jedes Mal für ein neues Stück Speicher. Derselbe Fehler wirkte auch umgekehrt: gegen Programme, die sich mit einem bösartigen Server verbanden. Der fehlerhafte Code kam am 31. Dezember 2011 in OpenSSL und erschien am 14. März 2012 in Version 1.0.1. Er war also etwa zwei Jahre im Einsatz, bevor er entdeckt wurde.
- Angreiferschickt einen Heartbeat mit 1 Byte Daten
- OpenSSLglaubt die angegebene Länge von 65.535 Byte
- Serverspeicherbis zu 64 KB landen in der Antwort
- Angreiferliest Passwörter, Cookies oder sogar Schlüssel mit
Reichweite und Schaden
Die besten Messungen stammen aus „The Matter of Heartbleed“, einer Studie von 2014 von Forschern der University of Michigan, der University of California Berkeley, des Forschungsinstituts ICSI und der Purdue University. Sie nutzt die Alexa Top 1 Million, eine Rangliste der eine Million meistbesuchten Websites. Die Autoren schätzen, dass 24–55 % der HTTPS-Server auf dieser Liste verwundbar waren, als die Lücke bekannt wurde, darunter mindestens 44 der 100 meistbesuchten Websites. Einer der Entdecker hatte zuerst von 66 % gesprochen, gestützt auf den Marktanteil der Webserver Apache und nginx; die Studie hält diese Zahl für zu hoch.
Große Websites patchten schnell: Innerhalb von 24 Stunden hatten alle Websites der Top 100 bis auf 5 den Fix installiert. Zwei Tage nach der Bekanntgabe waren noch 11,5 % der HTTPS-Websites in der Alexa Top 1 Million verwundbar, ebenso 6 % aller HTTPS-Server im Internet, etwa 2 Millionen Rechner. Nach rund zwei Wochen kam der Rückgang fast zum Stillstand.
| Anfangs, untere Schätzung | 24 % | |
|---|---|---|
| Anfangs, obere Schätzung | 55 % | |
| 11,5 % | |
| 3,1 % |
Die ersten beiden Balken zeigen die Spanne, die die Studie für den Beginn schätzt, die anderen beiden sind Messungen. Quelle: The Matter of Heartbleed (2014).
Nicht nur Websites waren gefährdet. In einer Stichprobe von 1 % des Internets waren 7,5 % der Mailserver mit Verschlüsselung verwundbar. Drei Tage nach der Bekanntgabe waren 48 % der Relays von Tor, einem Netzwerk für anonymes Surfen, noch verwundbar. Ein vollständiger Scan des Internets am 24. April 2014 fand 588.686 verwundbare Rechner; 56 % davon waren eingebettete Geräte, also kleine Geräte mit fest eingebauter Software.
Die Forscher durchsuchten außerdem den aufgezeichneten Datenverkehr von vier überwachten Netzwerken nach Angriffen. Vor der Veröffentlichung der Lücke fanden sie keinen Versuch. Der erste kam 21 Stunden und 29 Minuten nach der Bekanntgabe, insgesamt zählten sie 5.948 Versuche von 692 Quellen gegen 217 Ziele. Wie viele Daten weltweit gestohlen wurden, ist unbekannt. Der bekannteste Fall stammt aus der Presse: Die Canada Revenue Agency, Kanadas Steuerbehörde, gab an, dass über Heartbleed 900 Sozialversicherungsnummern entwendet wurden. Eine verlässliche Gesamtzahl zum Schaden gibt es nicht.
Der Patch und die Reaktion
Das Sicherheitsteam von Google entdeckte die Lücke am 21. März 2014 und patchte seine eigenen Server noch am selben Tag; am 1. April informierte es das OpenSSL-Team. Das finnische Sicherheitsunternehmen Codenomicon fand die Lücke Anfang April unabhängig davon und meldete sie über das NCSC-FI, das nationale Cybersicherheitszentrum Finnlands. Am 7. April veröffentlichte OpenSSL die Version 1.0.1g. Der Fix ist einfach: OpenSSL verwirft jetzt Heartbeat-Nachrichten, die eine größere Länge angeben, als sie Daten enthalten.
Das Update allein reichte nicht, weil ein Angreifer den privaten Schlüssel eines Servers unbemerkt kopiert haben konnte. Das US-CERT, das Computer-Notfallteam der US-Regierung, warnte: „Alle Schlüssel, die mit einer verwundbaren Version von OpenSSL erzeugt wurden, sollten als kompromittiert gelten.“ Die Betreiber mussten neue Schlüssel erzeugen, neue Zertifikate beantragen, die digitalen Ausweise von Websites, und die alten widerrufen, damit Browser ihnen nicht mehr vertrauen. Zwischen dem 9. und dem 30. April ersetzten 23 % aller HTTPS-Websites in der Alexa Top 1 Million ihre Zertifikate, 4 % widerriefen sie.
Websites, die langsam gepatcht wurden, tauschten auch ihre Schlüssel nur langsam aus:
| Hatten den Fix installiert | 73 % | |
|---|---|---|
| Hatten ihr Zertifikat ersetzt | 10,1 % |
Websites der Alexa Top 1 Million, die am 9. April 2014 verwundbar waren. Quelle: The Matter of Heartbleed (2014).
Von den verwundbaren Websites, die ihr Zertifikat tatsächlich ersetzten, verwendeten 14 % denselben privaten Schlüssel weiter, was keinen Schutz brachte, und nur 19 % widerriefen das alte Zertifikat. Warnungen wirkten: In einem Experiment mit rund 150.000 verwundbaren Rechnern patchten Betreiber, die von den Forschern benachrichtigt wurden, 47 % mehr als Betreiber ohne Benachrichtigung.
Die National Vulnerability Database bewertet Heartbleed auf CVSS 3.1 mit 7,5 von 10, also als „hoch“ und nicht als „kritisch“, weil Angreifer mit der Lücke Daten lesen, aber weder verändern noch einen Server lahmlegen können.
Quellen
- OpenSSL-Sicherheitshinweis vom 7. April 2014 openssl-library.org
- Codenomicon: heartbleed.com, die Seite der Entdecker zum Fehler heartbleed.com
- The Matter of Heartbleed, ACM Internet Measurement Conference (2014, PDF) nebelwelt.net
- NVD: CVE-2014-0160 nvd.nist.gov
- US-CERT-Warnung TA14-098A cisa.gov
- CTV News (Presse): Laut CRA wurden 900 Sozialversicherungsnummern entwendet ctvnews.ca
Weiterlesen: ConfickerZurück: ShellshockÜbersicht: Schwachstellen