Web Application Firewall - Mod Security

ModSecurity

Für Anbieter von Web-Anwendungen stellt Sicherheit ein permanentes und enorm wichtiges Thema dar. Das betrifft sowohl die eigenen Applications als auch die Server auf denen diese liegen. Wo früher die Konfiguration der Server oder die Aktualität der Software Anlass zur Sorge gaben, sind es heute die Applikationen oder Skripte, die Sicherheitslücken bilden können. Das Problem: Nutzer erwarten heutzutage vielfältige Funktionalitäten von Web-Anwendungen, zum Beispiel Zugriff auf Datenbanken oder Backend-Schnittstellen. Je mehr eine solche Application aber kann, desto größer sind auch die Möglichkeiten für fehlerhaften Code, der Angreifern Tür und Tor öffnet.

Was im ersten Moment nach einem Horrorszenario klingt, ist tatsächlich mit einigen sachkundigen Handgriffen zu lösen: Web Application Firewalls (WAF) können zwischen die Nutzer und die Web-Anwendung geschaltet werden und stellen so die gewünschte Datensicherheit her. Besonders gut funktionieren WAF im Zusammenspiel mit Network Firewalls, da so verschiedene Ebenen des OSI-Models abgesichert werden können – während WAFs nämlich die Schichten 5 bis 7 überwacht, übernimmt die Network Firewall die Schichten 3 und 4. Auf diese Weise werden von den IP-Adressen über die Ports bis hin zu den Daten-Paketen, die mithilfe des http-Protokolls versendet werden, alle Informationen geprüft und es Angreifern so schwer wie möglich gemacht.

Besonders interessant zur Absicherung von Web-Servern ist ModSecurity, eine Open-Source-WAF für Apache.

Kleines Projekt, große Wirkung

Ivan Ristic verfasst 2002 die erste Version von ModSecurity, um Traffic von und zu einem Apache http Server nachvollziehen zu können. Sein Unternehmen Thinking Stone wurde später von Breach Security und danach von Trustwave Holdings aufgekauft. Ristic verließ zwar 2009 das Unternehmen – damals noch Breach Security – ist aber immer noch an der Entwicklung von ModSecurity beteiligt. 2017 veröffentlichte er gemeinsam mit einem anderen Autoren eine neue Version des ModSecurity-Handbuchs für alle Versionen bis 2.9.2.

Grundsätze von ModSecurity

Da Ivan Ristic ModSecurity mit ganzen klaren, praktischen Anforderungen im Kopf programmierte, orientiert sich auch die aktuelle Version sehr dicht an den tatsächlichen Bedürfnissen der Nutzer. Besonderer Augenmerk liegt dabei auf den vielfältigen Anpassungsmöglichkeiten von ModSecurity, damit die Anwendung in vielen verschiedenen Szenarien einsetzbar ist. Um dies weiterhin zu gewährleisten, definierte Ristic 4 Grundprinzipen, die immer für ModSecurity gelten müssen:

  • Flexibilität
    ModSecurity ist vor allem für professionelle Anwender geschrieben, die den HTTP-Traffic ihrer Server beobachten, analysieren und sichern möchten. Zu diesem Zweck verfügt die WAF aber nicht über vordefinierte Einstellungen, sondern passt sich den jeweiligen Gegebenheiten der Systemumgebung und der individuellen Anforderungen an. So bleibt ModSecurity flexibel genug, um sich auf alle Anwendungsszenarien anpassen zu lassen.

  • Passivität
    ModSecurity trifft keine Entscheidungen. Auch wenn es leicht wäre dafür Regeln zu definieren, ist das Tool so ausgelegt, dass es beobachtet und dem Nutzer umfangreiche Informationen über den Traffic gibt. Die entsprechenden Entscheidungen hängen dann allein vom Anwender ab.

  • Vorhersehbarkeit
    Nutzer sollen immer wissen, was sie von ModSecurity erwarten können. Ristic erachtet dies als besonders wichtig, damit Anwender sich über die Schwachstellen der Web Application Firewall bewusst sind und entsprechende Gegenmaßnahmen ergreifen können.

  • Qualität vor Quantität
    Ristic und die Community von ModSecurity legen ihrer Arbeit hohe Qualitätsstandards zugrunde. Aus diesem Grund verfügt die Web Application Firewall zwar nicht über alle Funktionen, die sie haben könnte, aber die vorhandenen sind alle von erster Güte. Auf diese Weise können sich Anwender stets sicher sein, dass die ModSecurity einwandfrei funktioniert und sie sich nicht mit zu schnell implementierten Features beschäftigen müssen, die im schlimmsten Fall sogar Sicherheitslücken öffnen statt sie zu schließen.

Installationsoptionen

ModSecurity kann sowohl als direktes Plugin für Apache-Server oder als Reverse Proxy eingesetzt werden. Beide Varianten haben sowohl Vor- als auch Nachteile.

  • Embedded
    ModSecurity war von Anfang an als Apache Modul gedacht, daher lässt es sich bei allen aktuellen Versionen ab 2.0.x einsetzen – allerdings wird die Anwendung unter 2.2.x empfohlen. Diese Umsetzungsform eignet sich besonders gut für Anwender, die ihre Server-Architektur bereits festgelegt haben oder wenn mehrere Webserver gleichzeitig geschützt werden sollen. Allerdings teilen sich bei diesem Modell ModSecurity und der Web-Server die gleichen Ressourcen.

  • Reverse proxy
    Wird ModSecurity als Reverse Proxy eingesetzt, können Server und Web Application Firewall voneinander getrennt agieren. Hinsichtlich der Ressourcen-Verteilung bekommt die WAB bei diesem Modell eine feste Menge zugewiesen und kann aus diesem Grund auch mehr oder komplexere Regeln verarbeiten als beim Embedded-Einsatz. Allerdings gibt es auch hier Nachteile: Bei dieser Installation von ModSecurity kann das Programm eine zusätzliche Sicherheitslücke bilden, die nur durch den Einsatz von zwei oder mehr Reverse Proxies vermieden werden kann.

Nutzungsszenarien

Auch wenn ModSecurity hinsichtlich seines Einsatzes sehr flexibel gestaltet ist und sich stets an die individuellen Anforderungen anpassen soll, gibt es doch einige typische Szenarien in denen die Web Application Firewall häufig Verwendung findet.

Diese sind:

  • Monitoring und Zugriffskontrolle in Echtzeit: Dies ist eine der grundlegendsten Funktionen von ModSecurity. Hierbei gibt das Plugin Anwendern Zugriff auf den Server-Traffic und ermöglicht dessen Inspektion.

  • Logging: Wo Web-Server normalerweise wenig Log-Dateien speichern, bietet ModSecurity eine Fülle von Daten bezüglich des http-Taffics. Dadurch können alle Arten von Serverabfragen nachvollzogen und ausgewertet werden.

  • Kontinuierliche, passive Sicherheitsüberprüfung: ModSecurity verfügt über ein internes Frühwarnsystem, dass kontinuierlich im Hintergrund läuft und die Performance des Plugins beobachtet. Sollten sich irgendwelche Fehler oder Abweichung ergeben, fällt dies bei der Sicherheitsüberprüfung sofort auf und kann vom Admin behoben werden, bevor diese Sicherheitslücken ausgenutzt werden.

  • Web Application Hardening: Admins können mit ModSecurity klar eingrenzen, welche HTTP-Anfragen der Server akzeptiert und auf diese Weise die Fläche für potentielle Angriffe deutlich reduzieren.

Rulesets

Wie alle Web Application Firewalls ist ModSecurity nur so gut wie das Regelwerk, auf dessen Basis es agiert. Administratoren müssen sich daher entweder bereits intensiv mit dem Erstellen von Rule Sets beschäftigt haben oder auf eines der zahlreichen, vorgefertigten Rule Sets zurückgreifen, um so viele unterschiedliche Angriffsvektoren wie möglich abzudecken. ModSecurity verwendet Regeln für verschiedene Phasen der Clientabfrage:

  1. Vorabphase: Allererste Filterung der Anfragen, noch bevor andere Daten wie Zugriffskontrolle oder Autorisierung stattgefunden haben.

  2. Clientanfrage: Hierbei bekommt ModSecurity vollen Zugriff auf den Inhalt der Clientanfrage.

  3. Nachgang: ModSecurity filtert die Serverantworten zum frühestmöglichen Zeitpunkt.

  4. Serverantwort: Die WAF erhält kompletten Zugriff auf den Inhalt der Serverantwort.

  5. Protokollierung: ModSecurity greift auf alle anderen relevanten Daten zu, bevor eine Protokolldatei der Clientabfrage verfasst wird.

Nach der erfolgreichen Implementierung der Rule Sets ist es von größter Wichtigkeit, diese in der praktischen Anwendung zu testen. Meistens wird in diesem Fall erst einmal nur aufgezeichnet, welche Anfragen ModSecurity, basierend auf dem verwendeten Rule Set, blockieren würde. Es werden aber noch keine Abfragen tatsächlich bearbeitet, sondern nur Protokolldateien geschrieben. Erst mit Kenntnis dieser Dateien entscheidet der Admin, wie mit diesen Fällen tatsächlich verfahren werden soll. Dies entspricht – wie bereits erwähnt – dem Grundsatz der Passivität von ModSecurity. Auf diese Weise verhindert Mod Security, dass eventuell Nutzer blockiert werden, deren Zugriffe vollkommen berechtigt gewesen wären.

Fazit

ModSecurity ist ein sehr umfangreiches, mächtiges Plugin für Apache-Server. Allerdings ist der Einsatz dieser Web Application Software nichts für Anfänger.

Gerade die vielen Möglichkeiten, eigene Rule Sets zu definieren, können bei Unkenntnis der Materie schnell zur Blockierung von Nutzern führen, deren Zugriff auf den Server nicht nur erlaubt, sondern erwünscht gewesen wäre. Je nachdem welche Installationsform gewählt wird, kann ModSecurity außerdem bei falscher oder unsachgemäßer Handhabung Sicherheitslücken öffnen statt sie zu schließen.

Es ist daher besonders wichtig, dass sich der betreffende Admin zuvor umfangreich über ModSecurity und die Rule Sets informiert oder bereits umfassende Erfahrung mit diesem Plugin hat.

Nach oben