Skip to main content


Windows Filtering Platform (Theorie)

Die Windows Filtering Platform (WFP) ist eine mit Windows Vista eingeführte und in Windows 7 verbesserte Kombination aus Systemdiensten und zugehörigen User- und Kernel-Mode-API, über die sich Anwendungen in die Paketverarbeitung und -filterung des Netzwerkstacks einklinken können. Die WFP erlaubt Anwendungsprogrammen, TCP/IP-Pakete zu filtern und zu modifizieren, Netzwerkverbindungen zu überwachen und zu autorisieren sowie IPsec-geschützten Netzwerkverkehr und Remote Procedure Calls (RPC) zu filtern. Ideal ist die WFP natürlich für Programme wie Firewalls, Intrusion Detection/Prevention-Systeme oder Viren-Scanner. Es können aber auch andere Anwendungen Nutzen aus ihr ziehen.

Features der Windows Filtering Platform

Die WFP stellt eine Paketfilter-Infrastruktur bereit, die von den Anwendungsprogrammen um spezialisierte Filter erweitert werden kann. Die Netzwerkdaten (sowohl Pakete als auch Datenströme) können gefiltert, manipuliert und wieder in den Netzwerkverkehr eingeschleust werden. Die Filter können für Anwendungen, Benutzer und Netzwerkverbindungen sowie für Netzwerk-Interfaces oder Ports aktiviert werden.

Die WFP übernimmt ggf. den Zusammenbau von Netzwerkpaketen und die Verwaltung des Status. IPsec-geschützter Netzwerkverkehr kann vor und nach der Entschlüsselung der Daten gefiltert werden. Durch die Unterstützung der Secure Socket Extensions des Winsock-API können Netzwerkprogramme ihren Netzwerkverkehr über die WFP schützen.

Auf dem Application Layer Enforcement (ALE) Layer wird zur Performance-Optimierung nur das erste Paket jeder Verbindung verarbeitet. Es können IPsec- und Firewall-Filter-Policies integriert werden. Über eine Policy-Management-Infrastruktur kann ermittelt werden, ob bestimmte Filter aktiviert oder deaktiviert werden müssen, wobei Konflikte zwischen den Anforderungen verschiedener Filter berücksichtigt werden. Änderungen am Filtersystem werden den Benutzern ggf. über ein Benachrichtigungssystem mitgeteilt. Außerdem wird das Network Diagnostics Framework (NDF) unterstützt.

Der Aufbau der Windows Filtering Platform

Die WFP besteht aus vier Komponenten, einer im User Mode und drei im Kernel Mode des Betriebssystems:

  • Die Base Filtering Engine (BFE) befindet sich im User Mode und dient der Installation, Konfiguration und Deinstallation der WFP-Komponenten und stellt Schnittstellen zur Statusabfrage der anderen Komponenten zur Verfügung.
    Durch die Ansiedlung im User Mode können normale Programme Filter erstellen und konfigurieren. Der neu erstellte Filter wird dann von der BFE in der Kernel Mode Filtering Engine installiert. Eine Ausnahme bilden hier die Filter, die auf dem Internet Key Exchange (IKE)-, IPsec- oder User Mode Remote Procedure Call (RPC)-Layern arbeiten, die in der BFE angesiedelt sind.
  • Die Kernel Mode Filtering Engine (KMFE) befindet sich, wie der Name schon verrät, im Kernel Mode und ist die zentrale Komponente der WFP: Sie ist für die Filterung der Pakete zuständig. Dazu werden die über die Shims bereit gestellten Daten der Pakete mit vorgegebenen Regeln verglichen und je nach Ergebnis durchgelassen oder blockiert. Weitere Aktionen können über sog. "Callouts" implementiert werden.
  • Die sog. Shims befinden sich ebenfalls im Kernel-Mode und stellen die Verbindung zwischen TCP/IP-Stack und KMFE her. Sie leiten ankommende Daten an die KMFE weiter und erhalten von ihr die Anweisungen zum Weiterleiten oder Blockieren der Pakete. Shims für verschiedene Protokolle sind bereits in der WFP enthalten, weitere können über die API registriert werden.
  • Die "Callout" genannten Callback-Funktionen werden von Filter-Treibern bereitgestellt, um z.B. weitere Filterfunktionen über das Blockieren bzw. Durchlassen hinaus bereitzustellen.

WFP-Architektur (siehe auch hier)

Die KMFE enthält über 70 verschiedene Layer, auf deren Netzwerkdaten die Filter angewendet werden können. Die hohe Anzahl entsteht zum einen durch die Unterscheidung ein- und ausgehender Pakete, zum anderen durch die separaten Layer für IPv4 und IPv6.

Die Filter

Jedes Shim leitet ankommende Pakete an die Kernel Mode Filtering Engine weiter, die dann entscheidet, an welche Filter die Daten übergeben werden müssen. Sind mehrere Filter betroffen, werden sie entsprechend der ihrer Gewichtung genannten Priorität sortiert – die Daten werden an den Filter mit der höchsten Gewichtung weitergeleitet. Besitzt der Filter einen Callout, leitet er die Daten an diesen weiter und wartet dessen Entscheidung ab, ansonsten trifft er seine Entscheidung selbst. Die getroffene Entscheidung wird dann an die KMFE zurückgegeben.

Gegebenfalls werden danach weitere Filter mit niedriger Gewichtung durchlaufen, bis alle Filter durchlaufen wurden. Die einzelnen Entscheidungen werden danach anhand vorgegebener Regeln gewichtet und ein Gesamtergebnis gebildet: Entweder das Paket wird blockiert oder es wird durchgelassen.

Die KMFE liefert die Entscheidung (blockieren bzw. durchlassen) an das Shim zurück, das blockierte Pakete verwirft und durchzulassende Pakete an die nächste Schicht weiterleitet. Dort werden sie vom Shim an die KMFE weitergeleitet und der Filtervorgang beginnt von vorne – so lange, bis das Paket entweder blockiert wurde oder den TCP/IP-Stack erfolgreich passiert hat.

Während die Filter standardmäßig Pakete nur blockieren oder durchlassen können, können über Callouts weitere Funktionen implementiert werden.

Im nächsten Teil erfahren Sie, welche Möglichkeiten die WFP Ihnen als Entwickler bietet.


 

Autor des Artikels

Dipl.-Inform. Carsten Eilers ( www.ceilers-it.de) ist als freier Berater und Coach für IT-Sicherheit und technischen Datenschutz tätig und als Autor verschiedener Artikel und des Buches "Ajax Security" bekannt.  Seinen Blog finden Sie hier.

 



These postings are provided "AS IS" with no warranties, and confers no rights. Use of included code samples are subject to the terms specified at Microsoft - Information on Terms of Use. The content of these security articles are the own personal opinions from Carsten Eilers.

Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur -Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die -Website verlassen.

Möchten Sie teilnehmen?