Schwachstelle im TLS-Handshake

Sicherheitslücke HollowByte bedroht OpenSSL-Server

SSL

Die Sicherheitslücke HollowByte ermöglicht DoS-Angriffe auf OpenSSL-Server mit nur elf Bytes. Ein Patch korrigiert den Fehler im Speichermanagement.

Das Red Team des Sicherheitsunternehmens Okta hat eine als HollowByte bezeichnete Schwachstelle in der Verschlüsselungsbibliothek OpenSSL dokumentiert. Ein nicht authentifizierter Angreifer kann über diese Lücke einen Denial-of-Service-Zustand (DoS) auf Servern auslösen. Bei einem regulären TLS-Handshake definiert ein vier Byte langer Header über ein dreistelliges Längenfeld die Größe der nachfolgenden Nachricht. Verwundbare Versionen von OpenSSL reservieren diesen angeforderten Speicherplatz direkt im System, noch bevor die eigentlichen Daten eintreffen oder deren reale Größe überprüft wird. Die Forscher von Okta beschrieben das Systemverhalten wie folgt:

Anzeige

„Der Worker-Thread blockiert dann und wartet unbegrenzt auf Daten, die niemals ankommen werden.“

Okta

Anzeige

Ein Angreifer sendet für den Angriff eine elf Byte lange Nachricht, deren Header fälschlicherweise ein sehr großes Datenvolumen ankündigt. Wird dieser Vorgang über mehrere Verbindungen hinweg wiederholt, belegt der Server große Mengen an Arbeitsspeicher durch eine minimal gesendete Datenmenge.

Fragmentierung des Speichers durch Verbindungswellen

Obwohl OpenSSL die zugewiesenen Puffer nach dem Abbruch einer Verbindung freigibt, führt die Speicherverwaltung der GNU C Library (glibc) zu anhaltenden Problemen. Diese gibt kleine bis mittlere Speicherfreigaben nicht sofort an das Betriebssystem zurück, sondern hält sie für eine mögliche Wiederverwendung vor. Durch gezielte Angriffsmuster wird dieser Mechanismus ausgenutzt.

Okta erklärte dazu: „Durch das Auslösen von Verbindungswellen mit zufällig angegebenen Größen verhindert ein Angreifer, dass der Allokator diese freigegebenen Blöcke wiederverwendet.“ Dies hat dauerhafte Auswirkungen auf die Systemressourcen: „Der Heap fragmentiert stark, was dazu führt, dass die Resident Set Size (RSS) des Servers kontinuierlich ansteigt. Selbst nachdem die Verbindung des Angreifers getrennt wurde, bleibt der Server dauerhaft aufgebläht.“ Der blockierte Arbeitsspeicher kann in diesem Zustand nur durch einen vollständigen Neustart des jeweiligen Prozesses wieder freigegeben werden.

Betroffene Anwendungen und verfügbare Software-Updates

Die OpenSSL-Bibliothek bildet die technologische Basis für sichere Internetkommunikation und ist in Softwareprojekten wie den Webservern NGINX und Apache, den Laufzeitumgebungen Node.js, Python, Ruby und PHP sowie in den Datenbanksystemen MySQL und PostgreSQL integriert. In Testumgebungen mit NGINX führte der Angriff bei Systemen mit geringer Kapazität zu einer vollständigen Erschöpfung des Arbeitsspeichers. Bei Servern mit höherer Leistung sank die Speicherkapazität um bis zu 25 Prozent, während die genutzte Bandbreite des Angriffs unterhalb der üblichen Alarmschwellen für Sicherheitsüberwachungen blieb.

Das OpenSSL-Team hat das Problem behoben und die Korrektur als Härtungsmaßnahme ohne eigene CVE-Identifikationsnummer veröffentlicht. Der Fehler wurde in OpenSSL 4.0.1 behoben und in die älteren Versionen 3.6.3, 3.5.7, 3.4.6 und 3.0.21 zurückportiert. Die modifizierten Versionen ignorieren die Größenangaben im Header und erweitern den Puffer erst dann, wenn die Daten tatsächlich eingehen. Okta empfiehlt Betreibern, die OpenSSL-Pakete ihrer Distribution unverzüglich zu aktualisieren.

(red)

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.