Application Level Firewall mit ModSecurity und Apache

Webwart

Die meisten Firewalls arbeiten ausschließlich auf den unteren Ebenen des TCP/IP-Stacks. Sie helfen nichts, wenn eine gezielte SQL-Injection das mühsam aufgebaute Forum in den Tod reißt. Ein zusätzliches Sicherheitsnetz spannt das Apache-Modul ModSecurity.

Vor jeder Diskothek, die etwas auf sich hält, wimmelt ein Türsteher ungebetene Gäste ab. Mit wachsamen Auge mustert er jede Person, die Eintritt begehrt, verdächtig wirkende weist er ab. Gefährliche Waffen spürt der geschulte Blick ins Damenhandtäschchen auf, minderjährige Personen entlarvt eine Ausweiskontrolle. Niemals würde ihn der Besitzer der Tanzlokals anweisen, jeden beliebigen Passanten durchzuwinken, solange er nur alle Merkmale eines menschlichen Wesens erfüllt.

Genau so fahrlässig handeln jedoch immer noch viele Betreiber eines Webservers. Sie wähnen sich mit einer herkömmlichen Firewall auf der sicheren Seite, während hinter der Brandmauer eine aufgeblasene PHP-Anwendung brav die durchgelassenen, schädlichen HTTP-Anfragen verarbeitet. Eine Firewall, die lediglich auf den unteren Schichten der Netzwerkprotokolle ansetzt, erkennt weder Cross Site Scritpting-Attacken (XSS), noch SQL-Injections, geschweige denn so genannte OS-Command-Injections, bei dem fehlerhafte Webskripte bei entsprechend aufgebauten Anfragen Systembefehle ausführen.

Um derartige Angriffsversuche abzuwehren, muss eine Firewall her, die auf der Anwendungsebene arbeitet. Ähnlich wie ein Türsteher untersuchen derartige Web Application Firewalls (kurz WAF) alle eingehenden HTTP-Anfragen nach bestimmten Mustern, blocken verdächtige ab und protokollieren den Verkehr zur späteren Analyse in Log-Dateien.

Beliebter Vertreter

Ein besonders beliebter Vertreter dieser Programmgattung ist ModSecurity. Wie sein Name schon andeutet, handelt es sich dabei um ein Modul für den Apache-Webserver. Seit Ende letzten Jahres steht die runderneuerte Version 2 zur Verfügung. Neben einer leicht geänderten Syntax wurden gleich ein paar alte Zöpfe abgeschnitten – darunter auch die Unterstützung für die alte Apache-1.x-Reihe.

Die Weiterentwicklung des Moduls liegt derzeit in den Händen der Sicherheitsfirma Breach Security [1] , die aber glücklicherweise auch weiterhin auf die GPL 2 setzt. Ihr Geld verdient sie unter anderem mit Zusatzprodukten, die ModSecurity-Administratoren das Leben erleichtern.

Das Sicherheitsmodul arbeitet zwar im Apache-Server, setzt sich aber noch vor dessen eigentliche Verarbeitungskette ( Abbildung 1 ). Mit Hilfe frei definierbarer Filteregeln klopft es den ein- und ausgehenden HTTP-Verkehr auf ungewöhnliche oder schädliche Daten ab und blockiert wenn nötig die weitere Verarbeitung. Da der Webserver in diesem Fall nicht weiter belastet wird, lassen sich sogar Denial-of-Service-Attacken (DoS) relativ wirksam unterbinden. Die Arbeit innerhalb des Apache-Servers bietet einen weiteren Vorteil: HTTPS-Anfragen hat Apache bereits entschlüsselt, folglich kann ModSecurity auch in derartige Anfragen einen Blick werfen.

Durch seine vorgelagerte Position ist das Modul zudem unabhängig von anderen konkreten Web-Anwendungen, wie beispielsweise Foren oder Content-Management-Systemen. Es genügt ein Satz spezieller Filterregeln und schon erreichen die immer mal wieder stark verbuggten PHP-Anwendungen nur noch harmlose Anfragen.

Startvorbereitungen

Voraussetzung für den Betrieb von ModSecurity ist ein laufender Apache 2, einschließlich seiner Entwicklerpakete. Des weiteren sollte man unbedingt mit dem Aufbau der Apache-Konfigurationsdateien vertraut sein. Da ModSecurity das gleiche Format nutzt, erleichtern entsprechende Kenntnisse folglich auch dessen Einrichtung. Den Apache-Server stattet man nun mit dem »mod_unique_id« -Modul aus. Bei den meisten Distributionen ist dies bereits standardmäßig der Fall. Damit ModSecurity später auch XML-Code inspiziert, ist noch die »libxml2« -Bibliothek samt ihrer Entwicklerpakete nötig.

ModSecurity steht unter [2] zum Download bereit. Die dort in großen Lettern beworbene Registrierung ist jedoch optional. Einen direkten Link zum Download versteckt sich hinter recht kleiner Schrift unterhalb des Kastens: "To download directly from this site click here". Wer sich ein Benutzerkonto beschafft, den belohnt Breach Security mit verschiedenen Bonusmaterialien, darunter auch einer Demoversion der ModSecurity-Console. Sie gestattet den Zugriff und Konfiguration von ModSecurity über eine schmucke Oberfläche ( Abbildung 2 ).

Abbildung 2: Die kostenpflichtige Console lässt den Admin Webserver überwachen, auf denen Mod-Security läuft.

Neben dem eigentlichen Quellcode-Archiv empfiehlt sich auch ein Download der »Core Rules« . Das Paket enthält einige fertige Regeln für häufig auftretende Anwendungsfälle, so dass man sich später nicht selbst die Finger wund tippen muss. Für einige ausgewählte Distributionen stehen zudem Binärpakete bereit, ein Blick in den hauseigenen Paketmanager oder die Linkliste auf der Downloadseite ersparen so unter Umständen den folgenden Übersetzungsvorgang.

Kommentare

ModSecurity Core Rule Set Project

Die OWASP Leute haben auch ein eigenes Sub Projekt wo sie an den Rulesets arbeiten,
welcher hier auch erwaehnt werden sollte

https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023