Open Source im professionellen Einsatz

Keine Interna ausplaudern

Modsecurity filtert auch ausgehende Daten, insbesondere die Antworten des Servers auf zuvor eingehende Anfragen. Die Programmiersprache PHP erzeugt etwa Fehlermeldungen wie:

Fatal error: Connecting to MySQL server 'dbserv.example.com' failed

Obwohl sich das Senden von PHP-Fehlermeldungen abschalten lässt, finden sich mittels Google eine Menge Webseiten, auf denen PHP-Fehlermeldungen Anwendungsinterna ausposaunen. Solche Informationen sind jedoch für einen Angreifer sehr wertvoll, da sie ihm dabei helfen können, die interne Funktionsweise und den Aufbau einer Webapplikation zu verstehen und diese gezielter anzugreifen. Um Modsecurity zu veranlassen, PHP-Fehlermeldungen abzufangen und nicht an den Benutzer zu schicken, lässt sich folgende Regel verwenden:

SecRule RESPONSE_BODY "Fatal error:"

Die Variable »RESPONSE_BODY« bezeichnet den Inhalt der Antwort des Servers an den Client. Diese Regel ist zwar nicht sehr elegant, verdeutlicht aber das Potenzial. Dennoch: Mit einem gut gemachten regulären Ausdruck lassen sich mit derselben Technik auch Kreditkartennummern abfangen, bevor eine kompromittierte Anwendung sie zum Beispiel nach einem erfolgreichen Angriff per SQL Injection an einen Angreifer sendet.

Chinesische Mauer verkehrt

Eine weitere Möglichkeit der fortgeschrittenen Nutzung von Modsecurity ist das Zusammenspiel mit Geo IP des Anbieters Maxmind. Geo IP lokalisiert einen Nutzer geografisch nach dessen IP-Adresse. Damit lässt sich der Zugriff auf eine Webseite nur auf eine bestimmte Region beschränken - beispielsweise Bayern, wenn es um mundartliche Erörterungen geht, die sowieso sonst niemand versteht - oder der aus einem Land sperren. Dazu installiert der Admin das Modul »mod_geoip2« für den Apache 2 sowie die Software Geo IP inklusive der Geodatenbank »GeoLiteCity.dat« [11].

Web-Experten
gesucht!

Das im Artikel beschriebene Modsecurity erfasst nur einen ganz kleinen Teil des Fachgebiets Websecurity. Hinzu kommt, dass sich Webtechniken rasant weiterentwickeln. Unterm Strich überfordert Websicherheit jeden Admin, auch den, der gewillt ist sich zu informieren. Selbst Zeitschriften wie das Linux-Magazin oder Fachbücher können angesichts von Fülle und Dynamik des Gebiets nur punktuell helfen. Im Web gibt es zwar nützlichen Tipps in Form von Beiträgen, Blogs und Anleitungen. Die sind aber sehr verstreut, selten aktuell und oft nicht verifiziert.

Um die Situation für Webadmins und Sicherheitsverantwortliche zu verbessern, stellt das Linux-Magazin ein Wiki unter [http://linux-magazin.de/lab] ins Netz. Jeder Magazin-Leser, Webmaster, Entwickler von Webapplikationen oder Securityspezialist soll dort Websecurity-Informationen finden, die im Alltag helfen. Die Redaktion steuert thematisch passende Beiträge aus dem Linux-Magazin bei - diesen Artikel zum Beispiel.

Um dem Projekt aber mit der Zeit den umfassenden Charakter einer Referenz zu verleihen, bedarf es Ihrer Mithilfe! Wie schützen Sie Ihre Server und Anwendungen? Haben Sie clevere Modsecurity-Regeln verfasst oder kennen Sie einen Trick, um Netfilter zu erweitern, sodass es Pattern filtert? Welche Virtualisierung nutzen Sie, um einzelne Server voneinander zu trennen, und was taugen die Sicherheitsbibliotheken der einschlägigen Skriptsprachen? Kommen Sie doch mal vorbei!

Wenn schwäbische Maschinenbauer etwa Angst vor Wirtschaftsspionage aus Fernost haben, nutzen sie die Konfiguration aus Listing 3 dazu, um den Zugriffe aus China zu unterbinden - zumindest dann, wenn sich die Chinesen nicht sonderlich anstrengen, um ihre Herkunft zu verschleiern. Die beiden letzten Zeilen bilden eine so genannte verkettete Filterregel. In Zeile 6 lokalisiert sie die geografische Herkunft der anfragenden IP-Adresse. Anschließend verwirft Zeile 7 die Anfrage mit einer entsprechenden Meldung im Logfile, sofern sie aus China kommt. Vielleicht nicht politisch korrekt, aber wirksam.

Listing 2: Match einer
Regel

01 SecAuditLogType Serial [Wed Nov 04 05:39:19 2009] [error] [client 192.168.209.1] ModSecurity: Access denied with code 403 (phase 2). Pattern match"/etc/passwd" at REQUEST_URI. [file "/usr/local/httpd-2.2.14/conf/httpd.conf"] [line "420"] [hostname "www.example.com"] [uri "/index.html"] [unique_id "SvFZ138AAQEAAAc4AgQAAAAA"]

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook