HTTPOXY-Schwachstelle: So schützen und testen Sie Ihren Webserver

Die kürzlich gefundene HTTPOXY-Schwachstelle ist eine Schwachstelle, die Anwendungen betrifft, die in cgi- oder cgi-ähnlichen Umgebungen ausgeführt werden. Das bedeutet, dass das Problem fast alle Webserver einschließlich Apache und Nginx und auch die meisten PHP-Anwendungen betrifft. Sogar der mod_php-Modus auf dem Apache ist betroffen.

Dieses Tutorial zeigt Ihnen, wie Sie Ihren Webserver vor HTTPOXY schützen können. Es enthält Abschnitte für die am häufigsten verwendeten Linux-Distributionen CentOS + RHEL, Debian und Ubuntu. Die Schritte können auch auf andere Linux-Distributionen angewendet werden, aber die Pfade zu den Konfigurationsdateien können unterschiedlich sein.

Eine detaillierte Beschreibung der HTTPOXY-Schwachstelle finden Sie auf dieser Website https://httpoxy.org/.

Die in diesem Tutorial beschriebenen Schritte sind mit den ISPConfig perfect server Tutorials kompatibel.

1 Wie wirkt sich HTTPOXY auf meinen Server aus?

HTTPOXY betrifft Clients, die die Variable HTTP_PROXY honorieren und sie für ihre Proxy-Konfiguration und serverseitige Anwendungen verwenden, die HTTP_PROXY als reale oder emulierte Variable in ihrer Umgebung verwenden. Das Ergebnis eines Angriffs kann Traffic sein, der von der Webanwendung an ein vom Angreifer ausgewähltes Zielsystem weitergeleitet wird oder die Anwendung öffnet ausgehende Verbindungen zu anderen Systemen. Die Schwachstelle ist leicht aus der Ferne ausnutzbar und Server können auf sie überprüft werden, daher wird dringend empfohlen, Maßnahmen zu ergreifen, um sie auf Ihrem Server zu schließen.

1.1 Allgemeine Lösung

Die derzeit empfohlene Lösung besteht darin, die Headervariable HTTP_PROXY zu deaktivieren oder zu filtern. Dies geschieht im Apache mit dem Modul mod_headers und dieser Konfigurationsanweisung:

RequestHeader unset Proxy early

Auf Nginx können Sie diese Zeile verwenden, um die Variable HTTP_PROXY zu deaktivieren.

fastcgi_param HTTP_PROXY "";

Das nächste Kapitel beschreibt die detaillierte Vorgehensweise für verschiedene Linux-Distributionen.

2 Debian

Dieses Kapitel beschreibt die Konfiguration zum Schutz von Apache und Nginx auf Debian 8 (Jessie) und Debian 7 (Wheezy) Servern gegen HTTPOXY. Die nächsten Schritte gehen davon aus, dass Sie als root-Benutzer auf der Shell angemeldet sind. Wenn Sie unter einem anderen Benutzer angemeldet sind, verwenden Sie den Befehl su (oder sudo, wenn Sie sudo konfiguriert haben), um der root-Benutzer zu werden.

2.2 Debian 8 (Jessie) mit Apache

Aktivieren Sie das Apache-Header-Modul.

a2enmod headers

Füge eine globale Konfigurationsdatei /etc/apache2/conf-available/httpoxy.conf hinzu. Ich werde hier den Nano-Editor verwenden:

nano /etc/apache2/conf-available/httpoxy.conf

und fügen Sie den folgenden Inhalt in diese Datei ein:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Speichern Sie die Datei. Aktivieren Sie es dann in der Konfiguration mit dem Befehl a2enconf und starten Sie den Apache neu.

a2enconf httpoxy
service apache2 restart

2.2 Debian 7 (Wheezy) mit Apache

Aktivieren Sie das Apache-Header-Modul:

a2enmod headers

Füge eine globale Konfigurationsdatei /etc/apache2/conf.d/httpoxy.conf hinzu. Ich werde hier den Nano-Editor verwenden:

nano /etc/apache2/conf.d/httpoxy.conf

und fügen Sie den folgenden Inhalt in diese Datei ein:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Speichern Sie die Datei. Starten Sie dann den Apache neu.

service apache2 restart

2.3 Debian mit Nginx

Der folgende Befehl fügt einen fastcgi_param hinzu, der die Variable HTTP_PROXY auf eine leere Zeichenkette in der Datei /etc/nginx/fastcgi_params setzt.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Starten Sie dann nginx neu, um die Konfigurationsänderung zu übernehmen.

service nginx restart

3 Ubuntu

Dieses Kapitel beschreibt die Konfiguration zum Schutz von Apache und Nginx auf Ubuntu 14.04 – 16.04 Servern vor HTTPOXY.

3.1 Ubuntu mit Apache

Aktivieren Sie das Apache-Header-Modul.

sudo a2enmod headers

Füge eine globale Konfigurationsdatei /etc/apache2/conf-available/httpoxy.conf hinzu. Ich werde hier den Nano-Editor verwenden:

sudo nano /etc/apache2/conf-available/httpoxy.conf

und fügen Sie den folgenden Inhalt in diese Datei ein:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Speichern Sie die Datei. Aktivieren Sie es dann in der Konfiguration mit dem Befehl a2enconf und starten Sie den Apache neu.

sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu mit Nginx

Die Schritte zum Schutz von Ubuntu vor HTTPOXY sind ähnlich wie bei Debian. Wir müssen nur sicherstellen, dass die Befehle mit sudo ausgeführt werden. Dieser echo-Befehl fügt eine fastcgi_param-Zeile hinzu, die die Variable HTTP_PROXY als leere Zeichenkette setzt. Die Datei /etc/nginx/fastcgi_params ist in den Standard-Abschnitten @PHP und cgi-bin der nginx vhost-Dateien sowie in vhosts enthalten, die von ISPConfig erstellt werden. Wenn du benutzerdefinierte Vhosts hinzugefügt hast, dann prüfe, ob sie „include /etc/nginx/fastcgi_params;“ in den Konfigurationsabschnitten für php und andere cgi- oder fastcgi-Konnektoren enthalten.

Führen Sie den folgenden Befehl aus, um die leere Variable HTTP_PROXY hinzuzufügen.

sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Starten Sie dann Nginx neu, um die Konfigurationsänderung zu übernehmen.

sudo service nginx restart

4 CentOS, RHEL und Fedora

Dieses Kapitel beschreibt die Konfiguration zum Schutz von Apache und Nginx auf CentOS-Servern vor HTTPOXY. Die gleichen Schritte sollten auch für Fedora-Server funktionieren. Melden Sie sich als Root-Benutzer auf der Shell an, bevor Sie mit den folgenden Befehlen fortfahren.

4.1 Apache

Die Apache (httpd) Konfigurationsdatei unter CentOS ist /etc/httpd/conf/httpd.conf. Ich werde die Apache Header-Regel am Ende der httpd.conf-Datei mit diesem Befehl hinzufügen:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

Starten Sie dann httpd neu, um die Konfigurationsänderung zu übernehmen.

service httpd restart

4.2 Nginx

Der Nginx-Webserver auf CentOS beinhaltet die fastcgi_params in den PHP- und CGI-Abschnitt des Standard-Vhost, so dass wir die Regel hinzufügen können, die leere HTTP_PROXY-Variable dort zu setzen. Führen Sie diesen Befehl aus, um die leere Variable HTTP_PROXY hinzuzufügen.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Starten Sie dann nginx neu, um die Konfigurationsänderung zu übernehmen.

service nginx restart

5 Test

Schließlich solltest du testen, ob dein Server jetzt sicher ist. Luke Rehman hat ein schönes Online-Testtool entwickelt, das Sie hier finden: https://httpoxy.rehmann.co/

Geben Sie die URL zu Ihrem Server oder Ihrer Website im Tool ein und klicken Sie auf die Schaltfläche „Test“.

HTTPOXY-Test

Hier ist das Ergebnis für howtoforge.com. Wie Sie sehen können, ist unsere Website sicher.

6 Links

Das könnte Dich auch interessieren …