Wie installiere ich eine anfällige Version von OpenSSL auf einem Linux-Server?

9

Ich möchte eine für Heartbleed anfällige OpenSSL-Version auf einem Server kompilieren und installieren, den ich für eine Team-Web-Sicherheitsherausforderung einrichte (da diese aus offensichtlichen Gründen nicht für die Installation im Ubuntu-Repository verfügbar sind).

Ich habe OpenSSL 1.0.1f unter Verwendung der bereitgestellten Anweisungen (run ./config, then makeand make install) heruntergeladen und kompiliert und versucht, den offen verfügbaren Heartbleed POC von GitHub von meinem PC auszuführen. Das Skript weist mich jedoch nicht darauf hin, dass keine Heartbeat-Antwort empfangen wurde und Der Server ist wahrscheinlich nicht anfällig.

Beim Ausführen openssl versionwird die folgende Ausgabe erzeugt: OpenSSL 1.0.1f 6. Januar 2014 . Ich habe natürlich ein SSL-Zertifikat installiert und der SSL-Zugriff funktioniert auf dem Server.

OpenSSL ist für die Arbeit mit Apache 2.4.7 installiert.

Kann jemand helfen?

mittelmania
quelle
3
Im Allgemeinen besteht eine gute Möglichkeit zum Testen älterer Versionen und Linux-Distributionen darin, ältere ISO-Images der Distribution herunterzuladen und möglicherweise eine VM damit zu installieren. Nicht alle Pakete sind hier verfügbar, aber OpenSSL wäre es sicherlich.
Bruno
Wenn Sie mit Debian-Paketen vertraut sind, sollte es ziemlich einfach sein, Ihr aktuelles openssl-Quellpaket herunterzuladen, CVE-2014-0160.patch zu entfernen und es neu zu erstellen.
Matt Nordhoff

Antworten:

7

Hier können zwei Dinge vor sich gehen:

  1. Ein einfaches "./configure; make; make install" platziert standardmäßig die gemeinsam genutzten Bibliotheken in /usr/local/lib. Die vom System installierten Bibliotheken befinden sich jedoch in /usr/lib, was früher im Bibliothekssuchpfad steht. Wenn Sie die vom System installierte Version von OpenSSL nicht entfernen, wird die anfällige Version nicht gefunden.

  2. Selbst wenn Sie die Systembibliotheken überschreiben, wird die Änderung erst übernommen, wenn Sie Apache neu starten. Gelöschte Dateien bleiben zugänglich (und belegen Speicherplatz auf der Festplatte), bis alle Programme, die geöffnete Dateihandles haben, diese Dateihandles schließen.

Kennzeichen
quelle
7

Welche Serversoftware wird verwendet?

Obwohl die OpenSSL-Binärdatei anfällig ist, verwendet ein installierter Webserver aus einem Betriebssystempaket wahrscheinlich eine Bibliotheksversion, die nicht anfällig ist.

Der einfachste Weg, um einen anfälligen Listener zum Laufen zu bringen, ist openssl s_server: Wenn Sie einen vollständigen Webserver benötigen, um anfällig zu sein, müssen Sie wahrscheinlich gegen die anfällige OpenSSL kompilieren.

Shane Madden
quelle
1
Ich wusste nie, dass s_serveres eine Sache ist. Ich benutze es schon s_clientimmer und es macht durchaus Sinn, dass es auch eine Serveroption geben sollte.
EEAA
1
@EEAA Ja, es ist verrückt, wie viele verschiedene Unterbefehle sich dort befinden.
Shane Madden