Web-Server gegen Sicherheitslücke HTTPOXY absichern

Überall (z.B. auf heise oder golem) wird jetzt eine Sicherheitslücke gemeldet, über die sich viele Web-Anwendungen manipulieren lassen, indem ein Request geschickt wird, in dem der Proxy:-Header gesetzt wird, um ausgehende Requests auf den Proxy des Angreifers umzuleiten. Details erspare ich mir hier, zu wiederholen. Eine eigene Webseite für diese “httpoxy” getaufte Lücke samt Logo gibt es auch schon: https://httpoxy.org/

httpoxy

Bis alle Anwendungen gepatcht sind, habe ich die Problematik aus der Welt geschafft, indem ich einfach alle diese Header schon im Vorfeld lösche. In meinen öffentlich erreichbaren Servern ist das insofern rel. einfach als sie alle einen Reverse-Proxy vorgeschaltet haben: Ich muss prinzipiell nur in allen Web-Server-Configs eine Apache-Direktive zum Löschen des entsprechenden Headers setzen. Und um gleich vorzubereiten, dass ich beim “nächsten Mal” nicht wieder alle Config-Files anfassen muss, habe ich eine Include-Datei /etc/apache2/dstk-all-sites-incl.conf angelegt:

# remove unallowed and dangerous proxy header
RequestHeader unset Proxy early

Diese wird nun in allen Config-Files includiert: vi /etc/apache2/sites-available/*.conf:

Include /etc/apache2/dstk-all-sites-incl.conf

Fertig.

Ausprobieren, ob’s geklappt hat, kann man z.B. mit Hilfe einer PHP-Datei test.php:

<?php echo "HTTP_PROXY="; var_dump($_SERVER['HTTP_PROXY']); ?>

Dann rufe ich das via curl mit gesetzten Proxy-Header auf:

curl -H "Proxy: http://attacker.com" https://meinedomain.de/test.php

Wenn da jetzt HTTP_PROXY=NULL erscheint (und nicht http://attacker.com), ist alles gut.

P.S. Das geht so natürlich nicht nur bei Reverse-Proxies sondern genauso auch bei “normalen” Apache-Web-Servern.

P.P.S. Nachdem ich das drin hatte, habe ich auch dieses Advisory auf apache.org gefunden, wo u.a. genau das beschrieben wird. Kann also nicht so verkehrt sein…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.