Freigeben über


WFP-Vorgang

Die Windows-Filterplattform (WFP) führt ihre Aufgaben aus, indem die folgenden grundlegenden Entitäten integriert werden: Ebenen, Filter, Shimsund Beschriftungen.

Schichten

Eine Layer- ist ein Container, der vom Filtermodul verwaltet wird, dessen Funktion das Organisieren von Filtern in Mengen ist. Eine Ebene ist kein Modul im Netzwerkstapel. Jede Ebene verfügt über ein Schema, das den Typ der Filter definiert, die hinzugefügt werden können. Weitere Informationen finden Sie unter Filterbedingungen, die auf jeder Filterebene verfügbar sind.

Layer können Unterebenen enthalten, um Konflikte verursachende Filteranforderungen wie "Blockieren von TCP-Ports über 1024" und "Open Port 1080" zu verwalten. Die Regeln für die Verwaltung von Filterkonflikten werden durch Filtervermittlungbestimmt.

WFP enthält eine Reihe von integrierten Unterebenen. Jede Ebene erbt alle integrierten Unterebenen. Benutzer können auch eigene Unterebenen hinzufügen.

Die Liste der Filtermodulebenen wird im Referenzabschnitt Filterschichtbezeichnerbereitgestellt.

Filter

Ein Filter ist eine Regel, die mit eingehenden oder ausgehenden Paketen übereinstimmt. Die Regel teilt dem Filtermodul mit, was mit dem Paket zu tun ist, einschließlich des Aufrufs eines Legendenmoduls für deep packet or stream inspection. Beispielsweise kann ein Filter "Blockieren des Datenverkehrs mit einem TCP-Port größer als 1024" oder "Call out to IDS for all traffic that is not secured" angeben.

Ein Startzeitfilter ist ein Filter, der zur Startzeit erzwungen wird, sobald der TCP/IP-Stapeltreiber (tcpip.sys) gestartet wird. Ein Startzeitfilter ist deaktiviert, wenn BFE gestartet wird. Ein Filter wird als Startzeit markiert, indem das FWPM_FILTER_FLAG_BOOTTIME Flag festgelegt wird, wenn FwpmFilterAdd0- aufgerufen wird.

Ein Laufzeitfilter ist ein Filter, der nach dem Starten von BFE erzwungen wird. Ein Laufzeitfilter kann statisch, dynamisch oder persistent sein, je nachdem, wie er erstellt wurde. Weitere Informationen zu den verschiedenen Typen von Laufzeitfiltern und deren Lebensdauer finden Sie unter Objektverwaltung.

Klemmstücke

Ein Shim- ist eine Kernelmoduskomponente, die Filterentscheidungen durch Klassifizieren gegen die Filtermodulebenen trifft. Jeder Shim klassifiziert einen oder mehrere Ebenen. Beispielsweise klassifiziert das Transport layer Module shim die Ebene "Eingehender Transport", die Ebene "Ausgehender Transport" und die Ebenen "ALE Connect" und Receive-Accept für das erste Paket eines Flusses.

Während Pakete, Datenströme und Ereignisse den Netzwerkstapel durchlaufen, analysieren die Shims sie, um die klassifizierten Bedingungen und Werte zu extrahieren, und rufen Sie dann das Filtermodul auf, um sie anhand der Filter in einer bestimmten Ebene auszuwerten. Das Filtermodul kann eine oder mehrere Beschriftungen als Teil der Klassifizierung aufrufen. Die Shims führen das tatsächliche Ablegen von Paketen, Datenströmen und Ereignissen basierend auf dem Ergebnis der vom Filtermodul durchgeführten Klassifizierung durch.

Legenden

Eine Beschriftung ist eine Reihe von Funktionen, die von einem Treiber verfügbar gemacht und für die spezielle Filterung verwendet werden. Sie werden verwendet, um Analysen und Manipulationen der Pakete durchzuführen, z. B. Virenscan, Jugendschutzüberprüfung auf unangemessene Inhalte, Paketdatenanalyse für Überwachungstools. Einige Beschriftungen, z. B. der NAT-Treiber (Network Address Translation), sind in das Betriebssystem integriert. Andere, z. B. eine HTTP-Jugendschutz-Legende oder die IDS-Legende (Intrusion Detection System), können von unabhängigen Softwareanbietern (ISVs) bereitgestellt werden. Die Legendenfunktionen werden vom Filtermodul aufgerufen, wenn ein entsprechender Popupfilter auf einer bestimmten Ebene abgeglichen wird.

Legenden können auf einer der Kernelmodus-WFP-Ebenen registriert werden. Legenden können eine Aktion ("Blockieren", "Zulassen" zurückgeben und, wenn Datenstromüberprüfungen ausgeführt werden, "Zurückstellen", "Weitere Daten benötigen", "Verbindung ablegen") zurückgeben und den eingehenden und ausgehenden Netzwerkdatenverkehr ändern und sichern.

Sobald eine Legende beim Filtermodul registriert ist, kann sie Netzwerkdatenverkehr empfangen, der verarbeitet werden soll. Der Datenverkehr kann pakete, Datenströme oder Ereignisse abhängig von der Ebene sein. Eine Anwendung oder ein Firewall-Agent bewirkt, dass Datenverkehr an eine Legende übergeben wird, indem ein Filter hinzugefügt wird, dessen Aktion "Legende" ist und dessen Legenden-ID der Bezeichner der Legende ist. Legenden können das Filtermodul anweisen, "Block" oder "Permit" an den Shim zurückzugeben. Legenden können auch "Continue" zurückgeben, um anderen Filtern das Verarbeiten des Pakets zu ermöglichen.

Mehrere Legenden können von einem Beschriftungstreiber verfügbar gemacht werden.

Eine Legende muss (mit FwpmCalloutAdd0) hinzugefügt und (mit FwpsCalloutRegister) registriert werden, bevor sie verwendet werden kann. Ein Aufruf von FwpmCalloutAdd0 ist erforderlich, bevor filter erstellt werden, die auf die Legende verweisen. Ein Aufruf von FwpsCalloutRegister ist erforderlich, bevor WFP die Legende aufrufen kann, wenn die Legendenfilter übereinstimmen. Standardmäßig werden Filter, die auf Legenden verweisen, die hinzugefügt, aber noch nicht beim Filtermodul registriert wurden, als "Blockieren"-Filter behandelt. Die Reihenfolge des Anrufs FwpmCalloutAdd0 und FwpsCalloutRegister spielt keine Rolle. Eine persistente Legende muss nur einmal hinzugefügt werden und muss jedes Mal registriert werden, wenn der Treiber, der die Legende implementiert, (z. B. nach einem Neustart).

Klassifikation

Klassifizierung ist der Prozess der Anwendung von Filtern auf Netzwerkdatenverkehr (Paket, Stream oder Ereignis), um ein Ergebnis von "Permit" oder "Block" für diesen Datenverkehr zu bestimmen. Für ein Paket, einen Datenstrom oder ein Ereignis gibt es einen Klassifizierungsaufruf pro Ebene.

Während der Klassifizierung werden die Eigenschaften (z. B. Quelladresse) des Pakets, Datenstroms oder Ereignisses mit Filterbedingungen verglichen, die für Filter auf der Ebene festgelegt sind, auf der die Klassifizierung aufgerufen wird. Wenn Übereinstimmungen gefunden werden, wird der Filtervermittlungsalgorithmus verwendet, um das Ergebnis des Klassifizierungsprozesses zu bestimmen.

Eine Klassifizierungsanforderung wird durch einen Shim ausgelöst.

Klassifizierungsaktionen können eine der folgenden sein:

  • Erlauben
  • Block
  • Beschriftung
    • Erlauben
    • Block
    • Fortsetzen
    • Verschieben
    • Benötigen Sie weitere Daten
    • Verbindung ablegen

WFP-Vorgang

Sobald der TCP/IP-Stapeltreiber (tcpip.sys) gestartet wird, erzwingt das Kernelmodusfiltermodul die Sicherheitsrichtlinie des Systems über Startzeitfilter.

Sobald das Basisfiltermodul (Base Filtering Engine, BFE) im Benutzermodus gestartet wird, werden persistente Filter zur Plattform hinzugefügt, Startzeitfilter werden deaktiviert, und Benachrichtigungen werden an diese Popuptreiber gesendet, die mit FwpmBfeStateSubscribeChanges0abonniert wurden. Die Benachrichtigungen werden unmittelbar nach Abschluss der BFE-Initialisierung verteilt. Die Plattform ist jetzt bereit, Legenden zu registrieren und Laufzeitobjekte hinzuzufügen.The platform is now ready for callouts to be registered and for run-time objects to be added.

Der Übergang von der Startzeit zu beständigen Filtern kann mehrere Sekunden oder sogar länger auf einem langsamen Computer sein. Es ist atomisch, wenn ein Anbieter also sowohl über eine Startzeit als auch über einen beständigen Filter verfügt, wird es nie ein Fenster geben, wenn keines wirksam ist.

Nach dem Starten von BFE können Laufzeitfilter von Firewall-Agents oder von benutzerdefinierten Firewalllösungen hinzugefügt werden. BFE verarbeitet diese Filter und sendet sie zur Erzwingung an die entsprechende Filtermodulebene. BFE akzeptiert auch Authentifizierungseinstellungen und sendet diese Einstellungen an die IPsec-Schlüsselmodule (IKE/AuthIP). Weitere Informationen finden Sie unter IPsec Configuration.

Filter und Authentifizierungseinstellungen können jederzeit über die vom BFE verfügbar gemachte RPC-Schnittstelle im System hinzugefügt, entfernt oder geändert werden. Unterebenen und Legendenmodule können ebenfalls hinzugefügt oder entfernt werden.

Datenfluss:

  1. Ein Paket wird in den Netzwerkstapel eingefügt.
  2. Der Netzwerkstapel findet und ruft einen Shim auf.
  3. Der Shim ruft den Klassifizierungsprozess auf einer bestimmten Ebene auf.
  4. Während der Klassifizierung werden Filter abgeglichen, und die resultierende Aktion wird ausgeführt. (Siehe Filtervermittlung.)
  5. Wenn während des Klassifizierungsprozesses Beschriftungsfilter abgeglichen werden, werden die entsprechenden Legenden aufgerufen.
  6. Der Shim wirkt auf die endgültige Filterentscheidung (z. B. das Paket ablegen).

Der Ausgehende Datenfluss folgt einem ähnlichen Muster.

In den folgenden Themen wird der Betrieb der WFP weiter beschrieben.

Objektmodell-

Objektverwaltung