Apache2: Modsecurity

1

Der Schutz eines Webservers hängt schon seit langem nicht mehr nur von einem funktionierenden klassischem Paketfilter ab. Auf Webservern laufen im Zeitalter des Web 2.0 immer mehr dynamische Inhalte, die doch hin und wieder den ein oder anderen Bug enthalten. Netzwerk- (OSI-Schicht 3) und Transsportschicht (OSI-Schicht 4) Firewalls helfen hier nicht mehr weiter, da diese Verbindungsspezifische Kriterien anlegen um den Zugriff auf ein System zu erlauben oder zu verweigern. Genau an dieser Stelle greif ModSecurity ein. ModSecurity ist eine Web Application Firewall (WAF) die den Datenstrom auf der HTTP Ebene (OSI-Schicht 7) analysiert und somit die Anfragen des Clients sowie die Antworten des Servers Inhaltstechnisch überwachen kann.

Somit ist es möglich ein System mittels ModSecurity vor bekannten Schwachstellen einer Webapplikation zu schützen noch bevor der Patch dafür erschienen ist. Mithilfe von ModSecurity kann ebenfalls sichergestellt werden, dass bestimmte Dateien des Betriebssystems das System niemals per HTTP (Apache2) verlassen. Hier ein Beispiel dafür.

ModSecurity wurde ursprünglich von Ivan Ristic entwickelt. Inzwischen treibt jedoch das Unternehmen Breach Security die Entwicklung vorran. Die aktuelle Version 2.5.11 ist nur noch für Apacke 2.x verfügbar.

ModSecurity unterscheidet bei einer HTTP(s) Anfrage 5 verschiedene Phasen in denen der Datenstrom untersucht werden kann.

  1. REQUEST_HEADERS
    Frühest mögliche Filterung, noch bevor der Webserver den Zugriff anhand von Zugriffskontrollen erlaubt oder geblockt hat.
  2. REQUEST_BODY
    ermöglicht die vollständige Überprüfung der Clientanfrage
  3. RESPONSE_HEADERS
    Filterung der Serverantwort
  4. RESPONSE_BODY
    Vollständige Prüfung der gesamten Serverantwort
  5. LOGGING
    Zugriff auf Logging Informationen bevor Apache diese in seinen Log-Dateien vermerkt.

Eine detallierte Beschreibung der Konfigurationsparameter von ModSecurity finden Sie hier.

Installation

Da ModSecurity leiter nicht in den stable Repositories von Debian enthalten ist gibt es nur die Möglichkeit die Version selber zu kompilieren oder auf im Internet vorhandene Pakete zurück zu greifen. Wer jedoch bereits sid einsetzt, findet die Pakete libapache-mod-security mod-security-common jedoch in seinen Repositories.

wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_i386.deb
dpkg -i libapache-mod-security_2.5.9-1_i386.deb mod-security-common_2.5.9-1_all.deb

vim /etc/apache2/conf.d/modsecurity2.conf
<ifmodule mod_security2.c>
Include /etc//modsecurity/*.conf
</ifmodule>
mkdir /etc/modsecurity/
mkdir /var/log/apache2/mod_security/
cd /etc/modsecurity/
wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz
tar xvfz modsecurity-core-rules_2.5-1.6.1.tar.gz
vim modsecurity_crs_10_config.conf
...
SecAuditLog /var/log/apache2/mod_security/modsec_audit.log
SecDebugLog /var/log/apache2/mod_security/modsec_debug.log
...
a2enmod mod-security
/etc/init.d/apache2 force-reload

Prüfen Sie nach der Installation von ModSecurity unbedingt die WebApplikationen. Es kann unter Umständen zu nicht erwünschten Ergebnissen kommen. Sollte etwas nicht mehr wie erwartet funtkionieren, hilft ein Blick in die modsec_debug.log

Links:

blog.cscholz.io mirror

Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

1 Kommentar

  1. mit den folgenden kleinen Befehlen, kann man Modsecurity auch unter Lenny per Paketmanager installieren und immer auf dem neusten Stand halten… hab es noch nicht ausprobiert, aber sollte eigentlich funktionieren.

    ————

    sudo bash

    echo „deb http://www.backports.org/debian lenny-backports main contrib non-free“ >> /etc/apt/sources.list

    apt-get update
    aptitude install debian-backports-keyring
    apt-get update

    vim /etc/apt/preferences

    Package: libapache-mod-security
    Pin: release a=lenny-backports
    Pin-Priority: 999

    Package: mod-security-common
    Pin: release a=lenny-backports
    Pin-Priority: 999

    aptitude install libapache-mod-security mod-security-common

    ————

Antworten