Les dangers du tag "established" dans les listes de contrôle d'accès (ACL) CISCO

Date : 23 Juin 2005

Sur les gardes-barrières (ou routeurs filtrant) de type "packet filtering firewall" (à la différence des gardes barrière "statefull" où il existe une notion de contexte de connexion), il est classique de dire que l'on laisse passer tous les paquets TCP entrants ayant le bit "ACK" ("acquittement de paquets") positionné, afin d'autoriser les flux de retour pour les connexions TCP sortantes. Sur un routeur CISCO, la règle précédente est généralement traduite par l'utilisation du mot clé "established" dans les listes de contrôle d'accès ("Access Control List"), par exemple "permit tcp any any established".

D'après des recherches récentes, il a été montré que l'emploi du mot clé "established" peut permettre un contournement de la politique sécurité mise en place sur un garde barrière/routeur filtrant CISCO. En effet, sur ce type d'équipement, le mot clé "established" signifie que le bit "ACK" ou le bit "RST" ("Reset" – Fermeture de la connexion) est positionné dans le paquet TCP.

Ainsi, avec l'utilisation du mot clé "established" dans les ACL, si un paquet TCP se présente avec le bit "SYN + RST" positionné, ce dernier est interprété par le routeur CISCO comme un paquet "RST" et il le laisse passer. Pour une machine Linux interne, ce paquet TCP sera par contre interprété comme un paquet "SYN", c'est à dire comme une ouverture de connexion TCP.

Le danger vient donc du fait que face à des paquets non légitimes et non logiques (la combinaison "SYN + RST" n'a pas de sens dans le protocole TCP), la pile TCP va se comporter de manière différente sur un routeur CISCO et sur une machine Linux.

Le problème mis en évidence ici (2 équipements interprètent différemment un paquet TCP hors norme) n'est pas limité au cas "CISCO/Linux". Mais seul ce cas a réellement été identifié comme dangereux. Par exemple, les tests effectués sur des plates-formes de type Sun Solaris ou Microsoft se sont avérés être négatifs.

Dans le cas où vous seriez concerné par ce type d'architecture, il vous est vivement conseillé de :

  • tester votre équipement CISCO afin de valider s'il rejette ou non ce type de paquet TCP en entrée,
  • utiliser les ACL réflexives,
  • remplacer les règles utilisant le mot clé "established" par des règles réflexives ou des règles utilisant explicitement le tag "ACK" (par exemple "permit tcp any any ack").

Les différentes distributions de Linux ont été informées de cette vulnérabilité. Le Cert-IST vous tiendra informé si des mises à jours relatives à cette vulnérabilité sont publiées.

Pour plus d'information

Précedent Précedent Suivant Suivant Imprimer Imprimer