Original-URL des Artikels: https://www.golem.de/1108/85965.html    Veröffentlicht: 24.08.2011 18:27    Kurz-URL: https://glm.io/85965

0-Day-Exploit

"Apache Killer" friert Webserver ein

Aktuelle Versionen des weit verbreiteten Apache-Webservers können durch Fehler in der Behandlung von Byte-Range-Requests missbraucht werden, um den gesamten Server innerhalb weniger Sekunden zum Stillstand zu bringen.

Der in Perl geschriebene Proof-of-Concept "Apache Killer" wurde bereits auf Full Disclosure veröffentlicht. Das Script baut mehrere HTTP-Verbindungen zu einem Zielsystem auf und sendet HEAD-Anfragen mit einem 1300 Intervalle umfassenden Byte-Ranges-Header:

HEAD / HTTP/1.1
Host: ziel.host.tld
Range:bytes=0-,5-0,5-1,5-2,5-3,5-4,5-5 [...] 5-1297,5-1298,5-1299

Byte Ranges werden im Standard-HTTP 1.1 verwendet, um Teile einer Datei, zum Beispiel zum Fortsetzen eines abgebrochenen Downloads, ausliefern zu lassen. Der Apache-Webserver verbraucht beim offenbar fehlerhaften Parsen der unüblich komplexen Byte-Range-Anfragen innerhalb kurzer Zeit große Teile des Arbeitsspeichers. In unserem Test konnten verschiedene Apache-Versionen auf aktuellen Ubuntu- und Debian-basierten Webservern in wenigen Sekunden zum Stillstand gebracht werden. Die betroffenen Systeme froren vollständig ein und waren auch per SSH nicht mehr ansprechbar.

Gegenmaßnahmen

Bis das Apache-Team offizielle Patches bereitstellt und diese von den Distributionen ausgeliefert werden, gibt es kaum Möglichkeiten, einem erfolgreichen Angriff vorzubeugen. Als Workaround wird das Filtern von mehrstufigen Byte-Range-Anfragen per mod_rewrite vorgeschlagen. Beim Zulassen nur weniger Byte Ranges sollten die meisten Webanwendungen weiterhin funktionieren.

Gravierender ist die komplette Filterung des Range-Headers durch das mod_header-Modul. Bei beiden Methoden muss im Einzelfall geprüft werden, welche Auswirkungen das auf die jeweilige Webseite hat. Insbesondere das Ausliefern größerer Dateien/Medien (Progressive Download) und WebDAV kann durch die Änderungen negativ beeinflusst werden.

Eine weitere Alternative ist das Vorschalten eines Reverse-Proxy-Servers, der entsprechende Anfragen direkt bedient oder filtert.

Die Apache-Entwickler warnen mittlerweile selbst vor dem Problem, das nach ihrer Erkenntnis bereits aktiv ausgenutzt wird. Eine neue, korrigierte Version des Apache-Webservers soll innerhalb von 48 Stunden veröffentlicht werden.

Nachtrag vom 24. August 2011, 21:15 Uhr

Im Skript wird ein HEAD-Request statt eines GET-Requests verwendet. Laut Mailinglisten ist Apache aber durch beide Requests gefährdet. Für einen Angriff ist HEAD die schnellere Variante, da weniger Daten vom Server zum Client gesendet werden.  (ccm)


Verwandte Artikel:
Apache-Sicherheitslücke: Optionsbleed bereits 2014 entdeckt und übersehen   
(20.09.2017, https://glm.io/130166 )
Datenschutz: BVG-Webseite verrät Besucher-IPs und Mailadressen   
(01.03.2018, https://glm.io/133054 )
Connect 2017: Microsoft setzt weiter auf Enterprise-Open-Source   
(15.11.2017, https://glm.io/131161 )
Apache-Lizenz: Apple beendet GPL-Lizenzierung von Unix-Druckdienst Cups   
(08.11.2017, https://glm.io/131044 )
Futuremark: Servermark testet Media-Transcode- und VM-Server   
(30.10.2017, https://glm.io/130879 )

© 1997–2021 Golem.de, https://www.golem.de/