Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2006  »  06  »  Airbag für Webserver  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Koordiniertes Logging

Die einfachste Logging-Variante ist das Schreiben ins »error.log« des Apache Webservers, was allerdings die spätere Analyse erschwert. Alternativ bietet sich das ausführlichere Audit-Logging an (Abbildung 3). Neu ab Version 1.9 ist die Log-Option New Audit Log Type. Sie ermöglicht unter anderem das Loggen mehrerer Ereignisse in eigene Logdateien, setzt aber das aktive Apache-Modul »mod_unique_id« voraus.


Abbildung 3: Das Audit-Log von Modsecurity zeigt im Detail die Vorgehensweise und näheren Umstände eines Angriffs und gibt dem Admin damit wertvolle Hinweise zum Tatgeschehen.

Darüber hinaus enthalten die Versionen ab 1.9 das so genannte Guardian-Log, das die Logdaten an HTTP-Guardian [3] übergibt. Dieser steuert IPtables- und Paketfilter-Firewalls sowie den IDS-Controller Snortsam [4]. Standardmäßig blockiert HTTP-Guardian Clients, die mehr als 120 Anfragen pro Minute oder mehr als 360 Anfragen in fünf Minuten stellen. Das Programm befindet sich noch im Entwicklungsstadium, funktioniert jedoch und ist gut dokumentiert.

Grundkonfiguration

Als Ausgangsbasis für eigene Anpassungen dient die einfache Grundkonfiguration aus Listing 2, die in ähnlicher Form auf der offiziellen Homepage zu finden ist. Wer das Regelwerk auf einem Produktivsystem testet, sollte potenzielle Regelverstöße vorerst nur loggen, um nicht versehentlich legitime Anfragen zu blockieren. Das erledigt der Eintrag »SecFilterDefaultAction«, dessen Parameter auf »pass,log« zu setzen sind.

Listing 2:
Grundkonfiguration

01 # Modsecurity aktivieren
02 SecFilterEngine On
03 # Fehlerhafte Anfragen loggen und den Zugriff verweigern
04 SecFilterDefaultAction "deny,log,status:403"
05 # Fehler nur loggen
06 # SecFilterDefaultAction "pass,log"
07 
08 # POST-Daten überprüfen
09 SecFilterScanPOST On
10 
11 # URL-Encoding überprüfen
12 SecFilterCheckURLEncoding On
13 
14 # Unicode-Kodierung überprüfen
15 SecFilterCheckUnicodeEncoding On
16 
17 # Nur Ascii-Zeichen von 1 bis 255 annehmen
18 SecFilterForceByteRange 1 255
19 
20 # Server-Signatur auf ein Minimum
21 SecServerSignature "Apache"
22 
23 # Nur relevante Daten loggen
24 SecAuditEngine RelevantOnly
25 SecAuditLog /var/log/apache2/audit_log
26 
27 # GET- oder HEAD- Anfragen im Body nicht akzeptieren
28 SecFilterSelective REQUEST_METHOD "^(GET|HEAD)$" chain
29 SecFilterSelective HTTP_Content-Length "!^$"
30 
31 # Content-Length muss bei jedem POST-Request mitgesendet werden
32 SecFilterSelective REQUEST_METHOD "^POST$" chain
33 SecFilterSelective HTTP_Content-Length "^$"
34 
35 # Unbekannte Transfer-Encodings verwerfen, Ausnahme GET,
36 # weil es mit einigen Clients zu Problemen kommen kann
37 SecFilterSelective REQUEST_METHOD "!^(GET|HEAD)$" chain
38 SecFilterSelective HTTP_Content-Type 
39 "!(^application/x-www-form-urlencoded$|^multipart/form-data;)"
40 SecFilterSelective HTTP_Transfer-Encoding "!^$"

Anstelle der 403-Fehlermeldung bei Regelverletzungen erlaubt Modsecurity mit dem Eintrag »SecFilterDefaultAction "deny,log,redirect:http://Zielseite.de"« das Anzeigen beliebiger Adressen oder Webseiten. Filter definieren Suchkriterien, die Modsecurity auf eine HTTP-Anfrage anwendet.

Ein Filter ist immer nach dem Schema »SecFilter Suchkriterium« aufgebaut, ab Version 1.9 verfügt das Modul darüber hinaus über zusätzliche Logparameter. Modsecurity unterscheidet zwischen drei Filtermethoden: einfach (»SecFilter wget«), selektiv (»SecFilterSelective ARGS "union.+select"«) und Output (»SecFilterSelective OUTPUT "Fatal error:" deny,status:500«).

Ein einfacher Filter prüft immer die gesamte HTTP-Anfrage, wogegen der selektive Filter lediglich definierte Teile davon prüft. Output-Filter scannen den Content, den der Webserver ausliefert, und verhindern gegebenenfalls dessen Anzeige. Ein Ausrufezeichen (»!«) invertiert Filterregeln. So greift »SecFilter !html« bei jeder Anfrage, die nicht den String »html« enthält.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Häuptling in Rüstung Modsecurity schützt Zugriffe und Antworten von Webservern
Tux liest Ein Handbuch zu Apache 2 und das "Open Source Jahrbuch 2007"
Tooltime Die besten zehn Eclipse-Plugins
Viel Holz für den Rahmen PHP-Frameworks im Überblick
Wider das Vergessen Automatisiertes Wiederherstellen von Dateien mit Sleuthkit 3.2
Fit fürs Web 1.0 LPIC-1-Vorbereitung - Teil 19: Apache
Whitepaper
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)

Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Usage Landscape Enterprise Open Source Data Integration

Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.

Download PDF (Registrierung erforderlich)
Kommentare (0)