Zu den wichtigen Aufgaben einer Firewall zählte in der Vergangenheit stets das Filtern von Ports. Das heutige Erscheinungsbild des Datenverkehrs erfordert jedoch bessere Schutzmechanismen. Der Datenverkehr im Internet konzentriert sich zunehmend auf zwei TCP-Ports: Das Surfen auf Websites, der E-Mail-Versand, Chat, Web-Radio, Video-Streaming und sogar Computerspiele laufen von den 65.535 verfügbaren TCP- und UDP-Ports fast nur noch über Port 80 (HTTP) und über Port 443 (HTTPS). Dies hat gravierende Auswirkungen auf die Netzwerksicherheit: Eine Firewall, die nur Ports filtert, ist bei dieser Entwicklung kaum noch effektiv. Die Entscheidung, Port 80 und 443 zu öffnen oder zu blockieren, ist schnell getroffen. Danach kann die Firewall die Nutzung dieser Ports nicht weiter einschränken. Dabei musste die Entwicklung der Netzwerksicherheit schon immer mit der Entwicklung der Internetnutzung Schritt halten. War es in den 90er-Jahren noch ausreichend, IP-Adressen zu filtern, mussten die Systeme ab 2000 schon den einzelnen TCP/UDP-Port filtern. Wenige Jahre später war dann "Stateful Packet Inspection" (SPI) zu Filterung auf Basis des TCP-Verbindungsstatus gefragt. Heute ist "Deep Packet Inspection" (DPI) die beste Möglichkeit, alle verschiedene Programme und Web-Services auf TCP-Port 80 und 443 zu unterscheiden.
Komplett-Check der Pakete
"Deep Packet Inspection" steht für die vollständige Untersuchung der Datenpakete. Ein DPI-Modul besteht im Normalfall aus einer "Software-Library", die Protokolle klassifiziert. Firewall-Hersteller können die Module spezialisierter Anbieter integrieren und dies als Basis für die Entwicklung eigener Produkte nutzen - zum Beispiel Intrusion-Detection- und Intrusion-Prevention-Systeme, Monitoring-Lösungen oder Applikationsfilter.
Dabei funktionieren DPI-Module ähnlich wie Antivirensoftware. Sie arbeiten mit einer Art "Scan-Engine": Für jedes zu erkennende Netzwerkprotokoll gibt es genau angepasste Signaturen. Die Scan-Engine vergleicht dann sämtliche Pakete mit den Protokollsignaturen. Erkennt sie eine Übereinstimmung, gilt das Paket als klassifiziert und geht an Programme wie zum Beispiel einen Applikations-filter weiter.
Für alle Systeme, die DPI nutzen, ist es daher essenziell, dass die Protokollsignaturen jederzeit auf dem aktuellsten Stand sind. Nur so können sie effizient arbeiten. Die große Herausforderung liegt in der häufigen Veränderung proprietärer Protokolle. Etablierte Protokolle wie HTTP oder DNS ändern sich sehr selten. Bei der Änderung proprietärer Protokolle muss sofort ein Signatur-Update stattfinden, oder das Protokoll entzieht sich jeglicher Kontrolle. Was unterscheidet dabei DPI von der Nutzung eines Proxy-Servers? DPI kann viele Hunderte Protokolle klassifizieren, ohne die Verbindung zu unterbrechen. Proxy-Server können üblicherweise nur ein bestimmtes Protokoll auf einem TCP-Port zulassen. Die Vorteile von DPI zeigen sich in mehreren Bereichen:
Applikationsfilter: DPI prüft alle Schichten von 2 bis 7. Filterkriterien können überall eingesetzt werden. Der große Vorteil eines auf DPI aufbauenden Applikationsfilters liegt jedoch in der Kontrolle der Layer-7-Informationen und der Klassifikation vieler hundert Protokolle unabhängig vom TCP- oder UDP-Port.
Administratoren können dann zum Beispiel Skype zulassen, aber dieser Anwendung gezielt den Dateiaustausch per P2P verbieten. Auch ist verschachtelter Netzwerkverkehr identifizierbar. Eine L2TP-Verbindung (Layer-2-Tunneling-Protokoll) ließe sich mit einem Port-Filter nicht weiter kontrollieren, mit DPI ist es jedoch möglich, auch im Tunnel Protokolle zu erlauben oder zu verbieten.
Data Leakage Prevention: Solche Systeme verhindern, dass vertrauliche Daten durch Netzwerkschnittstellen die Firma verlassen. Sie erstellen Hash-Werte, die sie mit allen ausgehenden Daten vergleichen. Um den Netzwerkverkehr analysieren zu können, erhalten sie eine Klassifikation der Protokolle vom DPI-System.
Quality of Service: QoS priorisiert bestimmten Netzwerkverkehr. Um beispielsweise einen VoIP-Stream eine höhere Priorität zu geben, nutzt das Protokoll-QoS eine Klassifikation durch ein DPI-System.
Das Beispiel eines Applikationsfilters in einer Linux-Firewall zeigt eine mögliche Anwendung von DPI. Dabei verbindet eine Linux-Firewall die Client-Rechner mit dem Internet. Sämtlicher Netzwerkverkehr vom und zum Internet wird untersucht und gegebenenfalls gefiltert. Der Linux-Kernel nimmt eingehende Pakete zuerst an, das Netfilter-Framework untersucht diese Pakete dann in verschiedenen Stufen. Da das Paket zunächst noch unbekannt ist, analysiert das System im ersten Schritt den äußersten Paket-Header. Handelt es sich zum Beispiel um einen Ethernet-Header, lassen sich Informationen wie MAC-Adresse oder VLAN-Zugehörigkeit bestimmen. Im zweiten Schritt überprüft das System den nächsttieferen Header. Passt hier das Schema eines IP-Pakets, sind Informationen aus diesem Protokoll ableitbar. Zudem fließt die Routing-Entscheidung mit ein, um Pakete an lokale Services - zum Beispiel an den Proxy - von einfach weiterzuleitenden Pakete zu trennen. Das Netfilter-Framework leitet das Paket direkt an ein DPI-Modul weiter.
Das DPI-Modul vergleicht dann im nächsten Schritt das Paket mit einer sehr großen Anzahl an Protokollsignaturen und klassifiziert es. Verschiedene Techniken stehen dazu zur Verfügung. Zum Beispiel kann das DPI-Modul das Paket Schicht für Schicht auseinandernehmen. Zuerst entnimmt es dem IP-Header unter anderem die Informationen über Source- und Destination-IP-Adresse. Der nächste Header (TCP) offenbart den TCP-Port und weitere Eigenschaften wie die mögliche Zugehörigkeit zu einer bestehenden Verbindung.
Zuletzt analysiert das DPI-Modul das Paket auf der Anwendungsebene, also Layer 7. Auch dort wertet es zuerst den Header aus, um gegebenenfalls schon das Protokoll zu erkennen. Da sich aber auch Layer-7-Protokolle in anderen Layer-7-Protokollen verstecken können, ist noch der gesamte Nutzlastbereich zu untersuchen.
Im Beispiel gibt es eine Übereinstimmung bei einem Regular-Expression-Vergleich mit einer Jabber-Protokoll-Signatur (XMPP). Dieses Protokoll kommt beispielsweise bei Google Talk zum Einsatz. Das nun klassifizierte Paket läuft im Beispiel vom Applikationsfilter an das Netfilter-Framework zurück. Dies erlaubt oder verbietet es dann. Mit der Klassifikation des Protokolls ist der Chat-Verlauf aber auch in einem anderen Szenario auswertbar (DPI-Monitoring).
Fallstricke von DPI
Jegliche Paketkontrolle - IP, Port und SPI sowie der gesamte Nutzlastbereich der Layer-7-Pakete - gehört zum Aufgabenbereich von DPI. Bei 5 GByte Netzwerkverkehr sind daher nicht nur die Paket-Header, die nur einen minimalen Anteil der Datenmenge ausmachen, sondern die gesamten 5 GByte zu analysieren. Dies ist ein extrem hoher Aufwand, den bei schnellen Verbindungen nur eine sehr leistungsstarke Hardware bewältigen kann. Die erwähnten ständigen Veränderungen der proprietären Protokolle sorgen zudem dafür, dass die DPI-Signaturen dieser Protokolle schnell veraltet und wirkungslos sind und daher permanent aktualisiert werden müssen. Dieses Problem tritt bei den Antivirensignaturen ebenfalls auf.
Auch der Applikationsfilter kann an Grenzen stoßen. Er kann ein Protokoll verbieten oder erlauben, sobald dieses klassifiziert ist. Diese Klassifizierung ist teilweise erst nach der Inspektion mehrerer Pakete möglich. Versteckt sich ein Layer-7-Protokoll in einem anderen Layer-7-Protokoll, also beispielsweise ein Remote-Desktop-Protokoll im HTTP-Protokoll, können vereinzelt Pakete den Filter passieren, bis das eigentliche Protokoll im Inneren klassifiziert ist. Sind in einem Applikationsfilter einige Protokolle (per so genannter Whitelist) ohne Einschränkung erlaubt, muss der Filter noch mehr nicht klassifizierte Pakete durchlassen. Anders als bei einem Proxy sammelt das System die Pakete nicht erst, sondern leitet sie direkt weiter. Zudem sind für die erste Klassifizierung zunächst genügend Pakete zu kontrollieren. Für die Whitelist-Funktion ist auch noch notwendig, dass sich hinter dem ersten Protokoll nicht noch ein weiteres Protokoll verbirgt. Der Applikationsfilter untersucht weitere Pakete, bis er die endgültige Klassifizierung erreicht. Dann sind eventuell aber schon so viele Pakete durch den Filter gelangt, dass die verbotenen Protokolle ihre Funktion schon ausgeführt haben.
Die Konsolidierung des Netzwerkverkehrs auf die TCP-Ports 80 und 443 ist für Firewall-Systeme mit Deep Packet Inspection also keine große Einschränkung. Netzwerkprotokolle sind weiter filterbar, nur findet diese Filterung auf einem höheren OSI-Layer statt. Eine effektive Firewall blickt einfach tiefer ins Paket hinein.
Die Entwicklung der Paketuntersuchung war bisher stets an die Entwicklung der Internet-Nutzung gekoppelt. Ging es in der Vergangenheit noch um anonyme IP-Adressen, spielt zunehmend der tatsächliche Inhalt der Pakete wie zum Beispiel die Nutzung des HTTP-Protokolls durch VoIP- und Chat-Programme eine Rolle. Setzt sich dieser Trend fort, könnte auf den Protokollfilter ein Nutzdatenfilter folgen. Zusätzlich zur Protokollsyntax würde dann die semantische Relevanz der Anwendungsdaten automatisch analysiert und geprüft. Auf diese Weise wäre auch eine sehr feine Filterung der Protokollnutzung sowie ein protokollübergreifendes Benutzer- und System-Tracking auf Basis verschiedener Authentifikationsspuren möglich.