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 PlatformDie 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 PlatformDie WFP besteht aus vier Komponenten, einer im User Mode und drei im Kernel Mode des Betriebssystems:
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 FilterJedes 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
|