Heartbleed: Was ist das und welche Möglichkeiten gibt es, es einzudämmen?

Heartbleed: Was ist das und welche Möglichkeiten gibt es, es einzudämmen?

Das ist einKanonische Fragezum Verständnis und zur Behebung des Heartbleed-Sicherheitsproblems.

Was genau ist CVE-2014-0160, auch bekannt als „Heartbleed“? Was ist die Ursache, welche Betriebssysteme und Versionen von OpenSSL sind anfällig, was sind die Symptome, gibt es Methoden, um einen erfolgreichen Exploit zu erkennen?

Wie kann ich feststellen, ob mein System betroffen ist? Wie kann diese Sicherheitslücke gemindert werden? Muss ich mir Sorgen machen, dass meine Schlüssel oder andere private Daten kompromittiert wurden? Über welche anderen Nebenwirkungen muss ich mir Sorgen machen?

Antwort1

Erste, bevor Sie ausflippen, stellen Sie sicher, dass Sie verstehen, ob diese Sicherheitslücke tatsächlich auf Sie zutrifft oder nicht. Wenn Sie einen Server haben, aber noch nie Anwendungen mit TLS hatten, dann ist dies für Sie keine Sache mit hoher Priorität. Wenn Sie hingegenjemals gehabt habenTLS-fähige Anwendungen? Dann erwartet Sie eine Überraschung. Lesen Sie weiter:

Was genau ist CVE-2014-0160 alias „Heartbleed“?

Es ist ein verdammt großes Durcheinander, das ist es. Kurz gesagt wurde in den OpenSSL-Versionen 1.0.1 bis 1.0.1f eine aus der Ferne ausnutzbare Schwachstelle entdeckt, über die ein Angreifer bestimmte Teile des Systemspeichers lesen kann. Diese Teile enthalten unter anderem vertrauliche Daten wie private Schlüssel, Preshared Keys, Passwörter und wertvolle Unternehmensdaten.

Der Fehler wurde unabhängig voneinander von Neel Mehta von Google Security (21. März 2014) und dem finnischen IT-Sicherheitstestunternehmen Codenomicon (2. April 2014) entdeckt.

Was ist die Ursache?

Nun ja, fehlerhafter Code in OpenSSL.Hierist der Commit, der die Sicherheitslücke verursacht hat, undHierist der Commit, der die Sicherheitslücke behoben hat. Der Fehler trat im Dezember 2011 auf und wurde heute, am 7. April 2014, gepatcht.

Der Fehler kann auch als Symptom eines größeren Problems gesehen werden. Die beiden damit verbundenen Probleme sind (1) welche Prozesse sind vorhanden, um sicherzustellen, dass kein fehlerhafter Code in eine Codebasis eingeführt wird, und (2) warum sind die Protokolle und Erweiterungen so komplex und schwer zu testen? Punkt (1) ist ein Governance- und Prozessproblem bei OpenSSL und vielen anderen Projekten. Viele Entwickler widersetzen sich einfach Praktiken wie Codeüberprüfungen, Analysen und Scans. Punkt (2) wird in der TLS WG der IETF diskutiert. SieheHeartbleed / Protokollkomplexität.

Wurde der fehlerhafte Code in böswilliger Absicht eingefügt?

Ich will nicht darüber spekulieren, ob es sich wirklich um einen Fehler handelte oder ob möglicherweise ein bisschen Code von einem böswilligen Akteur eingeschmuggelt wurde. Die Person, die den Code für OpenSSL entwickelt hat, gibt jedoch an, dass es unbeabsichtigt geschah. SieheDer Mann, der die schwerwiegende Sicherheitslücke „Heartbleed“ einführte, bestreitet, sie absichtlich eingefügt zu haben.

Welche Betriebssysteme und Versionen von OpenSSL sind anfällig?

Wie oben erwähnt, jedes Betriebssystem oder jede Anwendung, die OpenSSL 1.0.1 bis 1.0.1f verwendet oder damit verknüpft ist.

Was sind die Symptome, gibt es Methoden, um einen erfolgreichen Exploit zu erkennen?

Das ist der beängstigende Teil. Soweit wir wissen, gibt es keine bekannte Möglichkeit, festzustellen, ob diese Sicherheitslücke ausgenutzt wurde oder nicht. Theoretisch ist es möglich, dass bald IDS-Signaturen veröffentlicht werden, die diesen Exploit erkennen können, aber zum Zeitpunkt des Schreibens dieses Artikels sind diese noch nicht verfügbar.

Es gibt Hinweise darauf, dass Heartbleed bereits im November 2013 aktiv ausgenutzt wurde. Siehe die EFFWild at Heart: Haben Geheimdienste im November 2013 Heartbleed genutzt?Und Bloomberg berichtet, dass die NSA den Exploit kurz nach der Einführung der Sicherheitslücke als Waffe eingesetzt hat. SieheNSA nutzt angeblich Heartbleed-Bug jahrelang für Geheimdienstarbeit. Die US-Geheimdienste bestreiten jedoch Bloombergs Behauptungen. SieheIC IM PROTOKOLL.

Wie kann ich überprüfen, ob mein System betroffen ist?

WennSie pflegen OpenSSL auf Ihrem System, dann können Sie einfach Folgendes eingeben openssl version:

$ openssl version
OpenSSL 1.0.1g 7 Apr 2014

Wenndie Distribution OpenSSL verwaltet, können Sie die Version von OpenSSL wahrscheinlich nicht ermitteln, da Backpatches mit openssldem Befehl oder den Paketinformationen (z. B. apt-get, dpkg, yumoder rpm) durchgeführt werden. Der Backpatching-Prozess, der von den meisten (allen?) Distributionen verwendet wird, verwendet nur die Basisversionsnummer (z. B. „1.0.1e“) undnichtumfassen eineeffektive Sicherheitsversion(zum Beispiel „1.0.1g“).

Es gibt eine offene Frage auf Super User, um die effektive Sicherheitsversion für OpenSSL und andere Pakete zu ermitteln, wenn Pakete zurückgepatcht werden. Leider gibt es keine nützlichen Antworten (außer, die Website der Distribution zu überprüfen). SieheBestimmen Sie die effektive Sicherheitsversion, wenn Sie mit Backpatching konfrontiert sind?.

Als Faustregel gilt: Wenn Sie jemals eine der betroffenen Versionen installiert und jemals Programme oder Dienste ausgeführt haben, die mit OpenSSL verknüpft waren, um TLS-Unterstützung zu erhalten, sind Sie anfällig.

Wo finde ich ein Programm zum Testen der Sicherheitslücke?

Innerhalb weniger Stunden nach der Heartbleed-Ankündigung haben mehrere Personen im Internet öffentlich zugängliche Webanwendungen veröffentlicht, mit denen angeblich ein Server auf das Vorhandensein dieser Sicherheitslücke überprüft werden kann. Zum Zeitpunkt des Schreibens dieses Artikels habe ich noch keine davon überprüft und werde ihre Anwendungen daher nicht weiter veröffentlichen. Sie können relativ einfach mithilfe Ihrer bevorzugten Suchmaschine gefunden werden.

Wie wird diese Sicherheitsanfälligkeit gemindert?

Aktualisieren Sie auf eine nicht anfällige Version und setzen Sie anfällige Daten zurück oder sichern Sie sie erneut. Wie auf derHerzblutenDie geeigneten Reaktionsschritte sind im Wesentlichen:

  1. Patchen Sie anfällige Systeme.
  2. Neue private Schlüssel neu generieren.
  3. Senden Sie Ihrer Zertifizierungsstelle einen neuen CSR.
  4. Besorgen und installieren Sie ein neues signiertes Zertifikat.
  5. Ungültigkeitserklärung von Sitzungsschlüsseln und Cookies
  6. Passwörter und gemeinsame Geheimnisse zurücksetzen
  7. Alte Zertifikate widerrufen.

Eine ausführlichere Analyse und Antwort finden Sie unterWas sollte ein Websitebetreiber angesichts des Heartbleed OpenSSL-Exploits tun?auf dem Security Stack Exchange.

Muss ich mir Sorgen machen, dass meine Schlüssel oder andere private Daten kompromittiert wurden? Welche anderen Nebenwirkungen müssen mir Sorgen bereiten?

Absolut. Systemadministratoren müssenannehmendass ihre Server, die anfällige OpenSSL-Versionen verwendeten, tatsächlich kompromittiert sind, und reagieren entsprechend.

Kurz nachdem die Sicherheitslücke bekannt wurde, bot Cloudfare eine Challenge an, um zu testen, ob der private Schlüssel eines Servers in der Praxis wiederhergestellt werden kann. Die Challenge wurde unabhängig voneinander von Fedor Indutny und Ilkka Mattila gewonnen. SieheDie Heartbleed-Herausforderung.

Wo finde ich weitere Informationen?

Link-Dump für diejenigen, die weitere Details suchen:


Eine recht detaillierte Chronologie der Offenlegungsereignisse finden Sie unterZeitleiste der Heartbleed-Enthüllung: Wer wusste was und wann.


Wenn Sie Programmierer sind und sich für verschiedene Programmiertricks interessieren, wie das Erkennen eines Heartbleed-Angriffs durch msg_cbden Rückruf von OpenSSL, dann lesen Sie OpenSSLsSicherheitshinweis 2014047.

Antwort2

Eine einfache Erklärung des Fehlers von XKCD:

XKCD 1354

Antwort3

Ubuntu 12.04, 12.10 und 13.10

Ubuntu hatUSN-2165-1, das besagt, dass aktualisierte Pakete jetzt in den Archiven verfügbar sind. Führen Sie die folgenden beiden Befehle aus, um den Fix abzurufen.

sudo apt-get update
sudo apt-get upgrade

Ubuntu 14.04

Ich habe ein Debian-Paket mit der neuen Version (1.0.1g) in ein PPA hochgeladen, das ich zu diesem Zweck eingerichtet habe. Mit diesen drei Befehlen fügen Sie mein PPA zu Ihrem System hinzu, aktualisieren die Liste der verfügbaren Pakete und führen ein Upgrade aller Pakete durch:

sudo add-apt-repository ppa:george-edison55/openssl-heartbleed-fix
sudo apt-get update
sudo apt-get upgrade

Hinweis: Das PPA stellt auch Pakete für Ubuntu 12.04 und 13.10 bereit, falls Sie lieber die neue Version (1.0.1g) ausführen möchten, anstatt nur die gepatchten Versionen in den Archiven zu verwenden.

Ubuntu 10.04

Dies ist eine LTS-Version, die Serverversion wird weiterhin unterstützt und erhält Sicherheitsupdates. Die Heartbleed-Sicherheitslücke betraf jedoch nicht das OpenSSL-Paket einer Standardinstallation von Ubuntu 10.04, da die Version unter 1.0.1 liegt.

Die Desktopversion hat das Ende ihrer Lebensdauer erreicht und muss aktualisiert/neu installiert werden.

Ubuntu 13.04 und andere veraltete Versionen

Ubuntu 13.04 hatte einen sehr kurzen Supportzyklus, was Sie vielleicht nicht erwarten. Es hat bereits das Ende seines Lebenszyklus erreicht und erhält keine Sicherheitsupdates mehr. Es hätte schon lange aktualisiert werden sollen. Wenn es noch jemand verwendet, aktualisieren Sie es bitte jetzt, entweder von Grund auf oder es kann zerstörungsfrei auf 13.10 aktualisiert werden, indem Sie dieses einfache Verfahren befolgen:http://www.tecmint.com/upgrade-ubuntu-13-04-raring-ringtail-to-ubuntu-13-10-saucy-salamander/Nach dem Upgrade erhält das System den Heartbleed-Patch von 13.10.

Für alle anderen veralteten Ubuntu-Versionen bedeutet dies, dass grundsätzlich eine Neuinstallation erforderlich ist.

Überprüfen Sie, ob der Patch angewendet wurde

Führen Sie es im Wesentlichen aus openssl version -aund stellen Sie sicher, dass das Build-Datum der 7. April 2014 oder später ist, aber sehen Sie mehrHier.

Neustart

Der beste Weg, um sicherzustellen, dass alle von OpenSSL abhängigen Dienste neu gestartet werden, istNeustart.

Antwort4

Debian Wheezy

Debian hatDSA-2896-1und gepatchte Bibliotheken sindhier verfügbarEin Shell-Skript isthier verfügbar.

1. Pflaster

Das Apt-get-Repository wurde aktualisiert, sodass nun gepatchte Bibliotheken verfügbar sind überapt-get update && apt-get upgrade

apt-get upgrade libssl1.0.0 openssl

Alternativ (nicht empfohlen) können die Pakete manuell aktualisiert werden:

wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/openssl_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_1.0.1e-2+deb7u5_amd64.deb

dpkg -i openssl_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl-dev_1.0.1e-2+deb7u5_amd64.deb

2. Server/Dienste neu starten

Für optimalen Schutz starten Sie den gesamten Server neu. Wenn der Server nicht offline sein kann, starten Sie die erforderlichen Dienste neu.

3. Überprüfen Sie die OpenSSL-Version

love@server:~$ openssl version
OpenSSL 1.0.1e 11 Feb 2013
love@server:~$ dpkg -l libssl1.0.0
||/ Name                    Version          Architecture     Description
+++-=======================-================-================-====================================================
ii  libssl1.0.0                 1.0.1e-2+deb7u6  amd64            SSL shared libraries

verwandte Informationen