„Heartbleed“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
er heißt "Heartbleed Bug", vgl. heartbleed.com. Definition kann Namensbestandteile wiederholen, vgl. Grand Central Terminal ("großer Zentralbahnhof ist ein Bahnhof") oder Vatikanstaat ("Staat Vatikanstadt ist der kleinste Staat")
→‎Entstehung: Hinweis auf Dissertation wieder rein: nicht als Indiz für Vorsatz, sondern für Fahrlässigkeit, bzw. mangelnde Professionalität, s. Disk.
Zeile 10:Zeile 10:


== Entstehung ==
== Entstehung ==
Der Quellcode, der den Fehler aufweist, wurde am 1. Januar 2012 in das OpenSSL-[[Git]]-Repository eingepflegt<ref>[http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=4817504d069b4c5082161b02a22116ad75f822b1 git-commit]</ref> und erstmals am 14. März 2012 mit OpenSSL-Version 1.0.1 veröffentlicht. Der Code wurde zuvor von einem Studenten der [[Fachhochschule Münster]] und der [[Universität Duisburg-Essen]] im Rahmen der Vorarbeiten zu seiner Dissertation über das [[Stream Control Transmission Protocol|SCTP]]-Protokoll entwickelt und sollte OpenSSL um ein sogenanntes [[Heartbeat]]-Verfahren erweitern, mit dem es möglich ist, zu erfragen, ob der Server noch erreichbar ist.<ref>[http://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-31696/dissertation.pdf ''SCTP. Strategies to Secure End-To-End Communication'', S. 66f.]</ref> Der Programmierer beteuerte, es habe sich dabei um einen reinen [[Programmierfehler]] gehandelt.<ref>[http://www.smh.com.au/it-pro/security-it/man-who-introduced-serious-heartbleed-security-flaw-denies-he-inserted-it-deliberately-20140410-zqta1.html Der Programmierer im Sunday Morning Herald]</ref>
Der Quellcode, der den Fehler aufweist, wurde am 1. Januar 2012 in das OpenSSL-[[Git]]-Repository eingepflegt<ref>[http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=4817504d069b4c5082161b02a22116ad75f822b1 git-commit]</ref> und erstmals am 14. März 2012 mit OpenSSL-Version 1.0.1 veröffentlicht. Der Code wurde zuvor von einem Studenten der [[Fachhochschule Münster]] und der [[Universität Duisburg-Essen]] im Rahmen der Vorarbeiten zu seiner Dissertation über das [[Stream Control Transmission Protocol|SCTP]]-Protokoll entwickelt und sollte OpenSSL um ein sogenanntes [[Heartbeat]]-Verfahren erweitern, mit dem es möglich ist, zu erfragen, ob der Server noch erreichbar ist.<ref>[http://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-31696/dissertation.pdf ''SCTP. Strategies to Secure End-To-End Communication'', S. 66f.]</ref> Der Programmierer beteuerte, es habe sich dabei um einen reinen [[Programmierfehler]] gehandelt.<ref>[http://www.smh.com.au/it-pro/security-it/man-who-introduced-serious-heartbleed-security-flaw-denies-he-inserted-it-deliberately-20140410-zqta1.html Der Programmierer im Sunday Morning Herald]</ref>Obwohl der Programmierer sich in seiner Dissertation mit Angriffen auf den Heartbeat-Mechanismus an gleicher Stelle beschäftigt hat,<ref>a.a.O. S. 67</ref> hat er mit seinem Code-Beitrag zuvor selbst eine ähnliche Sicherheitslücke eingebaut.


== Entdeckung ==
== Entdeckung ==

Version vom 16. April 2014, 08:31 Uhr

Heartbleed-Logo

Der Heartbleed-Bug ist ein schwerwiegender Programmfehler in der Open-Source-Bibliothek OpenSSL, der durch seine Tragweite Auswirkungen auf große Teile des Internets hatte und 2014 weltweites Medienecho erzeugte.

Beschreibung

Bildhafte Darstellung der Funktionsweise von Heartbleed

Der Fehler befand sich in der TLS-Heartbeat-Funktion. Diese sieht vor, dass der Client eine bis zu 16 kByte große Menge an beliebigen Daten (sogenannter Payload) an den Server schickt, der anschließend diese Daten zurücksendet, um zu signalisieren, dass die Verbindung noch in Ordnung ist.

Bei der fehlerhaften Implementierung dieser Funktion wird nicht überprüft, ob die angegebene Länge der Daten mit der tatsächlichen Länge der Daten übereinstimmt. Ist die angegebene Länge größer als die tatsächliche Länge, so kann aufgrund dieser fehlenden Überprüfung ein Angreifer mit einer Anfrage bis zu 64 kByte[1] des Arbeitsspeichers der Gegenstelle auslesen.[2] Der Angriff kann mehrmals hintereinander durchgeführt werden, um mehr Speicher auszulesen. In Tests gelang es damit u. a. den privaten Schlüssel des Serverzertifikats, Benutzernamen und Passwörter auszulesen.[3]

Entstehung

Der Quellcode, der den Fehler aufweist, wurde am 1. Januar 2012 in das OpenSSL-Git-Repository eingepflegt[4] und erstmals am 14. März 2012 mit OpenSSL-Version 1.0.1 veröffentlicht. Der Code wurde zuvor von einem Studenten der Fachhochschule Münster und der Universität Duisburg-Essen im Rahmen der Vorarbeiten zu seiner Dissertation über das SCTP-Protokoll entwickelt und sollte OpenSSL um ein sogenanntes Heartbeat-Verfahren erweitern, mit dem es möglich ist, zu erfragen, ob der Server noch erreichbar ist.[5] Der Programmierer beteuerte, es habe sich dabei um einen reinen Programmierfehler gehandelt.[6]Obwohl der Programmierer sich in seiner Dissertation mit Angriffen auf den Heartbeat-Mechanismus an gleicher Stelle beschäftigt hat,[7] hat er mit seinem Code-Beitrag zuvor selbst eine ähnliche Sicherheitslücke eingebaut.

Entdeckung

Am 7. April 2014 hat das OpenSSL-Team einen Sicherheitshinweis des Inhalts herausgegeben, dass die OpenSSL-Versionen 1.0.1 bis einschließlich 1.0.1f, sowie 1.0.2-beta bis einschließlich 1.0.2-beta1[8] vom sogenannten Heartbleed-Bug[9] betroffen seien. Es ist jedoch möglich, OpenSSL ohne die fehlerhafte Heartbeat-Komponente zu kompilieren (-DOPENSSL_NO_HEARTBEATS), eine so kompilierte Version war dadurch auch gegen einen Heartbleed-Angriff immun.[10]

Die Sicherheitslücke bestand insgesamt für 27 Monate, bis sie unabhängig voneinander von Antti Karjalainen (Codenomicon, Oulu, Finnland) und Neel Mehta (Google Security) entdeckt wurde.[11][12][13]

Auswirkungen

Abgesehen von möglicherweise abgegriffenen Zugangsdaten (Benutzernamen, Passwörter) kann mit dem privaten Schlüssel des Serverzertifikats ein, auch lange vor dem Bekanntwerden des Fehlers, aufgezeichneter Datenverkehr nachträglich entschlüsselt werden, sofern die Verschlüsselung nicht mit Perfect Forward Secrecy geschützt war. Außerdem können mit dem privaten Schlüssel des Serverzertifikats Man-in-the-middle-Angriffe durchgeführt werden, sofern das Serverzertifikat noch nicht abgelaufen oder widerrufen ist. Es können alle Dienste betroffen sein, wie beispielsweise E-Mail-Verkehr oder verschlüsselte Chats, sofern eine betroffene OpenSSL-Version verwendet wurde. SSH ist nicht betroffen, da es TLS nicht verwendet.[14]

Private Schlüssel der Serverzertifikate (und möglicherweise auch andere Zugangsdaten) auf betroffenen Systemen sollten als kompromittiert betrachtet werden. Es wurde empfohlen, diese auszutauschen. Sicherheitsbewussten Nutzern wurde empfohlen, ihre Passwörter zu ändern.[15] Durch die hohe Anzahl betroffener Systeme stellte dies im April 2014 auch professionelle Zertifikatsanbieter vor Herausforderungen.[16] Der Kryptologe und Sicherheitsexperte Bruce Schneier beschreibt die Tragweite des Problems als:

“Catastrophic is the right word. On the scale of 1 to 10, this is an 11.”

„Katastrophal ist das richtige Wort. Auf einer Skala von 1 bis 10 ist dies eine 11.“

Bruce Schneier[17]

OpenBSD- und OpenSSH-Entwickler Theo de Raadt bezeichnete in diesem Zusammenhang das OpenSSL-Team als nicht verantwortungsbewusst, da dieses einen Sicherheitsmechanismus, der bei der Entwicklung diesen Fehler nicht zugelassen hätte, aus Gründen der Performanz explizit umgehe.[18]

Das Abgreifen dieser Daten hinterlässt kaum Spuren auf dem angegriffenen System, daher ist nicht sicher, ob der Fehler in der Vergangenheit bereits ausgenutzt wurde,[19][20] es gibt jedoch Hinweise auf einen Missbrauch im November 2013.[21] Die Nachrichtenagentur Bloomberg berichtete unter Berufung auf „zwei informierte Personen“, dass der Heartbleed-Bug praktisch von Beginn an durch die NSA genutzt wurde,[22] was vom Büro des NSA-Direktors umgehend dementiert wurde.[23][24]

Einzelnachweise

  1. So funktioniert der Heartbleed-Exploit
  2. existential type crisis : Diagnosis of the OpenSSL Heartbleed Bug detaillierte technische Beschreibung, englisch, abgerufen am 10. April 2014.
  3. Passwort-Zugriff: Heartbleed-Lücke mit katastrophalen Folgen. Abgerufen am 10. April 2014.
  4. git-commit
  5. SCTP. Strategies to Secure End-To-End Communication, S. 66f.
  6. Der Programmierer im Sunday Morning Herald
  7. a.a.O. S. 67
  8. OpenSSL Security Advisory vom 7. April 2014, englisch, abgerufen am 10. April 2014.
  9. The Heartbleed Bug Englisch. Abgerufen am 8. April 2014.
  10. OpenSSL-Sicherheitslücke: Update empfohlen
  11. http://www.businessinsider.com/heartbleed-bug-codenomicon-2014-4
  12. How Codenomicon Found The Heartbleed Bug Now Plaguing The Internet Englisch. Abgerufen am 14. April 2014.
  13. http://derstandard.at/1397301933839/Wie-Google-und-sechs-Finnen-gleichzeitig-Heartbleed-entdeckten
  14. http://www.golem.de/news/openssl-wichtige-fragen-und-antworten-zu-heartbleed-1404-105740.html
  15. Wilhelms-Universitätitsluecke-jetzt-passwoerter-aendern-a-963590.html Heartbleed-Sicherheitslücke: Diese Passwörter müssen Sie jetzt ändern Abgerufen am 10. April 2014.
  16. Heartbleed SSL-GAU: Neue Zertifikate braucht das Land. Abgerufen am 10. April 2014.
  17. Heartbleed. Abgerufen am 11. April 2014.
  18. Theo De Raadt on Hearbleed
  19. Der GAU für Verschlüsselung im Web: Horror-Bug in OpenSSL. Abgerufen am 8. April 2014.
  20. Keys auslesen mit OpenSSL. Abgerufen am 8. April 2014.
  21. Spuren von Heartbleed schon im November 2013 Abgerufen am 10. April 2014.
  22. Spiegel Online vom 11. April 2014: Internet-Sicherheitslücke: NSA soll "Heartbleed"-Fehler systematisch ausgenutzt haben
  23. http://www.sueddeutsche.de/digital/nsa-und-die-heartbleed-luecke-wucht-des-misstrauens-1.1935920
  24. http://icontherecord.tumblr.com/post/82416436703/statement-on-bloomberg-news-story-that-nsa-knew