Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Windows Filtering Platform (PAM) effectue ses tâches en intégrant les entités de base suivantes : Couches, Filtres, Shimset légendes.
Couches
Une couche est un conteneur géré par le moteur de filtre dont la fonction consiste à organiser les filtres en ensembles. Une couche n’est pas un module dans la pile réseau. Chaque couche a un schéma qui définit le type de filtres qui peut être ajouté à celui-ci. Pour plus d’informations, consultez conditions de filtrage disponibles sur chaque de couche de filtrage.
Les couches peuvent contenir des sous-couches pour gérer les exigences de filtre en conflit, telles que « Bloquer les ports TCP au-dessus de 1024 » et « Ouvrir le port 1080 ». Les règles de gestion des conflits de filtrage sont déterminées par l’arbitrage de filtre.
LE PAM contient un ensemble de sous-couches intégrées . Chaque couche hérite de toutes les sous-couches intégrées. Les utilisateurs peuvent également ajouter leurs propres sous-couches.
La liste des couches du moteur de filtre est fournie dans la rubrique de la section de référence les identificateurs de couche de filtrage.
Filtres
Un filtre est une règle qui correspond aux paquets entrants ou sortants. La règle indique au moteur de filtrage ce qu’il faut faire avec le paquet, notamment pour appeler un module de légende pour l’inspection approfondie des paquets ou des flux. Par exemple, un filtre peut spécifier « Bloquer le trafic avec un port TCP supérieur à 1024 » ou « Appeler à IDS pour tout le trafic qui n’est pas sécurisé ».
Un filtre au moment du démarrage est un filtre appliqué au démarrage dès que le pilote de pile TCP/IP (tcpip.sys) démarre. Un filtre au moment du démarrage est désactivé au démarrage de BFE. Un filtre est marqué comme l’heure de démarrage en définissant l’indicateur FWPM_FILTER_FLAG_BOOTTIME lorsque FwpmFilterAdd0 est appelé.
Un filtre au moment de l’exécution est un filtre appliqué après le démarrage de BFE. Un filtre au moment de l’exécution peut être statique, dynamique ou persistant en fonction de la façon dont il a été créé. Consultez Gestion des objets pour plus d’informations sur les différents types de filtres d’exécution et leur durée de vie.
Cales
Un shim est un composant en mode noyau qui prend des décisions de filtrage en classant les couches du moteur de filtre. Chaque shim classifie par rapport à une ou plusieurs couches. Par exemple, le shim du module de couche de transport se classifie par rapport à la couche Transport entrant, à la couche Transport sortant et aux couches ALE Connect et Receive-Accept pour le premier paquet d’un flux.
Lorsque les paquets, les flux et les événements parcourent la pile réseau, les shims les analysent pour extraire les conditions et les valeurs classifiables, puis appellent dans le moteur de filtre pour les évaluer par rapport aux filtres d’une couche donnée. Le moteur de filtre peut appeler une ou plusieurs légendes dans le cadre de la classification. Les shims effectuent la suppression réelle de paquets, de flux et d’événements en fonction du résultat de la classification effectuée par le moteur de filtre.
Légendes
Un légende est un ensemble de fonctions exposées par un pilote et utilisées pour le filtrage spécialisé. Ils sont utilisés pour effectuer une analyse et une manipulation des paquets, tels que l’analyse antivirus, l’analyse des contrôles parental pour le contenu inapproprié, l’analyse des données de paquets pour les outils de surveillance. Certaines légendes, telles que le pilote NAT (Network Address Translation), sont intégrées au système d’exploitation. D’autres, comme une légende de contrôle parental HTTP ou la légende IDS (Intrusion Detection System), peuvent être fournies par des éditeurs de logiciels indépendants (ISV). Les fonctions de légende sont appelées par le moteur de filtre lorsqu’un filtre de légende correspondant est mis en correspondance à une couche donnée.
Les légendes peuvent être inscrites à l’une des couches PAM en mode noyau. Les légendes peuvent retourner une action (« Bloquer », « Autoriser » et, lors de l’inspection du flux, « Différer », « Besoin de plus de données », « Supprimer la connexion ») et peuvent modifier et sécuriser le trafic réseau entrant et sortant.
Une fois qu’une légende est inscrite auprès du moteur de filtre, elle peut recevoir le trafic réseau à traiter. Le trafic peut être des paquets, des flux ou des événements en fonction de la couche. Un agent d’application ou de pare-feu entraîne le passage du trafic à une légende en ajoutant un filtre dont l’action est « Légende » et dont l’ID de légende est l’identificateur de la légende. Les légendes peuvent indiquer au moteur de filtre de renvoyer « Bloquer » ou « Autoriser » au shim. Les légendes peuvent également retourner « Continuer » pour autoriser d’autres filtres à traiter le paquet.
Plusieurs légendes peuvent être exposées par un pilote de légende.
Une légende doit être ajoutée (avec FwpmCalloutAdd0) et inscrite (avec FwpsCalloutRegister) avant de pouvoir être utilisée. Un appel à FwpmCalloutAdd0 est requis avant la création de filtres qui référencent la légende. Un appel à FwpsCalloutRegister est requis avant que le PAM puisse appeler la légende lorsque les filtres de légende sont mis en correspondance. Par défaut, les filtres qui référencent les légendes qui ont été ajoutées mais qui n’ont pas encore été inscrites auprès du moteur de filtre sont traités comme des filtres « Bloquer ». L’ordre d’appel FwpmCalloutAdd0 et FwpsCalloutRegister n’a pas d’importance. Une légende persistante doit être ajoutée une seule fois et doit être inscrite chaque fois que le pilote qui implémente la légende démarre (par exemple, après un redémarrage).
Classification
La classification est le processus d’application de filtres au trafic réseau (paquet, flux ou événement) afin de déterminer le résultat « Autoriser » ou « Bloquer » pour ce trafic. Pour un paquet, un flux ou un événement, il existe un appel de classification par couche.
Pendant la classification, les propriétés (par exemple, l’adresse source) du paquet, du flux ou de l’événement sont comparées aux conditions de filtre définies sur les filtres au niveau de la couche où la classification est appelée. Lorsque des correspondances sont trouvées, l’algorithme Filter Arbitration est utilisé pour déterminer le résultat du processus de classification.
Une demande de classification est déclenchée par un shim.
Les actions de classification peuvent être les suivantes :
- Permettre
- Bloquer
- Légende
- Permettre
- Bloquer
- Continuer
- Différer
- Besoin de données supplémentaires
- Supprimer la connexion
Opération PAM
Au démarrage, dès que le pilote de pile TCP/IP (tcpip.sys) démarre, le moteur de filtre en mode noyau applique la stratégie de sécurité du système via des filtres de démarrage.
Une fois que le moteur de filtrage de base (BFE) démarre en mode utilisateur, les filtres persistants sont ajoutés à la plateforme, les filtres au moment du démarrage sont désactivés et les notifications sont envoyées à ces pilotes de légende qui s’abonnent à l’aide de FwpmBfeStateSubscribeChanges0. Les notifications sont distribuées immédiatement une fois l’initialisation BFE terminée. La plateforme est maintenant prête pour l’inscription des légendes et l’ajout d’objets au moment de l’exécution.
La transition entre le temps de démarrage et les filtres persistants peut être de plusieurs secondes, voire plus longue sur une machine lente. Il est atomique. Par conséquent, si un fournisseur dispose à la fois d’un démarrage et d’un filtre persistant, il n’y aura jamais de fenêtre lorsque ni l’un ni l’autre n’est en vigueur.
Après le démarrage de BFE, les filtres d’exécution peuvent être ajoutés par des agents de pare-feu ou par des solutions de pare-feu personnalisées. BFE traite ces filtres et les envoie à la couche de moteur de filtre appropriée pour l’application. BFE accepte également les paramètres d’authentification et envoie ces paramètres aux modules de clé IPsec (IKE/AuthIP). Pour plus d’informations, consultez configuration IPsec.
À tout moment, les filtres et les paramètres d’authentification peuvent être ajoutés, supprimés ou modifiés dans le système via l’interface RPC exposée par le BFE. Les sous-couches et les modules de légende peuvent également être ajoutés ou supprimés.
Flux de données:
- Un paquet entre dans la pile réseau.
- La pile réseau recherche et appelle un shim.
- Le shim appelle le processus de classification à une couche particulière.
- Pendant la classification, les filtres sont mis en correspondance et l’action résultante est effectuée. (Voir d’arbitrage de filtres .)
- Si des filtres de légende sont mis en correspondance pendant le processus de classification, les légendes correspondantes sont appelées.
- Le shim agit sur la décision de filtrage finale (par exemple, supprimer le paquet).
Le flux de données sortants suit un modèle similaire.
Les rubriques suivantes décrivent plus en détail le fonctionnement du PAM.
- flux de paquets TCP
- flux de paquets UDP
- d’arbitrage de filtre
Rubriques connexes