Security in Webanwendungen Teil 3: Sicherer Betrieb von Webapplikationen

07.02.2014

In dieser Blogserie haben wir bereits die Themen Design– und Programmierung von sicheren Webanwendungen behandelt. Im letzten Teil wird beschrieben, wie der sichere Betrieb von Webapplikationen gewährleistet werden kann.

Reduzieren von Serverinformationen

Selbstverständlich möchte man einem Hacker so wenig Informationen über ein System geben wie nur möglich. Allein die Anzeige der Versionsnummer der verwendeten Server kann genutzt werden, um gezielt nach Informationen über Sicherheitslücken der spezifischen Versionen zu suchen. Dadurch wird der Aufwand, in das System einzudringen, für einen Angreifer geringer.

Das übliche sicherheitssensible System nutzt einen Proxyserver um die SSL-Verschlüsselung der Verbindung zu terminieren, damit der eigentliche Applikationsserver vor dem direkten Zugriff durch die Nutzer geschützt wird. Die Datenübertragung zwischen dem Proxy- und Applikationsserver erfolgt dann oft unverschlüsselt. Somit gibt es bereits für eine Webapplikation zwei Server, bei denen man die Versionsnummer verbergen muss. Das Verbergen der Server- und Versionsinformationen hat Auswirkungen auf zwei Ebenen. Die eine Ebene ist das HTTP-Protokoll, die zweite Ebene die Anzeige von Exceptions in der Webapplikation. In beiden Ebenen werden keine oder nur reduzierte Informationen angezeigt. Generell sollten dem Nutzer jedoch sowieso keine Exceptions oder Stacktraces angezeigt werden.

Im Folgenden wird an einer Beispielarchitektur gezeigt, wie sich die Versionsnummern abschalten lassen. Genutzt wird ein Apache Webserver in der Version 2.2 als TLS-Proxy, welcher die SSL-Verbindung terminiert und einen Apache Tomcat in der Version 7, der als Applikationsserver dient.

Im Apache Webserver lassen sich die Serverinformationen über den folgenden Eintrag in der Datei „httpd.conf“ anpassen:

ServerTokens Prod

Mit dieser Angabe wird lediglich der Name des Servers angezeigt, im Ursprungszustand würde der Apache Webserver die folgenden Informationen ausgeben:

  • Name des Servers
  • Versionsnummer
  • Name des verwendeten Betriebssystems
  • Name und Versionsnummer der verwendeten Module

Diese Informationen wären für einen Hacker sehr nützlich, denn er kann auf dem Schwarzmarkt gezielt Tools einkaufen, die ihm helfen den Server zu kompromittieren.

Die Reduzierung der Serverinformationen beim Apache Tomcat 7 gestaltet sich etwas schwieriger. Um hier die Serverinformationen zu reduzieren, muss man die Datei „ServerInfo.properties“ aus dem JAVA-Paket „catalina.jar“ entpacken. Zum Entpacken öffnet man die Konsole des Betriebssystems und wechselt in das Verzeichnis „lib“ innerhalb des Apache Tomcat. Anschließend führt man folgenden Befehl aus:

jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties

Nun befindet sich innerhalb des Bibliotheksverzeichnisses der Verzeichnispfad „org/apache/catalina/util“, in dem wiederum die Datei „ServerInfo.properties“ existiert. Im folgenden Beispiel ist der Inhalt der Datei bereits angepasst und im Eintrag „server.info“ die Versionsnummer entfernt:

server.info=Apache Tomcat
server.number=7.0.50.0
server.built=Dec 19 2013 10:18:12

Nun zeigt auch der Apache Tomcat im HTTP-Protokoll und bei Exceptions keine Versionsnummern mehr an.

Die Sicherheit in Webapplikationen kann also an mehreren Stellen optimiert werden. Schon beim Desgin wird durch die Beachtung von Sicherheitsmechanismen ein höherer Standard gewährleistet. Maßnahmen bei der Programmierung, wie beispielsweise das Escaping von Metazeichen oder die Nutzung eines Sicherheitstokens, sorgen ebenfalls für mehr Sicherheit in Webanwendungen. Durch die Reduzierung der Serverinformationen kann auch beim Betreiben von Webapplikationen das Risiko eines Hackerangriffs gesenkt werden.

Zurück zur Übersicht

Kommentar verfassen

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

*Pflichtfelder

*