Durch das Verstecken von Informationen macht man es Angreifern schwieriger etwas über das System herauszufinden. Der Apache2 zeigt dem Angreifer beim Aufruf einer nicht vorhandenen Datei vom Server welche Apache2 Server Version installiert ist, welche Patches verwendet werden und welche Interpreter auf dem Server installiert sind. Diese Informationen reichen aus um in Exploit Datenbanken nach passenden Exploits zu suchen. Das ausblenden dieser Information geht leicht von der Hand. Es gibt also keine Grund diese nicht zu verstecken.

Meine Wahl fällt dabei auf das erstellen einer weiteren Konfigurationsdatei in /etc/apache2/conf.d. Dateien in diesem Verzeichnis werden automatisiert eingelesen und für die Apache2 Einstellungen verwendet. In der Datei wird die Option ServerSignature verwendet um, wie schon am Optionsname zu erkennen, die Server Signatur auszublenden. Der Inhalt der Datei, benannt server_signature, gestaltet sich beim mir so:

ServerSignature Off
ServerTokens Prod

Es kann auch die Datei /etc/apache2/httpd.conf um diesen Eintrag zu erweitert werden anstatt eine separate Konfigurationsdatei anzulegen. Ebenfalls ist es möglich nur Teile der Server Signatur auszublenden. Mehr dazu findest du hier. Interessant ist, das die Server Variable $_SERVER[‚SERVER_SIGNATURE‘] in PHP sich mit der Änderung der ServerSignature ändert. In den gängigen Webapplikationen wird diese Variable nicht verwendet. Ich wüsste auch keinen Einsatzbereich für diese.

ServerTokens setzt die Signatur des Servers im HTTP Response Header auf ein Minimum. Die Ausgabe beim Parameter „Prod“ ist lediglich „Apache“. Ein entfernen aller Informationen zum Server ist nur mit dem editieren des Apache2 Quellcodes oder über die Erweiterung mod_security möglich. Jedoch bin nichtmal ich so paranoid diese Möglichkeit zu nutzen.

ein Kommentar »