HTTP/2-CONTINUATION-Frames für DoS-Angriffe ausnutzen
8. April 2024
0 Min. LesezeitÜber die Sicherheitslücke
Die Sicherheitslücke liegt darin, wie HTTP/2-Implementierungen CONTINUATION-Frames verarbeiten. Diese werden verwendet, um Header-Blöcke zu übertragen, die größer als die maximale Frame-Größe sind. Angreifer nutzen diese Schwachstelle aus, indem sie innerhalb eines einzelnen HTTP/2-Streams übermäßig viele CONTINUATION-Frames senden. Diese Flut von Frames überlastet die Kapazität des Servers, sie effizient zu verarbeiten.
Wie schwerwiegend diese Sicherheitslücke ist, hob Bartek Nowotarski hervor. Seinen Angaben zufolge stellt sie eine größere Bedrohung dar als frühere Vorfälle wie der „HTTP/2 Rapid Reset“-Angriff. Darüber hinaus wird die Sicherheitslücke seit August 2023 aktiv ausgenutzt.
Besonders besorgniserregend ist, dass dieser Angriff Webserver mit nur einer einzigen TCP-Verbindung oder sogar mit nur wenigen Frames zum Absturz bringen kann. Betroffene Server können dadurch erhebliche Leistungseinbußen erleiden oder vollständig nicht mehr verfügbar sein.
Diese Sicherheitslücke betrifft zahlreiche Anbieter und HTTP/2-Bibliotheken, darunter Red Hat, SUSE Linux, Arista Networks, das Apache HTTP Server Project, nghttp2, Node.js, AMPHP und die Programmiersprache Go.
Betroffene Versionen
Projekt | Betroffene Versionen | CVE-ID |
|---|---|---|
amphp/http | >= 2.0.0 && <= 2.1.0, <= 1.7.2 | CVE-2024-2653 |
Apache HTTP Server (httpd) | 2.4.17-2.4.58 | CVE-2024-27316 |
Apache Tomcat | <=11.0.0-M16, <=10.1.18, <=9.0.85, 8.5.0-8.5.98 | CVE-2024-24549 |
Apache Traffic Server | 8.0.0-8.1.9, 9.0.0-9.2.3 | CVE-2024-31309 |
Envoy proxy (oghttp) | 1.29.0, 1.29.1 | CVE-2024-27919 |
Envoy proxy (nghttp2) | <=1.29.2 | CVE-2024-30255 |
Golang | <=1.20, <=1.21.8, <=1.22.1 | CVE-2023-45288** |
nghttp2 | <=1.60.0 | CVE-2024-28182 |
Node.js | <=18.20.0, <=20.12.0, <=21.7.1 | CVE-2024-27983 |
Tempesta FW | 0.7.0 | CVE-2024-2758 |
Auswirkungen
Angesichts der weiten Verbreitung von HTTP/2 und seines hohen Anteils am Internetverkehr (laut Cloudflare Radar schätzungsweise über 70 %) sind die Auswirkungen dieser Sicherheitslücke erheblich. Sie verdeutlicht, wie wichtig zeitnahe Patches und robuste Sicherheitsmaßnahmen sind, um das Ausnutzungsrisiko zu verringern und Webserver vor verheerenden Denial-of-Service-Angriffen (DoS) und Angriffen zum Umgehen von Sicherheitseinschränkungen zu schützen.
Abhilfemaßnahmen
Aktualisieren Sie das betroffene Programm auf die neueste Version, in der die Sicherheitslücke behoben ist. Falls kein Patch verfügbar ist, sollten Sie HTTP/2 auf dem Server vorübergehend deaktivieren.
Lösung
Patches einspielen und aktualisieren: Stellen Sie sicher, dass die neuesten Sicherheitsupdates für Ihre Serversoftware, relevante Bibliotheken und HTTP/2-Implementierungen installiert sind. Prüfen Sie regelmäßig, ob Softwareanbieter Updates bereitstellen, und installieren Sie verfügbare Updates umgehend, um bekannte Sicherheitslücken zu beheben.
Rate-Limiting einsetzen: Legen Sie Ratenbegrenzungen fest, um die Anzahl der Anfragen oder Frames zu beschränken, die innerhalb eines bestimmten Zeitraums verarbeitet werden dürfen. So lassen sich die Auswirkungen hohen Datenverkehrs oder von Überlastungsangriffen verringern.
Datenverkehr analysieren und überwachen: Achten Sie auf ungewöhnliche Muster oder Spitzen beim eingehenden Datenverkehr, die auf einen möglichen Angriff hindeuten könnten. Untersuchen Sie unbearbeiteten HTTP-Datenverkehr, um schädliche Anfragen zu erkennen und abzuwehren, die Schwachstellen in HTTP/2-Implementierungen ausnutzen.
Web Application Firewalls (WAFs) einsetzen: Richten Sie WAFs ein, um eingehenden Datenverkehr zu filtern und schädliche Anfragen daran zu hindern, Ihren Server zu erreichen. Konfigurieren Sie WAF-Regeln, um bekannte Angriffsmuster im Zusammenhang mit DoS-Angriffen auf HTTP/2 zu erkennen und zu blockieren.
Abwehrmaßnahmen auf Netzwerkebene einsetzen: Nutzen Sie Abwehrmaßnahmen auf Netzwerkebene wie Intrusion Detection Systems (IDS) oder Intrusion Prevention Systems (IPS), um verdächtige Datenverkehrsmuster zu erkennen und zu blockieren, die auf DoS-Angriffe gegen HTTP/2-Implementierungen hindeuten.
Server-Implementierungen diversifizieren: Verteilen Sie Ihre Server-Implementierungen auf verschiedene Projekte oder Anbieter. So können Sie die Widerstandsfähigkeit gegen Angriffe erhöhen und die Auswirkungen von Sicherheitslücken verringern, die nur bestimmte Implementierungen betreffen.
Sicherheitslücken mit Snyk erkennen
amphp/http (CVE-2024-2653) – Ressourcenzuweisung ohne Begrenzung oder Drosselung
Apache HTTP Server (CVE-2024-27316) – Unkontrollierter Ressourcenverbrauch („Resource Exhaustion“)
Apache Tomcat (CVE-2024-24549) – Unzureichende Eingabevalidierung
Apache Traffic Server (CVE-2024-31309) – Unkontrollierter Ressourcenverbrauch („Resource Exhaustion“)
Envoy proxy (CVE-2024-27919 und CVE-2024-30255) – Erkennung eines Fehlerzustands ohne entsprechende Aktion und unkontrollierter Ressourcenverbrauch („Resource Exhaustion“)
Golang (CVE-2023-45288) – Ressourcenerschöpfung
h2 Rust crate
nghttp2 (CVE-2024-28182) – Ressourcenerschöpfung
Node.js (CVE-2024-27983) – Ressourcenerschöpfung
Tempesta FW (CVE-2024-2758) – Ressourcenzuweisung ohne Begrenzung oder Drosselung
Referenzen
Sichern Sie Ihre Open-Source-Abhängigkeiten
Snyk erstellt PRs zur Behebung von Schwachstellen in Open-Source-Abhängigkeiten und deren transitiven Abhängigkeiten – mit nur einem Klick.



