Zum Inhalt springen
Nehmen Sie am 10. September 2024 an Censys teil und besuchen Sie unseren Bedrohungsabwehr Workshop in San Francisco, CA | Jetzt anmelden
Blogs

Kritische Sicherheitslücke in OpenSSL!

Schnelle Links

**Aktualisierungen**

2022-11-01


Details zu zwei hochgradig gefährlichen Schwachstellen, die in OpenSSL Version 3.0.7 gepatcht wurden, sind jetzt verfügbar(CVE-2022-3786, CVE-2022-3602). Bei beiden handelt es sich um Pufferüberläufe im X.509-Zertifikatsüberprüfungsprozess, "insbesondere bei der Überprüfung von Namensbeschränkungen ".

Die erste, CVE-2022-3786, erlaubt es einem Angreifer, "eine bösartige E-Mail-Adresse in einem Zertifikat so zu manipulieren, dass eine beliebige Anzahl von Bytes, die das Zeichen `.` enthalten, überläuft." Die zweite, CVE-2022-3602, ist ähnlich, aber in diesem Fall könnte ein Bedrohungsakteur "eine bösartige E-Mail erstellen, um vier vom Angreifer kontrollierte Bytes auf dem Stapel zum Überlaufen zu bringen". Dies könnte zu einer Dienstverweigerung oder Remotecodeausführung führen.

Obwohl sowohl OpenSSL-Server als auch -Clients für diesen Angriff anfällig sind, ist es wahrscheinlicher, dass ein Angreifer einen Client ausnutzt als dass ein Client einen Server ausnutzt. Bei Servern, die mit bidirektionaler Authentifizierung konfiguriert sind, bei der beide Seiten der Verbindung Zertifikate austauschen und überprüfen, ist es jedoch möglich, dass ein Client einen Server ausnutzen kann, indem er ein bösartiges oder fehlerhaftes Zertifikat sendet.

Und obwohl diese Art von Setup selten ist, ist es nicht ausgeschlossen. Aber selbst bei einem erfolgreichen Angriff kommen viele andere Variablen ins Spiel, z. B. Anti-Buffer-Overflow-Systeme wie Stack Canaries und ASLR (Address Space Layout Randomization), um eine Ausnutzung zu vereiteln.

Aufgrund dieser Komplexität und Systemschutzmaßnahmen haben die OpenSSL-Entwickler die Kritikalität des CVE von KRITISCH auf HOCH herabgesetzt.

Wenn Sie die OpenSSL-Versionen 3.0.0-3.0.6 verwenden, empfehlen wir ein Upgrade auf die neueste Version von OpenSSL (derzeit 3.0.7) , um Sie vor möglichen Angriffen zu schützen.


Einführung

OpenSSL ist eine Softwarebibliothek, die es Anwendungen ermöglicht, sicher mit anderen vernetzten Anwendungen zu kommunizieren und dabei eine Vielzahl von kryptographischen Funktionen zu nutzen. Diese Bibliothek ist im Internet weit verbreitet und stellt einen wichtigen Teil der Infrastruktur vieler Unternehmen dar. Vor diesem Hintergrund hat das OpenSSL-Team alle Benutzer gewarnt, dass am vergangenen Dienstag eine kritische Sicherheitslücke in der OpenSSL-Codebasis entdeckt wurde. Das ist eine ziemlich große Sache, denn das letzte Mal, dass wir einen Fehler von diesem kritischen Ausmaß hatten, war 2014 mit der inzwischen berüchtigten Heartbleed-Schwachstelle(CVE-2014-0160), die uns noch heute verfolgt.

Wir haben zwar keine genauen Angaben zu dieser Schwachstelle, aber mehrere Quellen haben behauptet, dass die Schwachstelle nur OpenSSL Version 3.0.0 und höher betrifft (Software, die OpenSSL 1.0.2 oder 1.1.1 verwendet, ist nicht betroffen). Der 3.x-Baum ist eine relativ neue Ergänzung der OpenSSL-Reihe, die im September 2021 veröffentlicht wurde. Da diese Version erst seit kurzer Zeit auf dem Markt ist, scheint die Verbreitung gering gewesen zu sein. Sobald diese Sicherheitslücke öffentlich bekannt wird und neue Versionen veröffentlicht werden, sollten Administratoren, die Version 3.0.0 oder höher einsetzen, sofort auf die behobene Version 3.0.7 aktualisieren.

Identifizierung anfälliger Versionen von OpenSSL

Die Feststellung, ob ein Host für diesen noch nicht veröffentlichten Fehler anfällig ist, ist noch unklar, da wir nicht alle Details kennen. Wir können uns jedoch Dienste im Internet ansehen, die angeben, welche spezifische Version von OpenSSL sie verwenden, um eine allgemeine Vorstellung davon zu bekommen, was anfällig ist . Wir kennen derzeit keine andere Technik als die Überprüfung von HTTP-Headern, um die genaue Version von OpenSSL zu bestimmen, aber wir untersuchen noch Alternativen. Das bedeutet, dass wir zwar viele potenziell anfällige Server sehen können, aber nicht alle kennen, und die Statistiken in diesem Beitrag sind die untere Grenze dessen, was existiert.

Glücklicherweise bieten einige Internetserver, wie z. B. Apache, Informationen, die uns Aufschluss darüber geben, welche spezifischen Versionen von OpenSSL verwendet werden. In der folgenden Ausgabe sehen wir zum Beispiel, dass der Apache alle seine geladenen Module in die Ausgabe des "Server"-Headers eingefügt hat. Eine davon ist die Version von OpenSSL, gegen die das Modul mod_ssl kompiliert wurde:

$ curl -vvv https://127.0.0.1/ 
* Versucht 127.0.0.1:443...
* Verbunden mit 127.0.0.1 (127.0.0.1) Port 443 (#0)
> GET / HTTP/1.1
> Rechner: 127.0.0.1
> Benutzer-Agent: curl/7.81.0
> Akzeptieren: */*
>
< HTTP/1.1 200 OK
< Date: Mon, 31 Oct 2022 21:27:29 GMT
< Server: Apache/2.4.53 (Win64) OpenSSL/1.1.1n PHP/8.0.18
< Inhalt-Länge: 1436
< Inhalt-Typ: text/html;charset=UTF-8

Die Zahl der Rechner, auf denen die Version 3.0 von OpenSSL läuft, ist in den letzten Monaten langsam gestiegen. Im nachstehenden Liniendiagramm sehen wir, dass im August nur etwa 3.000 Hosts mit dieser neuen Version arbeiteten, aber bis zum 30. Oktober 2022 hat sich diese Zahl auf über 7.000 Hosts mehr als verdoppelt.

Mit Stand vom 30. Oktober 2022 haben 1.793.111 einzelne Hosts einen oder mehrere Dienste, die angeben, OpenSSL zu verwenden. Davon verwenden nur 7.062 (0,4 %) Hosts eine Version größer oder gleich Version 3.0.0. Die am häufigsten eingesetzte Version von OpenSSL innerhalb des gefährdeten Bereichs ist 3.0.1 mit 3.567 einzelnen IP-Hosts und Version 3.0.5 mit 2.759 Hosts.

Eine Sache, die wir beachten sollten, bevor wir weitermachen, ist, dass einige Server im Internet für Versionen von OpenSSL werben, die in der realen Welt nicht existieren.

 

Zwei Hosts behaupten, dass die Version von OpenSSL, mit der sie arbeiten, 3.2.0-dev ist, eine Version, die nicht existiert.
Und drei Hosts zeigen einen Banner an, der behauptet, dass OpenSSL Version 3.1.0-dev läuft, die ebenfalls nicht existiert.

Dies geschieht oft, um die tatsächliche Version der laufenden Software aus Datenschutz- und Sicherheitsgründen zu verschleiern. Neben diesen ungültigen Versionsnummern fiel uns jedoch ein Host auf, der mehrere Wochen lang die Version 3.0.5 verwendete und dann am 18. Oktober plötzlich die Version 3.0.7-dev anbot. Das Interessante an 3.0.7 ist, dass diese Versionsnummer die erste Version ist, die den Patch für diese kommende Sicherheitslücke enthält.

Wir wissen nicht, ob dieser eine Host die Wahrheit über seine OpenSSL-Version sagt, aber der allgemeine Zeitrahmen scheint mit dem Zeitpunkt übereinzustimmen, zu dem diese Sicherheitslücke gepatcht und auf einem öffentlichen Server bereitgestellt wurde. Könnte dies ein OpenSSL-Entwicklungsserver sein? Könnte er einer Organisation gehören, die vor der allgemeinen Öffentlichkeit Zugang zu der korrigierten Version von OpenSSL erhalten hat? Oder handelt es sich nur um einen Server, der vorgibt, etwas zu sein, was er nicht ist?

Nachfolgend finden Sie eine Tabelle mit allen OpenSSL-Versionen, die wir identifizieren konnten und die größer oder gleich der Version 3.0.0 sind, sowie die zwanzig Länder, in denen diese Versionen am häufigsten installiert sind.

Aufschlüsselung der Versionen Die 20 wichtigsten Länder mit Openssl >=3.0.0
OpenSSL-Version Host-Zahl
3.0.1 3,567
3.0.5 2,759
3.0.2 413
3.0.3 167
3.0.0 73
3.0.6 24
3.0.4 24
3.0.0-alpha9-dev 13
3.0.0-dev 11
3.1.0-dev 3
3.2.0-dev 2
3.0.0-alpha7-dev 2
3.0.0-alpha3-dev 2
3.0.0-alpha6 1
3.0.0-alpha17-dev 1
3.0.7-dev 1
Land Host-Zahl
Vereinigte Staaten 2,321
Deutschland 693
Japan 552
China 424
Tschechische Republik 353
Vereinigtes Königreich 287
Frankreich 204
Russland 188
Kanada 177
Niederlande 167
Italien 114
Polen 111
Australien 105
Singapur 104
Indien 80
Finnland 79
Hongkong 78
Brasilien 62
Taiwan 57

Die Identifizierung von OpenSSL 3.x-Hosts mit Censys kann mit Hilfe des CPE-Identifikators erfolgen: "services.software.uniform_resource_identifier='cpe:2.3:a:*:openssl:3.*'". Censys ASM-Kunden können den Inventar-Suchbegriff verwenden: "host.services.software.uniform_resource_identifier="cpe:2.3:a:*:openssl:3.*""

Darüber hinaus haben wir ein interaktives Dashboard für Berichte über Server erstellt, auf denen eine OpenSSL-Version größer oder gleich 3.0.0 installiert ist. Sobald mehr Informationen über die fragliche Schwachstelle verfügbar sind, werden wir diesen Beitrag zusammen mit neuen Funktionen, die dem Dashboard hinzugefügt werden müssen, aktualisieren.

Lösungen für das Management von Angriffsflächen
Mehr erfahren