Die Apache-Firewall

Die Application-Level-Firewall mod_security kann viel differenzierter auf den Inhalt von HTTP-Anfragen und -Antworten reagieren, als es mit herkömmlichen Paketfiltern möglich wäre.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 17 Min.
Von
  • Christiane Rütten
Inhaltsverzeichnis

Die wesentliche Einschränkung von Paket-filternden Firewalls wie IPTables und der Windows-Firewall besteht darin, dass sie im Grunde nichts von den Nutzdaten in den Paketen verstehen, die sie verarbeiten. Für sie ist nur wichtig, welche Pakete zu welcher Netzwerkverbindung gehören, woher sie kommen und wohin sie gehen. Application-Level-Firewalls hingegen verstehen die verarbeiteten Protokolle und können so viel differenzierter beispielsweise auf den Inhalt von HTTP-Verbindungen reagieren als dies auf Paketebene möglich wäre.

Die Probleme von Paketfiltern beginnen schon dabei, beispielsweise TCP-Pakete mit bekannten Exploits oder Webseiten mit schädlichen Links zu sperren. Zu suchende Muster befinden sich durch Fragmentierung nicht immer innerhalb eines einzelnen TCP-Paketes und die verwendeten Übertragungsprotokolle repräsentieren Daten häufig auch nicht in einem einheitlichen Format. Browser und Server würden den Deteipfad /docs/2.0/configuring.html zum Beispiel auch in der teilweise hexadezimal kodierten Form /%64o%63s/2%2E0/con%66igu%72ing%2Ehtml korrekt verarbeiten, was für die Erstellung von treffenden Suchmustern eine enorme Herausforderung darstellt. Entsprechend noch komplizierter wird die Angelegenheit bei der Erkennung von problematischen Inhalten in Variablenparametern in URLs oder gar POST-Anweisungen.

Darüber hinaus lässt sich von einem reinen Paketfilter auch nicht zuverlässig bestimmen, ob es sich bei den vorbeikommenden Paketen tatsächlich um Daten einer HTTP-Verbindung handelt. Der Ansatz, eine solche Zuordnung nach Ports vorzunehmen, scheitert in der Regel schon an den vielen Ausnahmen. So werden zur Umgehung restriktiver Firewalls viele Dienste, wie Internet-Telefonie, Filesharing oder Instant-Messenger ebenfalls über den HTTP-Port 80 abgewickelt. Die immer weitere Verbreitung SSL-verschlüsselter Verbindungen tut ihr Übriges, Paketfilter vom Protokollverständnis auszuschließen.

An diesem Punkt setzen Application-Level-Firewalls an. Wie der Name schon sagt, arbeiten sie nicht mehr wie Paketfilter auf der Netzwerk- und Transportschicht des OSI-Modells, sondern auf der Applikationsebene, über die die jeweiligen Anwendungen (in obigem Beispiel Browser und WWW-Server) miteinander kommunizieren. Hieraus leitet sich für diese Technik auch die alternative Bezeichnung Level-7-Filterung ab.

Im Falle von HTTP lässt sich eine Filterung auf Protokollebene noch recht bequem als Proxy realisieren. Doch es liegt nahe, die notwendige Funktionalität direkt in die Applikationen selbst zu integrieren, um eine engere Verzahnung und größere Flexibilität zu erreichen.