HTTP / 2 Bombe: Die Schwachstelle, die den RAM in Sekunden von Ihren Servern leeren kann

Autor: Veröffentlicht 4 min de lectura 161 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

Eine neue Methode der Verweigerung der von seinen Entdeckern getauften Dienst als HTTP / 2 Bombe zeigt, dass die Kombination von bereits bekannten Techniken für moderne Server in Sekundenschnelle anfällig werden kann: HPACK (HTTP / 2 Header Komprimierung) wird verwendet, um die Speichernutzung zu verstärken und HTTP / 2 Flow Control wird manipuliert, um diesen zugeordneten Speicher unbestimmt zu behalten.

Laut dem von Calif-Forschern veröffentlichten technischen Bericht, der auf ihrem Blog verfügbar ist, kann eine einzelne Hausmaschine mit einer 100 Mbps-Verbindung Server wie Envoy, Apache httpd, NGINX oder IIS zwingen, zehn Gigabyte RAM in Sekunden zu konsumieren; die vom Team gespielten Experimente zeigen extreme Verstärkungsverhältnisse - bis zu 5.700 Bytes, die von jedem Byte im Fall von Envoy64 verbraucht werden - und Drain in einer 32-Konfiguration. Weitere Details und Kontext der Entdeckung sind in Califs Aussage: https: / / blog.calif.io / p / codex-discovered-a-hidden-http2-bomb.

HTTP / 2 Bombe: Die Schwachstelle, die den RAM in Sekunden von Ihren Servern leeren kann
Bild generiert mit IA.

Der erste "Schenkel" des Angriffs nutzt, wie HPACK eine dynamische Tabelle der Header-Eingänge aufrechterhält: Der Angreifer setzt eine kleine Eingabe und die Referenz wiederholt mit seiner indizierten Darstellung eines Bytes ein, wodurch eine minimale Menge von Netzwerkdaten eine Menge interne Speicher durch Abrechnung und Strukturen verursacht, die der Server für jeden Header reserviert. Der zweite "paw" nutzt den HTTP / 2-Flow-Control-Mechanismus: Der Client kündigt ein Nullbyte-Fenster an und verhindert, dass die Reaktion abgeschlossen wird, während der Server kleine WINDOW _ UPDATE Bursts sendet oder den Verbindungsstatus aufrechterhält, um Wartezeit zu vermeiden; das Ergebnis ist, dass der reservierte Speicher nicht freigegeben wird.

Dieser Ansatz vermeidet traditionelle Maßnahmen, die die Gesamtgröße der decodierten Header begrenzen, da die im Betrieb verwendeten Header absichtlich klein sind; die Verstärkung erfolgt im internen Management pro Header und in Strukturen im Zusammenhang mit dem Fließzustand. Die HPACK-Spezifikation erkennt Gedächtnisverstärkungsrisiken an, aber die Forscher weisen darauf hin, dass sie den Effekt, der mit unbestimmter Retention über die Durchflussregelung kombiniert wird, nicht ausreichend anspricht: die Interaktion zwischen Subsystemen bewirkt die katastrophale Wirkung.

Calif hat bereits Konzepttests in GitHub veröffentlicht, so dass Betreiber und Sicherheitsausrüstung mit Vorsicht und Eile handeln müssen: https: / / github.com / califio / Publikationen / tree / main / MADBugs / http2-bomb. Es wird auch empfohlen, die HPACK-Spezifikation zu überprüfen, um die Wurzel des technischen Problems zu verstehen: https: / / httpwg.org / specs / rfc7541.html.

Einige Lieferanten und Projekte haben bereits eine Minderung eingeführt: NGINX hat die Richtlinie eingeführt max. in Version 1.29.8 und Apache korrigiert mod _ http2 in der vom Team angegebenen Version; aber zum Zeitpunkt dieses Berichts gab es keine offiziellen Patches für alle betroffenen Implementierungen, einschließlich bestimmter Versionen von Envoy, Microsoft IIS oder der Cloudflare Pingora-Engine. Wo kein Patch zur Verfügung steht, sind pragmatische Empfehlungen zu deaktivieren HTTP / 2 wenn möglich, oder eine inverse / CDN-Proxy, die die Anzahl der Header und Flusssteuerungen filtert und begrenzt, bevor sie den Home-Server erreichen.

Für Operationen und Notfall-Reaktionsteams umfassen die spezifischen Aktionen, die priorisiert werden sollten, die Anwendung verfügbarer Patches sofort, die Überprüfung der Exposition von HTTP / 2 Endpunkten in der öffentlichen Infrastruktur, die strenge Verbindungsgrenzen (maximale Anzahl von gleichzeitigen Headern und Streams) ermöglicht und sicherzustellen, dass Proxies oder WAFs harte Schwellenwerte anwenden. Darüber hinaus hilft das Setzen von Ressourcengrenzen nach Prozess-/Arbeiter- und Kernelregeln (OOM-Killer und cgroups) den Schaden zu enthalten, wenn der Speicher beginnt zu wachsen.

In Bezug auf die Erkennung sind Frühindikatoren ungewöhnliche Muster von "halb-offen" oder mit persistenten Null-Flow-Fenstern, eine schnelle Erhöhung der Speichernutzung durch HTTP / 2 Prozesse und eine hohe Anzahl von wiederholten Eingängen in decodierten Header-Meters. Die Überwachung von Verbindungsmetriken, Ansprechzeiten und internen Zählern des HTTP / 2 Moduls jedes Servers erleichtert die Identifikation von Betriebsversuchen, bevor das Gerät unbrauchbar wird.

HTTP / 2 Bombe: Die Schwachstelle, die den RAM in Sekunden von Ihren Servern leeren kann
Bild generiert mit IA.

Diese Erkenntnis hat auch eine gemeinschaftsrelevante Dimension: Sie wurde mit Hilfe eines koordinierten Software-Agenten (Codex) von menschlichen Forschern entdeckt, was verdeutlicht, wie IA-Tools die Identifizierung komplexer Vektoren beschleunigen können, aber auch, wie ihre Verwendung verantwortungsvolle Offenlegungsstandards erfordert. Die vollständige technische Präsentation wird auf der Real World AI Security Konferenz veröffentlicht; in der Zwischenzeit erfordert die Existenz von PoC Maßnahmen, als ob das Risiko real und ausbeutebar war.

Wenn Ihr Dienst den öffentlichen Verkehr bedient, priorisieren Sie einen schnellen Inventar, dessen Komponenten HTTP / 2, aktualisieren Sie NGINX / Apache, wenn angemessen und, wenn Sie nicht sofort parken können, stellen Sie eine CDN / Proxy, die gültig und limitieren Header zählt pro Verbindung. Dokumentieren Sie die Minderungsmaßnahmen und Tests in Ihrem einfallenden Spielbuch: die Geschwindigkeit der Erkennung und die Anwendung von Verbindungsgrenzen sind die Differenz zwischen einem kleinen Vorfall und einem vollständigen Serviceabfall.

Schließlich erinnert die Art des Problems daran, dass die Sicherheit moderner Protokolle nicht nur von individuellen Spezifikationen, sondern von deren Interaktionen in realen Implementierungen abhängt; die infrastrukturabhängigen Teams müssen HTTP / 2-spezifische Stresstests in ihre Sicherheits- und Verteidigungsarchitekturvalidierungen integrieren.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.