Filtrage avec état ALE
Les filtres installés dans les couches ALE (Application Layer Enforcement) de la plateforme de filtrage de Windows (PAM) effectuent un filtrage réseau avec état. Un flux ALE est utilisé comme base pour le filtrage avec état ALE.
Un flux ALE est un moyen de classifier le trafic réseau en le regroupant en fonction d’une adresse IP source, d’une adresse IP de destination, d’un port source, d’un port de destination et d’un protocole. Un flux ALE peut être générique, c’est-à-dire un ou plusieurs de ces descripteurs peuvent correspondre à tout (ou caractère générique *). Par exemple, un flux UDP ALE générique est décrit en tant qu’adresse IP source = *, adresse IP de destination = *, port source = *, port de destination = *, protocole = UDP.
Une fois qu’une connexion est autorisée (les connexions entrantes sont autorisées au niveau de la couche FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} et des connexions sortantes au niveau de la couche FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} ), un flux ALE est créé de façon à ce qu’une modification de stratégie, tous les paquets, les paquets entrants et sortants, qui appartiennent au même flux ALE soient autorisés automatiquement. Étant donné qu’une modification de stratégie peut nécessiter le blocage des connexions précédemment autorisées, les flux ALE doivent être reautorisé lorsqu’une modification de stratégie se produit.
Le filtrage avec état ALE réduit considérablement le nombre de classifications requises en classant uniquement le premier paquet qui appartient à un flux ALE. Par comparaison, le filtrage non avec état nécessite la classification de chaque paquet qui traverse le réseau.
Un flux ALE a une direction associée, qui est la direction du premier paquet du flux. Cela permet d’obtenir des stratégies plus flexibles, en autorisant les connexions initiées par le trafic entrant à disposer de stratégies différentes des connexions lancées par le trafic sortant.
FLOW TCP ALE
Un flux ALE pour le trafic TCP est identifié par le cinq tuple de TCP/IP (adresse IP source, adresse IP de destination, port source, port de destination et protocole).
Un flux TCP ALE a la même durée de vie qu’un socket TCP connecté. Un socket TCP connecté peut être un socket créé à l’aide de connect() ou d’un socket créé à la suite d’un appel accept().
ALE gère une relation un-à-un entre un flux TCP ALE et un bloc de contrôle TCP (TCB).
FLOW UDP ALE
Notes
Les protocoles qui ne sont pas TCP ou ICMP sont traités comme UDP.
Un flux ALE pour le trafic UDP est identifié par le cinq tuple de TCP/IP (adresse IP source, adresse IP de destination, port source, port de destination et protocole).
Un flux UDP ALE est créé en fonction d’un socket UDP et représente l’homologue distant avec lequel l’application communique. Un homologue distant est identifié par un tuple (adresse IP de destination et port de destination).
Il existe une relation un-à-plusieurs entre un socket UDP et les pairs distants auxquels il parle.
Lorsque le socket UDP local est fermé, tous les flux ALE associés à celui-ci sont supprimés.
En l’absence de fermetures de socket, les flux UDP unicast ALE ont un délai d’inactivité configurable qui est défini par défaut sur 60 secondes. Si aucun paquet n’est envoyé ou reçu dans cette fenêtre, le flux ALE est supprimé. Ce délai d’expiration par défaut est progressivement raccourci lorsque le nombre de flux ALE atteint un certain seuil.
FLOW ICMP ALE
Un flux ALE pour le trafic ICMP est identifié par le six tuple (adresse IP source, adresse IP de destination, type ICMP, code ICMP, protocole et ID ICMP). L’ID ICMP fait partie du flux ALE uniquement pour le trafic d’écho/réponse ICMP.
En l’absence de fermetures de socket, les flux UNIcast ALE ICMP ont un délai d’inactivité configurable qui par défaut est de 60 secondes. Si aucun paquet n’est envoyé ou reçu dans cette fenêtre, le flux ALE est supprimé. Ce délai d’expiration par défaut est progressivement raccourci lorsque le nombre de flux ALE atteint un certain seuil.
Seuls les messages d’erreur ICMP sont indiqués aux couches ALE. Les messages d’erreur ICMP peuvent être inspectés à ICMP_ERROR couches.
Rubriques connexes