Dies ist eine kanonische Frage zum Verständnis und zur Behebung des Heartbleed-Sicherheitsproblems.
Was genau ist CVE-2014-0160 AKA "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 überprüfen, ob mein System betroffen ist? Wie kann diese Sicherheitsanfälligkeit gemindert werden? Sollte ich mir Sorgen machen, dass meine Schlüssel oder andere private Daten kompromittiert wurden? Welche anderen Nebenwirkungen sollten mir Sorgen machen?
security
openssl
heartbleed
Jakob
quelle
quelle
Antworten:
Erstens , bevor ausgeflippt, achten Sie darauf , dass Sie verstehen , ob diese Anfälligkeit für Sie tatsächlich zutrifft. Wenn Sie einen Server haben, aber noch nie Anwendungen mit TLS hatten, müssen Sie dies nicht mit hoher Priorität beheben. Wenn Sie andererseits schon einmal TLS-fähige Anwendungen hatten, werden Sie sich freuen. Weiter lesen:
Es ist ein großes Durcheinander, das ist es auch. Kurz gesagt, in den OpenSSL-Versionen 1.0.1 bis 1.0.1f wurde eine Sicherheitslücke entdeckt, durch die ein Angreifer bestimmte Teile des Systemspeichers lesen kann. Diese Teile enthalten unter anderem vertrauliche Daten wie private Schlüssel, vorinstallierte Schlüssel, Kennwörter und hochwertige Unternehmensdaten.
Der Fehler wurde unabhängig von Neel Mehta von Google Security (21. März 2014) und dem finnischen IT-Sicherheitstestunternehmen Codenomicon (2. April 2014) entdeckt.
Nun, fehlerhafter Code in OpenSSL. Hier ist das Commit, mit dem die Sicherheitsanfälligkeit eingeführt wurde, und hier das Commit, mit dem die Sicherheitsanfälligkeit behoben wurde. Der Fehler trat im Dezember 2011 auf und wurde heute, am 7. April 2014, behoben.
Der Fehler kann auch als Symptom für ein größeres Problem angesehen werden. Die beiden damit verbundenen Probleme sind (1) welche Prozesse vorhanden sind, um sicherzustellen, dass fehlerhafter Code nicht in eine Codebasis eingeführt wird, und (2) warum die Protokolle und Erweiterungen so komplex und schwer zu testen sind. Punkt (1) ist ein Governance- und Prozessproblem bei OpenSSL und vielen anderen Projekten. Viele Entwickler widersetzen sich einfach Praktiken wie Codeüberprüfung, Analyse und Scannen. Punkt (2) wird in der TLS WG der IETF diskutiert. Siehe Heartbleed / Protokollkomplexität .
Ich werde nicht darüber spekulieren, ob dies wirklich ein Fehler oder möglicherweise ein bisschen Code für einen schlechten Schauspieler war. Die Person, die den Code für OpenSSL entwickelt hat, gibt jedoch an, dass dies versehentlich geschehen ist. Siehe Man, der schwerwiegende Sicherheitslücken bei Heartbleed eingeführt hat, bestreitet, dass er sie absichtlich eingefügt hat .
Wie oben erwähnt, jedes Betriebssystem oder jede Anwendung, die OpenSSL 1.0.1 bis 1.0.1f verwendet.
Dies ist der beängstigende Teil. Uns ist nicht bekannt, ob diese Sicherheitsanfälligkeit ausgenutzt wurde oder nicht. Es ist theoretisch möglich, dass bald IDS-Signaturen veröffentlicht werden, die diesen Exploit erkennen können, aber zum jetzigen Zeitpunkt sind diese nicht verfügbar.
Es gibt Hinweise darauf, dass Heartbleed bereits im November 2013 in freier Wildbahn aktiv ausgebeutet wurde. Sehen Sie, wie die EFF im November 2013 Heartbleed bei Geheimdiensten einsetzte. Bloomberg berichtet, die NSA habe den Exploit kurz nach Einführung der Sicherheitsanfälligkeit als Waffe eingesetzt. Siehe NSA sagte, Heartbleed Bug für Intelligenz seit Jahren auszunutzen . Die US Intelligence Community bestreitet jedoch die Behauptungen von Bloomberg. Siehe IC ON THE RECORD .
Wenn Sie OpenSSL auf Ihrem System warten, können Sie einfach Folgendes ausgeben
openssl version
:Wenn die Verteilung OpenSSL wird beibehalten, dann können Sie wahrscheinlich nicht die Version von OpenSSL bestimmen aufgrund zurück Patchen mit
openssl
Befehl oder die Paketinformationen (zum Beispielapt-get
,dpkg
,yum
oderrpm
). Der von den meisten (allen?) Distributionen verwendete Backpatching-Prozess verwendet nur die Basisversionsnummer (z. B. "1.0.1e"). und hat nicht eine umfassen effektive Sicherheits Version (zB „1.0.1g“).Es gibt eine offene Frage zum Superuser, um die effektive Sicherheitsversion für OpenSSL und andere Pakete zu bestimmen, wenn Pakete zurückgepatcht werden. Leider gibt es keine nützlichen Antworten (außer auf der Website der Distribution). Weitere Informationen finden Sie unter Ermitteln der effektiven Sicherheitsversion bei Backpatching .
Als Faustregel gilt: Wenn Sie jemals eine der betroffenen Versionen installiert und Programme oder Dienste ausgeführt haben, die mit der OpenSSL for TLS-Unterstützung verknüpft sind, sind Sie anfällig.
Innerhalb weniger Stunden nach der Heartbleed-Ankündigung hatten mehrere Personen im Internet öffentlich zugängliche Webanwendungen veröffentlicht, mit denen angeblich ein Server auf das Vorhandensein dieser Sicherheitsanfälligkeit überprüft werden konnte. Zum jetzigen Zeitpunkt habe ich noch keine Bewertung abgegeben, daher werde ich ihre Bewerbungen nicht weiter veröffentlichen. Sie können mit Hilfe Ihrer bevorzugten Suchmaschine relativ einfach gefunden werden.
Aktualisieren Sie auf eine nicht anfällige Version und setzen Sie anfällige Daten zurück oder sichern Sie sie erneut. Wie auf der Heartbleed- Site vermerkt , lauten die entsprechenden Reaktionsschritte im Allgemeinen:
Eine detailliertere Analyse und Antwort finden Sie unter Was sollte ein Website-Betreiber mit dem Heartbleed OpenSSL-Exploit tun? auf dem Security Stack Exchange.
Absolut. Systemadministratoren müssen davon ausgehen, dass ihre Server, die anfällige OpenSSL-Versionen verwendet haben, tatsächlich kompromittiert sind, und entsprechend reagieren.
Kurz nachdem die Sicherheitsanfälligkeit bekannt wurde, bot Cloudfare eine Herausforderung an, um zu prüfen, ob der private Schlüssel eines Servers in der Praxis wiederhergestellt werden konnte. Die Herausforderung wurde unabhängig von Fedor Indutny und Ilkka Mattila gewonnen. Siehe Die Heartbleed-Herausforderung .
Link Dump, für diejenigen, die mehr Details suchen:
Eine ziemlich ausführlichen Zeitplan der Offenlegung Ereignisse finden Sie unter Heartbleed Offenlegung Zeitplan: Wer wusste was und wann .
Wenn Sie ein Programmierer sind und sich für verschiedene Programmiertricks interessieren, wie das Erkennen eines Heartbleed-Angriffs über den OpenSSL-
msg_cb
Rückruf, lesen Sie die OpenSSL- Sicherheitsempfehlung 2014047 .quelle
Eine einfache Erklärung des Fehlers von XKCD:
quelle
Ubuntu 12.04, 12.10 und 13.10
Ubuntu hat USN-2165-1 herausgegeben , das besagt, dass aktualisierte Pakete jetzt in den Archiven verfügbar sind. Führen Sie die folgenden beiden Befehle aus, um das Update abzurufen.
Ubuntu 14.04
Ich habe ein Debian-Paket mit der neuen Version (1.0.1g) zu einer PPA hochgeladen, die ich für diesen Zweck eingerichtet habe. Mit diesen drei Befehlen wird meine PPA zu Ihrem System hinzugefügt, die Liste der verfügbaren Pakete aktualisiert und alles aktualisiert:
Hinweis: Der PPA bietet auch Pakete für Ubuntu 12.04 und 13.10 an, falls Sie die neue Version (1.0.1g) lieber ausführen möchten, als 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-Sicherheitsanfälligkeit hat sich jedoch nicht auf das openssl-Paket einer Standardinstallation von Ubuntu 10.04 ausgewirkt, da die Version unter 1.0.1 liegt.
Die Desktop-Version ist abgelaufen und muss aktualisiert / neu installiert werden.
Ubuntu 13.04 und andere veraltete Versionen
Ubuntu 13.04 hatte einen sehr kurzen Supportzyklus, den Sie vielleicht nicht erwarten. Es hat bereits das Ende seiner Lebensdauer erreicht und erhält keine Sicherheitsupdates mehr. Es sollte lange aufgerüstet worden sein. Wenn noch jemand es verwenden, aktualisieren Sie bitte jetzt, entweder von Grund auf oder es kann im Anschluss an diese einfache Prozedur 13.10 zerstörungsfrei aufgerüstet werden: 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 vom 13.10.
Für alle anderen veralteten Ubuntu-Versionen ist grundsätzlich eine Neuinstallation erforderlich.
Stellen Sie sicher, dass der Patch angewendet wurde
Im Wesentlichen sollten Sie ausführen
openssl version -a
und sicherstellen, dass das Erstellungsdatum der 7. April 2014 oder später ist. Weitere Informationen finden Sie hier .Starten Sie neu
Der beste Weg, um sicherzustellen, dass alle von OpenSSL abhängigen Dienste neu gestartet werden, ist ein Neustart .
quelle
Mon Apr 7 20:31:55 UTC 2014
) kompiliert .RedHat 6.5 und CentOS 6.5
Diese sind anfällig. RedHats Erratum RHSA-2014-0376 besagt, dass es gepatchte Bibliotheken gibt, und alle Betroffenen sollten zum frühestmöglichen Zeitpunkt ein Upgrade durchführen.
Zum Zeitpunkt des Schreibens hatte CentOS noch keine feste Version, aber Karanbir Singhs Veröffentlichung bei CentOS-announce besagt, dass eine aktualisierte Version von openssl (
openssl-1.0.1e-16.el6_5.4.0.1
beachten Sie die letzten vier Stellen, die wichtig sind) mit dem ausnutzbaren TLS erstellt wurde Befehl deaktiviert, und das kann sicher angewendet werden, da es von einer festen Version überschrieben wird, wenn es schließlich freigegeben wird.Die temporär fixierte Version scheint es noch nicht auf alle Spiegel geschafft zu haben, befindet sich aber im Hauptverzeichnis unter http://mirror.centos.org/centos/6/updates/x86_64/Packages/ (und ähnlich für i686).
Bearbeiten : Wie Iain sagt, scheint es jetzt eine voll gepatchte Version für C6.5 zu geben, und sie scheint in Eile um die Spiegel geschoben worden zu sein. Ein Straight
yum update
hat es für meine Server bekommen; es istopenssl-1.0.1e-16.el6_5.7
.Versionen von RH6 und C6 vor 6.5
Diese sind nicht anfällig. Nach dieser Empfehlung von Red Hat ,
Karanbir Singhs Posting bei CentOS-announce ist ebenso klar in Bezug auf die Versionierung:
quelle
Debian Wheezy
Debian hat DSA-2896-1 herausgegeben und gepatchte Bibliotheken sind hier verfügbar . Ein Shell-Skript ist hier verfügbar .
1. Patch
Das Repository von Apt-get wurde aktualisiert, sodass jetzt gepatchte Bibliotheken über verfügbar sind
apt-get update && apt-get upgrade
Alternativ (nicht empfohlen) können die Pakete manuell aktualisiert werden:
2. Starten Sie den Server / die Dienste neu
Starten Sie den gesamten Server neu, oder starten Sie die erforderlichen Dienste neu, wenn der Server nicht offline sein kann.
3. Überprüfen Sie die OpenSSL-Version
quelle
wheezy/security
dann Updates erhalten, werden Sie gut mitapt-get update && apt-get upgrade
. Oder verwenden Sie einen interaktiven Paket - Manager , um nur die Pakete zu aktualisierenopenssl
,libssl1.0.0
,libssl1.0.0-dbg
undlibssl-dev
(wie auf dem System installiert ist ).OpenSSL 1.0.1e 11 Feb 2013
wird die openssl- Version weiterhin angezeigt , da der Patch 1.0.1e-2 heißt. Sie können mit überprüfendpkg -l openssl
und es sollte Version zeigen1.0.1e-2+deb7u6
Ich möchte darauf hinweisen, dass private Schlüssel nicht die einzigen Assets sind, die als gefährdet betrachtet werden sollten. Der Fehler kann zu einem Verlust von Speicher führen, der im selben Adressraum (dh im selben Prozess) wie OpenSSL ausgeführt wird. Wenn Sie einen Serverprozess ausführen, bei dem eine anfällige Version von OpenSSL statisch oder dynamisch verknüpft ist, sollten alle Informationen, die dieser Prozess jemals verarbeitet hat , einschließlich Passwörtern, Kreditkartennummern und anderen persönlichen Daten, als potenziell gefährdet eingestuft werden.
quelle
FreeBSD 10.0 oder openssl von Ports
Das FreeBSD-Sicherheitsteam hat einen Hinweis bezüglich CVE-2014-0160 (auch bekannt als "Heartbleed") und: FreeBSD-SA-14: 06.openssl veröffentlicht
FreeBSD aktualisieren
Update von FreeBSD über einen Binär-Patch
Systeme, auf denen eine RELEASE-Version von FreeBSD auf den Plattformen i386 oder amd64 ausgeführt wird , können mit dem Dienstprogramm freebsd-update (8) aktualisiert werden:
Aktualisieren von FreeBSD von den Quellen
Laden Sie den entsprechenden Patch von unten herunter und überprüfen Sie die getrennte PGP-Signatur mit Ihrem PGP-Dienstprogramm.
Führen Sie die folgenden Befehle als root aus:
Kompilieren Sie das Betriebssystem neu
Verwenden von buildworld und installworld, wie im FreeBSD-Handbuch beschrieben .
Aktualisieren Sie den openssl- Port mit der Mindestversion 1.0.1_10
Starten Sie alle Dämonen über die Bibliothek neu oder starten Sie das System neu
Stellen Sie sich so vor, als wäre Ihr System kompromittiert, und stellen Sie alle Ihre SSL-Schlüssel und / oder Zertifikate sowie potenziell durchgesickerte Informationen erneut aus (siehe allgemeine Antwort der EEAA ).
FreeBSD 9.x und FreeBSD 8.x
Diese Systeme sind standardmäßig nicht für das Heartbleed- Problem anfällig , da sie auf einer älteren 0.9.x-Version der openssl- Bibliothek basieren , es sei denn, Sie haben openssl über die Ports installiert (siehe oben).
Wenn diese Systeme nicht für das Heartbleed- Problem anfällig sind , ist es aufgrund einer anderen lokalen Sicherheitsanfälligkeit möglicherweise ratsam, ein Upgrade Ihres Systems eher früher als später durchzuführen (siehe FreeBSD-SA-14: 06.openssl und den Abschnitt "FreeBSD 10.0" oben):
Hinweis :
Die ursprüngliche Heartbleed- Empfehlung listet FreeBSD 8.4 und 9.1 als potenziell anfällig auf. Dies ist nicht der Fall, da keine Heartbeat-Erweiterung vorhanden ist (die Standardbibliothek von FreeBSD openssl ist Version 0.9.x).
quelle
Ich fand es nahezu unmöglich, die Versionen von SSL zu bestimmen, die auf einigen der Appliances verwendet werden, mit denen ich arbeite. Obwohl es technisch gesehen keine Minderung darstellt, derzeit anfällige Hosts identifizieren zu können, stand ich ganz oben auf meiner Liste.
Ich habe eine kleine VM zusammengestellt, die mithilfe des FiloSottile-Testmoduls Prüfungen an beliebigen Hosts und Ports durchführt . Auf den ersten Blick sieht der Code gut aus.
Das Release der fertigen VM ist da . Es ist im VMX-Format.
Worte der Warnung
Dieses Skript und die VM zeigen nur den aktuellen Status Ihrer Systeme an. Es ist durchaus möglich, dass sich Ihre Systeme in der Vergangenheit in einem verwundbaren Zustand befanden und möglicherweise missbraucht wurden.
Etwas, das hier angezeigt wird, hat definitiv eine hohe Priorität, aber es bringt Sie nicht vom Haken, wenn Sie Aktualisierungen anwenden und alle Ihre Schlüssel ändern möchten.
quelle
Amazon Linux (in Amazon EC2 verwendete Linux-Distribution)
https://aws.amazon.com/amazon-linux-ami/security-bulletins/ALAS-2014-320/
Problemübersicht: Es wurde eine Überprüfung auf fehlende Grenzen bei der Behandlung von TLS-Heartbeat-Erweiterungspaketen durch OpenSSL gefunden. Dieser Fehler kann verwendet werden, um bis zu 64 KB Speicher von einem verbundenen Client oder Server freizugeben.
Betroffene Versionen: Alle Amazon Linux AMI, auf denen openssl 1.0.1 installiert ist, alle Amazon Linux AMI 2013.03 oder höher sowie alle Amazon Linux AMI, die auf 2013.03 oder höher aktualisiert wurden. OpenSSL wird standardmäßig auf Amazon Linux AMI installiert.
Betroffene Pakete: openssl
Fehlerkorrektur: Führen Sie yum update openssl aus, um Ihr System zu aktualisieren. Nach der Installation des neuen Pakets müssen Sie entweder alle Dienste, die openssl verwenden, manuell neu starten oder Ihre Instanz neu starten. Das neue Paket heißt zwar noch openssl-1.0.1e, enthält jedoch den Fix für CVE-2014-0160.
Neue Pakete: i686:
x86_64:
quelle