Apache-LĂĽcke erlaubt Angreifern Zugriff auf interne Server
Durch eine Lücke in der Rewrite-Engine können Angreifer unter Umständen auf Systeme im lokalen Netz des Apache-Servers zugreifen, die eigentlich nicht über das Internet erreichbar sein sollen.
- Ronald Eikenberg
Die Sicherheitsexperten von Context haben eine Lücke im Apache-Webserver entdeckt, durch die Angreifer aus der Ferne auf interne Server zugreifen können. Die Rewrite-Engine mod_rewrite sorgt dafür, dass Anfragen anhand definierbarer Regeln auf verschiedene Server verteilt werden; etwa zur Lastverteilung oder um dynamische von statischen Inhalten zu trennen. Diese Konfiguration bezeichnet man auch als Reverse Proxy. Unter bestimmten Umständen führt ein @-Zeichen in der Anfrage dazu, dass die Rewrite-Regeln zu einer falschen Umschreibung der URL führen und der Angreifer einen beliebigen Host angeben kann.
So bildet mod_rewrite aus der HTTP-Anfrage
GET @InternalNotAccessibleServer/console HTTP/1.0
die URL
http://internalserver:80@InternalNotAccessibleServer/console
Durch das @ wird der Part mit dem eigentlichen Host als HTTP-Authentification interpretiert und die Anfrage auf einen vom Angreifer wählbaren Server (NotAccessibleServer) umgeleitet, der sich im lokalen Netz des Apache-Servers befinden kann. Weitere Beispiele liefert der Context-Bericht. Einzige Voraussetzung ist, dass der Angreifer den lokalen Hostnamen oder die lokale IP des Servers kennt, auf den er zugreifen will. An diese Information kann er jedoch etwa mittels Brute Force gelangen.
Betroffen sind Apache 1.3 und der 2er-Versionszweig bis 2.2.20. Abhilfe schafft ein zusätzlicher Slash in der RewriteRule. Wie man prüft, ob der eigene Server verwundbar ist und welche Änderung man im Falle des Falles vornehmen muss, erfährt man in dem Context-Bericht. Die Apache Foundation hat zudem bereits einen Patch auf Version 2.2.21 veröffentlicht, der dieses Problem beseitigt. (rei)