Opération pam
La plateforme de filtrage Windows (PAM) effectue ses tâches en intégrant les entités de base suivantes : couches, filtres, shims et légendes.
Calques
Une couche est un conteneur géré par le moteur de filtre dont la fonction est d’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 peuvent y être ajoutés. Pour plus d’informations, consultez Conditions de filtrage disponibles sur chaque couche de filtrage .
Les couches peuvent contenir des sous-couches pour gérer des 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.
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 de moteur de filtre est fournie dans la rubrique de la section de référence Filtrage des identificateurs de couche.
Filtres
Un filtre est une règle qui est mise en correspondance par rapport aux paquets entrants ou sortants. La règle indique au moteur de filtrage ce qu’il doit faire avec le paquet, notamment pour appeler un module de légende pour une 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 démarrage est un filtre qui est appliqué au démarrage dès que le pilote de pile TCP/IP (tcpip.sys) démarre. Un filtre au démarrage est désactivé lorsque BFE démarre. Un filtre est marqué comme étant au démarrage en définissant l’indicateur FWPM_FILTER_FLAG_BOOTTIME lorsque FwpmFilterAdd0 est appelé.
Un filtre d’exécution est un filtre qui est appliqué après le démarrage de BFE. Un filtre d’exécution peut être statique, dynamique ou persistant selon la façon dont il a été créé. Pour plus d’informations sur les différents types de filtres d’exécution et leur durée de vie, consultez Gestion des objets.
Cales
Un shim est un composant en mode noyau qui prend des décisions de filtrage en classant par rapport aux couches du moteur de filtre. Chaque shim se classe par rapport à une ou plusieurs couches. Par exemple, le shim du module de couche de transport se classe 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 traversent la pile réseau, les shims les analysent pour extraire les conditions et les valeurs classifiables, puis appellent 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 des paquets, des flux et des événements en fonction du résultat de la classification effectuée par le moteur de filtre.
Légendes
Une 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 l’analyse et la manipulation des paquets, comme l’analyse antivirus, l’analyse des contrôles parentaux 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 enregistrées dans n’importe quelle couche 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 fait passer le 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 cette 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 permettre à d’autres filtres de 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 nécessaire avant la création de filtres qui référencent la légende. Un appel à FwpsCalloutRegister est nécessaire pour que PAM puisse appeler la légende lorsque les filtres de légende sont mis en correspondance. Par défaut, les filtres qui font référence à des 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 de 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 un résultat « Permit » ou « Block » 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 d’arbitrage de filtre 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 :
- Permit
- Bloquer
- Légende
- Permit
- Bloquer
- Continuer
- Defer
- Besoin de plus de données
- 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, des filtres persistants sont ajoutés à la plateforme, des filtres au démarrage sont désactivés et des notifications sont envoyées aux pilotes de légende qui se sont abonnés à l’aide de FwpmBfeStateSubscribeChanges0. Les notifications sont distribuées immédiatement après l’initialisation BFE. La plateforme est maintenant prête pour l’inscription des légendes et l’ajout d’objets d’exécution.
La transition entre les filtres au démarrage et les filtres persistants peut durer plusieurs secondes, voire plus longtemps sur un ordinateur lent. Il est atomique. Par conséquent, si un fournisseur a à la fois un filtre au démarrage et 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, des 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 keying 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 au niveau d’une couche particulière.
- Pendant la classification, les filtres sont mis en correspondance et l’action résultante est effectuée. (Voir Arbitrage de filtre.)
- 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 sujets suivants décrivent plus en détail le fonctionnement du PAM.
Rubriques connexes