Frage Heartbleed: Was ist es und welche Möglichkeiten gibt es, es zu mildern?


Das ist ein Kanonische Frage über das Verständnis und die 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, welche Symptome gibt es? Gibt es Methoden, um einen erfolgreichen Exploit zu erkennen?

Wie kann ich überprüfen, ob mein System betroffen ist? Wie kann diese Schwachstelle gemildert werden? Sollte ich besorgt sein, dass meine Schlüssel oder andere private Daten kompromittiert wurden? Welche anderen Nebenwirkungen sollte ich befürchten?


204
2018-04-08 00:26


Ursprung


Minderung für Heartbleed beinhaltet Mehr als nur neue Schlüssel. (Link zu meiner Antwort zu Informationssicherheit StackExchange) - scuzzy-delta
Ich höre Sie, aber ich denke, EEAA hat das unten ziemlich umfassend behandelt. - MadHatter
Ich stimme zu: Es ist eine großartige Antwort, aber Heartbleed.com ist sehr bemüht, darauf hinzuweisen, dass es Überlegungen gibt, die über neue Schlüsselpaare hinausgehen - wie das Erzwingen von Passwortänderungen und die Ungültigkeit der Sitzung. - scuzzy-delta
@ Scuzzy-Delta - guter Punkt. Ich habe jetzt meine Antwort in CW gemacht, also fühlen Sie sich frei, sie mit diesen Informationen zu bearbeiten / zu verbessern. - EEAA
Bestes Beispiel dafür, was es ist - (nicht überraschend) XKCD: xkcd.com/1354 - Wayne Werner


Antworten:


ZuerstBevor Sie ausflippen, vergewissern Sie sich, dass Sie verstehen, ob diese Sicherheitsanfälligkeit tatsächlich auf Sie zutrifft. Wenn Sie einen Server haben, aber nie Anwendungen mit TLS verwendet haben, ist dies für Sie keine vorrangige Aufgabe. Wenn Sie andererseits jemals gehabt haben TLS-fähige Anwendungen, dann sind Sie auf der sicheren Seite. Weiter lesen:

Was genau ist CVE-2014-0160 aka "Heartbleed"?

Es ist eine große Sauerei, genau das ist es. 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 sind diejenigen, die unter anderem vertrauliche Daten wie private Schlüssel, vorinstallierte Schlüssel, Passwörter und wertvolle Unternehmensdaten enthalten.

Der Bug wurde unabhängig 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, fehlerhafter Code in OpenSSL. Hier ist das Commit, das die Sicherheitslücke eingeführt hat, und Hier ist das Commit, mit dem die Sicherheitsanfälligkeit behoben wurde. Der Fehler tauchte im Dezember 2011 auf und wurde heute, am 7. April 2014, gepatcht.

Der Fehler kann auch als Symptom für ein größeres Problem angesehen werden. Die beiden damit verbundenen Probleme sind (1) welcher Prozess vorhanden ist, 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 mit OpenSSL und vielen anderen Projekten. Viele Entwickler widersetzen sich einfach Praktiken wie Code-Reviews, Analysen und Scans. Punkt (2) wird in der TLS WG der IETF diskutiert. Sehen Heartbleed / Protokoll Komplexität.

Wurde der Fehlercode böswillig eingefügt?

Ich werde nicht darüber spekulieren, ob das wirklich ein Fehler war oder ob ein bisschen Code für einen schlechten Schauspieler eingeschleust wurde. Die Person, die den Code für OpenSSL entwickelt hat, gibt jedoch an, dass es unbeabsichtigt war. Sehen Der Mann, der die ernsthafte Sicherheitslücke "Heartbleed" eingeführt hat, leugnet, dass er sie absichtlich eingefügt hat.

Welche Betriebssysteme und Versionen von OpenSSL sind anfällig?

Wie oben erwähnt, jedes Betriebssystem, das verwendet wird, oder eine Anwendung, die mit OpenSSL 1.0.1 bis 1.0.1f verknüpft ist.

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

Das ist der gruselige Teil. Soweit wir wissen, gibt es keinen bekannten Weg, um festzustellen, ob diese Schwachstelle ausgenutzt wurde oder nicht. Es ist theoretisch möglich, dass IDS-Signaturen bald 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 aktiv in freier Wildbahn ausgebeutet wurde. Siehe EFF Wild im Herzen: Waren Geheimdienste im November 2013 Heartbleed? Und Bloomberg berichtet, dass die NSA den Exploit kurz nach der Einführung der Sicherheitslücke in Angriff genommen hatte. Sehen NSA sagte, Heartbleed Bug für Intelligenz seit Jahren zu nutzen. Die US Intelligence Community bestreitet jedoch die Behauptungen von Bloomberg. Sehen IC AUF DEM RECORD.

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

Ob Sie pflegen OpenSSL auf Ihrem System, dann können Sie einfach ausstellen openssl version:

$ openssl version
OpenSSL 1.0.1g 7 Apr 2014

Ob Die Distribution verwaltet OpenSSL, dann können Sie die Version von OpenSSL wahrscheinlich nicht ermitteln, da Sie das Back-Patchen verwenden openssl Befehl oder die Paketinformationen (zum Beispiel apt-get, dpkg, yum oder rpm). Der Back-Patching-Prozess, der von den meisten (allen?) Verteilungen verwendet wird, verwendet nur die Basisversionsnummer (z. B. "1.0.1e"). und tut nicht schließe ein ein effektive Sicherheitsversion (zum Beispiel "1.0.1g").

Es gibt eine offene Frage zu Super User, um die effektive Sicherheitsversion für OpenSSL und andere Pakete zu ermitteln, wenn Pakete gepatcht werden. Leider gibt es keine nützlichen Antworten (außer auf der Website der Distro). Sehen Ermitteln Sie die effektive Sicherheitsversion, wenn Sie mit dem Backpatching konfrontiert werden?.

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

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

Innerhalb von Stunden nach der Heartbleed-Ankündigung hatten mehrere Personen im Internet öffentlich zugängliche Webanwendungen veröffentlicht, die angeblich dazu verwendet werden könnten, einen Server auf das Vorhandensein dieser Sicherheitsanfälligkeit zu überprüfen. Zum Zeitpunkt des Schreibens habe ich noch keine überprüft, daher werde ich ihre Anwendungen nicht weiter veröffentlichen. Sie können relativ einfach mit Hilfe Ihrer bevorzugten Suchmaschine gefunden werden.

Wie wird diese Sicherheitsanfälligkeit gemildert?

Aktualisieren Sie auf eine nicht verwundbare Version und setzen Sie gefährdete Daten zurück oder sichern Sie sie erneut. Wie auf der Heartbleed Website sind die folgenden Schritte angemessen:

  1. Patch anfällige Systeme.
  2. Generiere neue private Schlüssel neu.
  3. Senden Sie eine neue CSR an Ihre Zertifizierungsstelle.
  4. Erwerben und installieren Sie ein neues signiertes Zertifikat.
  5. Sitzungsschlüssel und Cookies ungültig machen
  6. Setzen Sie Passwörter und gemeinsame Geheimnisse zurück
  7. Alte Zertifikate widerrufen

Für eine detailliertere Analyse und Antwort, siehe Was sollte ein Website-Betreiber zum Heartbleed OpenSSL-Exploit unternehmen?auf dem Sicherheitsstapeltausch.

Sollte ich besorgt sein, dass meine Schlüssel oder andere private Daten waren   kompromittiert? Welche anderen Nebenwirkungen sollte ich befürchten?

Absolut. Systemadministratoren müssen annehmen dass ihre Server, die verwundbare OpenSSL-Versionen verwenden, in der Tat kompromittiert sind und dementsprechend reagieren.

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

Wo finde ich weitere Informationen?

Link Dump, für diejenigen, die mehr Details suchen:


Eine ziemlich detaillierte Zeitleiste der Offenlegungsereignisse finden Sie unter Heartbleed Disclosure Timeline: Wer wusste was und wann?.


Wenn Sie ein Programmierer sind und an verschiedenen Programmiertricks interessiert sind, wie das Erkennen eines Heartbleed-Angriffs durch OpenSSL msg_cb Rückruf, dann siehe OpenSSL Sicherheitsempfehlung 2014047.


118
2018-04-08 04:23



+1 für GESCHLOSSEN. NIEDER. IHRE. Server. * - Wenn Sie etwas tun, wo SSL wirklich wichtig ist, schalten Sie es aus, bis Sie das Problem beheben. Vergessen Sie auch nicht, neue Zertifikate zu installieren (mit neue Schlüssel) nachdem Sie Ihre Server gepatcht haben - die Wiederverwendung Ihrer alten Schlüssel (die möglicherweise kompromittiert wurden) vereitelt den ganzen Zweck des Patchens der Sicherheitslücke ... - voretaq7
EBENFALLS - Starten Sie alle Dienste neu, die mit OpenSSL-Bibliotheken verbunden sind. Das Upgrade von OpenSSL ohne Neustart Ihrer Daemons ist so gut wie überhaupt kein Upgrade. - EEAA
In der Tat - nach jeder Art von Major-Patch (wie OpenSSL) halte ich es für eine gute Regel, die Maschine nur neu zu starten, um sicherzustellen, dass Sie nichts verpassen. - voretaq7
Einer der Tester ist Open-Source: github.com/FiloSottile/Heartbleed - Riking
@EEEAA, "Shutdown your Servers" bedeutet nicht, dass Sie die Macht ziehen müssen. Das bedeutet, dass der Apache heruntergefahren (oder neu konfiguriert wird, um ssl / tls zu deaktivieren), oder welcher Dienst auch immer das Serving durchführt. - psusi


Eine einfache Erklärung des Fehlers von XKCD:

XKCD 1354


42
2018-04-08 07:28





Ubuntu 12.04, 12.10 und 13.10

Ubuntu hat ausgegeben USN-2165-1, die besagt, dass aktualisierte Pakete jetzt in den Archiven verfügbar sind. Führen Sie die folgenden zwei Befehle aus, um das Update zu beheben.

sudo apt-get update
sudo apt-get upgrade

Ubuntu 14.04

Ich habe ein Debian-Paket mit der neuen Version (1.0.1g) in eine PPA hochgeladen, die ich für diesen Zweck eingerichtet habe. Mit diesen drei Befehlen wird mein PPA zu Ihrem System hinzugefügt, die Liste der verfügbaren Pakete aktualisiert und alles aktualisiert:

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

Hinweis: Die PPA bietet auch Pakete für Ubuntu 12.04 und 13.10 an, nur für den Fall, dass 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-Schwachstelle hatte jedoch keine Auswirkungen auf das openssl-Paket einer Standardinstallation von ubuntu 10.04, da die Version unter 1.0.1 liegt.

Die Desktop-Version 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 Support-Zyklus, den Sie vielleicht nicht erwarten würden. Es hat bereits das Ende seines Lebens erreicht und erhält keine Sicherheitsupdates mehr. Es sollte lange aktualisiert worden sein. Wenn immer noch jemand es benutzt, bitte upgraden Sie jetzt, entweder von Grund auf neu oder es kann nach diesem einfachen Verfahren zerstörungsfrei auf 13.10 aktualisiert 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 bedeutet das grundsätzlich eine Neuinstallation.

Stellen Sie sicher, dass das Patch angewendet wurde

Im Wesentlichen, lauf openssl version -a und stellen Sie sicher, dass das Erstellungsdatum der 7. April 2014 oder später ist, aber sehen Sie mehr Hier.

Starten Sie neu

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


36
2018-04-08 10:37



Ich kann nicht für andere Versionen sprechen, aber es scheint einen Patch für präzise (12.04) zu geben. Obwohl ich nicht mit Sicherheit sagen kann, dass dies die Schwachstelle behebt, wurde es zumindest nach dem entsprechenden Commit kompiliert (Mon Apr 7 20:31:55 UTC 2014). - Calrion
@Calrion: Ein Patch für OpenSSL oder das Debian-Paket für OpenSSL? OpenSSL wurde bereits behoben und eine neue Version veröffentlicht. - Nathan Osman
Was passiert mit bestehenden Verbindungen, während openssl aktualisiert wird? Werden sie fallen gelassen? - pdeva
Das hängt davon ab, welchen Webserver Sie verwenden und wie Sie aktualisieren. Davon abgesehen würde ich mir keine Sorgen darüber machen, bestehende Verbindungen zu löschen, da sie die anfällige Version verwenden. - Nathan Osman
14.04 hat seitdem einen Patch erhalten. - Seth


RedHat 6.5 und CentOS 6.5

Diese sind verletzlich. RedHats Erratum RHSA-2014-0376 gibt an, dass Patch-Bibliotheken verfügbar sind und jeder, der davon betroffen ist, sollte so bald wie möglich upgraden.

Zum Zeitpunkt des Schreibens hatte CentOS noch keine feste Version, aber Karanbir Singhs Veröffentlichung bei CentOS - bekannt gegeben sagt, dass sie eine aktualisierte Version von openssl produziert haben (openssl-1.0.1e-16.el6_5.4.0.1Beachten Sie die letzten vier Ziffern, die wichtig sind), bei denen der auswertbare TLS-Befehl deaktiviert ist und der sicher angewendet werden kann, da er bei der endgültigen Freigabe durch eine feste Version überschrieben wird.

Die temporär fixierte Version scheint noch nicht auf allen Spiegeln angekommen zu sein, befindet sich aber im Haupt-Repository bei http://mirror.centos.org/centos/6/updates/x86_64/Packages/ (und ähnlich für i686).

Bearbeiten: Wie Iain sagt, scheint es jetzt eine vollständig gepatchte Version für C6.5 zu geben, und es scheint, dass sie in Eile um die Spiegel geschoben wurde. Eine gerade yum update habe es für meine Server bekommen; es ist openssl-1.0.1e-16.el6_5.7.

Versionen von RH6 und C6 vor 6.5

Diese sind nicht anfällig. Gemäß diese Empfehlung von Red Hat,

Dieses Problem hatte keine Auswirkungen auf die Versionen von openssl, die mit Red ausgeliefert wurden   Hat Enterprise Linux 5 und Red Hat Enterprise Linux 6.4 und früher.

Karanbir Singhs Veröffentlichung bei CentOS - bekannt gegeben Gleiches gilt für Versionierung:

Früher am Tag heute wurden wir auf ein ernstes aufmerksam gemacht   Problem in openssl wie in CentOS-6.5 ausgeliefert


14
2018-04-08 13:07



Ist es nicht lists.centos.org/pipermail/centos-announce/2014-April/... die Veröffentlichung des Fixes? - Iain


Debian Wheezy

Debian hat issed DSA-2896-1 und gepatchte Bibliotheken sind hier verfügbar. Ein Shell-Skript ist hier verfügbar.

1. Patch

Das Apt-get-Repository wurde aktualisiert, so dass jetzt gepatchte Bibliotheken verfügbar sind apt-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. Starten Sie den Server / die Dienste neu

Um den besten Schutz zu erhalten, starten Sie den gesamten Server neu oder, falls der Server nicht offline sein kann, starten Sie die benötigten 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

13
2018-04-08 11:23



Wenn Sie Updates von erhalten wheezy/security dann wirst du gut mit apt-get update && apt-get upgrade. Oder verwenden Sie einen interaktiven Paketmanager, um nur die Pakete zu aktualisieren openssl, libssl1.0.0, libssl1.0.0-dbg und libssl-dev (wie auf Ihrem System installiert). - α CVn
Die Verwendung von apt-get behebt das Problem für mich nicht - immer noch OpenSSL 1.0.1e 11 Feb 2013 - user568829
Danke @ michael-kjorling, es war nicht verfügbar, als ich das tat, aber es ist die sicherste und korrekte Art der Aktualisierung. - jacksoncage
@ user568829 nach der Anwendung der Patch openssl-Version wird weiterhin angezeigt OpenSSL 1.0.1e 11 Feb 2013 wie der Patch heißt 1.0.1e-2. Sie können mit überprüfen dpkg -l openssl und es sollte Version zeigen 1.0.1e-2+deb7u6 - jacksoncage
Ich würde vorschlagen, den Host nach der Aktualisierung von OpenSSL neu zu starten, nicht weil es unbedingt notwendig ist, aber um sicher zu sein, dass zumindest alles, was die OpenSSL-Bibliotheken dynamisch lädt, die neue Version verwendet. (Statisch verbunden ist eine andere Sache.) Das heißt, ich weiß, dass einige Server nicht einfach neu gestartet werden können in allen Situationen, in denen ein Dienstneustart akzeptabel sein könnte. - α CVn


Ich möchte darauf hinweisen, dass private Schlüssel nicht die einzigen Vermögenswerte sind, die als kompromittiert betrachtet werden sollten. Der Fehler hat das Potenzial zu lecken irgendein Speicher, der im selben Adressraum läuft (d. h. derselbe Prozess) wie OpenSSL. Wenn Sie einen Serverprozess ausführen, bei dem eine anfällige Version von OpenSSL statisch oder dynamisch verknüpft ist, jede Information, die dieser Prozess jemals behandelt hateinschließlich Passwörter, Kreditkartennummern und andere persönliche Daten sollten als potenziell gefährdet betrachtet werden.


9
2018-04-08 20:23





FreeBSD 10.0 oder openssl von Häfen

Das FreeBSD-Sicherheitsteam hat eine Empfehlung bezüglich CVE-2014-0160 (alias "Heartbleed") herausgegeben und: FreeBSD-SA-14: 06.openssl

  1. Aktualisierung von FreeBSD

    • Aktualisierung von FreeBSD über einen Binär-Patch

      Systeme, die a Veröffentlichungsversion von FreeBSD auf der i386 oder amd64 Plattformen können über das Dienstprogramm freebsd-update (8) aktualisiert werden:

      # freebsd-update fetch
      # freebsd-update install
      
    • Aktualisieren von FreeBSD von den Quellen

      1. Laden Sie den entsprechenden Patch von der unten angegebenen Stelle herunter und überprüfen Sie die separate PGP-Signatur mit Ihrem PGP-Dienstprogramm.

        # fetch http://security.FreeBSD.org/patches/SA-14:06/openssl-10.patch
        # fetch http://security.FreeBSD.org/patches/SA-14:06/openssl-10.patch.asc
        # gpg --verify openssl-10.patch.asc
        
      2. Führe die folgenden Befehle als root aus:

        # cd /usr/src
        # patch < /path/to/patch
        
      3. Kompilieren Sie das Betriebssystem neu

        verwenden Buildworld und Installationswelt wie beschrieben in der FreeBSD-Handbuch.

  2. Aktualisieren Sie die openssl Port mit Mindestversion 1.0.1_10

  3. Starten Sie alle Daemons neu, indem Sie die Bibliothek verwenden, oder starten Sie das System neu

  4. Machen Sie so, als ob Ihr System kompromittiert wurde, geben Sie alle Ihre SSL-Schlüssel und / oder Zertifikate und potenziell durchgesickerten Informationen erneut aus (siehe EEAA allgemeinere Antwort).

FreeBSD 9.x und FreeBSD 8.x

Diese Systeme sind nicht verwundbar zum Heartbleed Problem, wenn Sie sich auf die ältere 0.9.x-Version von openssl Bibliothek, es sei denn du hast es installiert openssl  von den Häfen (siehe oben).

Wenn diese Systeme nicht anfällig für Heartbleed Problem, es könnte ratsam sein, Ihr System eher früher als später durch ein anderes zu aktualisieren lokal Verwundbarkeit (vgl FreeBSD-SA-14: 06.openssl und der Abschnitt "FreeBSD 10.0" oben:

Ein lokaler Angreifer kann möglicherweise einen Signiervorgang ausspionieren und möglicherweise wiederherstellen   der Signierungsschlüssel von ihm. [CVE-2014-0076]

Hinweis:

Das Original Heartbleed Advisory-Listen FreeBSD 8.4 und 9.1 als potenziell anfällig. Dies ist nicht wahr wegen des Mangels an Herzschlag-Erweiterung (Standard FreeBSD openssl-Bibliothek ist Version 0.9.x).


9
2018-04-11 08:03