Webserver sicher(er) machen 1

Erstellt von René Keller am 08. Juni 2009

Bei der Durchsicht der Protokolldateien von Webseiten fallen zunehmend systematische Angriffsversuche auf. Nicht nur prominente Seiten sind Ziele von Angreifern, auch bei kleineren Seiten wird zunehmend versucht, eine Hintertüre auszunutzen, um Daten auszuspähen oder die Seite zur Verbreitung von Schadsoftware zu nutzen.

Eine zusätzliche Sicherheit gegen diese Angriffe bietet das Sicherheitsmodul “ModSecurity” in der Version 2. ModSecurity ist ein Open-Source Softwaremodul für den Webserver “Apache“, der weitverbreitesten Serversoftware für den Betrieb einer Webseite. Es filtert alle ein- und ausgehenden Daten und fungiert so als Software-Firewall für Webseiten. Zu den Diensten zählen die Erkennung und Vermeidung vielfältiger Angriffe gegen Webanwendungen, die Kontrolle des Webseiten-Traffics und die Echtzeitanalyse der Infrastruktur. Einige Features im Überblick:

  • Paralleles text matching
  • Geo IP-Auflösung
  • Kreditkartennummer-Erkennung
  • Erkennung der Einschleusung schädlicher Inhalte
  • Automatisierte Aktualisierung der Erkennungsregeln

Die Installation ist ziemlich einfach. Für FreeBSD findet sich beispielsweise unter http://www.cyberciti.biz/faq/freebsd-install-configure-mod_security/ eine kurze Anleitung zur Installation und serverweitigen Aktivierung des Plugins. Nach Aktivierung werden alle Anfragen gefiltert und verdächtige Anfrage geblockt.

Auch wenn dies bei fast allen Anwendungsfällen erwünscht ist, kann die Filterung bei einigen Anwendungen nicht gewollt sein. Beispielsweise ist der Abruf einer XSD-Datei, eine XML-Schema-Datei, nicht mehr möglich. In diesem Fall ist dem Log, standardmäßig in /var/log/httpd-modsec2_audit.log liegend, zu entnehmen, welche Regel gegriffen hat. Diese kann dann selektiv für eine bestimmte Webseite oder eine bestimmte Datei einer Webseite deaktiviert werden. Da jede Regel über eine ID verfügt, kann diese einfach aus dem Log heraus kopiert werden und dann wie folgt in die Konfiguration des Webservers innerhalb des VirtualHost-Eintrags eingefügt werden:

<IfModule mod_security2.c>
    <LocationMatch "/index.php/">
        SecRuleRemoveById 970003
    </LocationMatch>
</IfModule>

Output-Filter selektiv deaktiveren:

<IfModule mod_security2.c>
    <LocationMatch "/index.php/">
        SecResponseBodyAccess Off
    </LocationMatch>
</IfModule>

Das erste Beispiel deaktiviert die Filter-Regel 970003 für eingehende Anfragen an die Datei index.php, der zweite Teil  deaktiviert die Filterung des ausgehenden Inhalts, der von der index.php-Datei erzeugt wird. Diese Einstellung sind beispielsweise für den Betrieb einer MediaWiki-Seite notwendig, da es ansonsten zu Fehlermeldungen mit ModSecurity und dem Standardregelwerk kommt.

Diese Konfigurationseinstellung kann einfach mit in den betreffenden VirtualHost-Eintrag der Webseite integriert werden.

Es ist beachtlich, wieviele Einträge von dem Plugin gefiltert werden. Nach kurzer Zeit war das Log bereits mehrere 100 KB groß.

Weitere Links

Allgemeines Sicherheitstutorial für Webanwendungen

http://docs.joomla.org/Security_Checklist_1_-_Getting_Started

Webseite von ModSecurity

http://www.modsecurity.org/

Trackbacks

Klicke den Link an, um zur ursprünglichen Seite zurück zu kehren.

Kommentare

You must be logged in to leave a response.