Serveurs FTP et gardes-barrières

Date :28 Juin 2005

Publication: Article

Aujourd'hui, la plupart des gardes-barrières utilisent la technique de "StateFull Inspection" afin de gérer les connexions IP. Cette technique permet en effet la gestion de manière "transparente" des retours de connexions. Par exemple, si dans les règles du gardes-barrières, on autorise les utilisateurs du réseau local de surfer sur Internet via le protocole HTTP, les réponses aux connexions HTTP seront automatiquement acceptées (par rapport à une table d'états). Elle permet parfois une analyse au niveau applicatif notamment pour gérer le protocole FTP et son mode passif.

Cette technique peut être cependant détournée pour initier des connexions "interdites" sur des ports d'un serveur FTP protégé par un garde-barrière.

En effet, un attaquant distant peut utiliser le mode passif (PASV) d'un serveur FTP protégé par un garde-barrière pour initier une connexion vers des ports quelconques du serveur grâce à la "souplesse" de la technique "Statefull Inspection".

Explications

L'attaquant décide de se connecter sur le port 5000 du serveur FTP (192.168.0.10) protégé par un garde-barrière utilisant la technique de Statefull Inspection" :

Attaquant : Initialisation d'une connexion FTP (anonyme) classique sur le serveur FTP à travers le garde-barrière

Attaquant : Envoi de une requête "RETR 227 Connect to me at (192,168,0,10,19,136)\r\n"

Serveur FTP : Envoi de la réponse d'erreur "5xx No such file: 227 Connect to me at (192.168.0.10)\r\n"

Attaquant : Envoi d'un paquet d'acquittement (TCP ACK) sur les premiers octets de la réponse du serveur FTP (tous ceux avant "227 Connect ..." au niveau applicatif)

Serveur FTP : Renvoi des octets manquants : "227 Connect to me at (192,168,0,10,19,136)\r\n" (au niveau applicatif)

A partir de ce moment le garde-barrière interprète cette réponse du serveur FTP comme valide et il ouvre un canal du "client" FTP malicieux vers l'adresse 192.168.0.10 sur le port 5000.

Cette technique peut être également utilisée pour initier une connexion sur un port quelconque d'un client FTP actif (via la commande PORT) situé derrière ce même type de garde-barrière.

Cependant à ce jour, seuls les produits suivants sont vulnérables :

  • Proxy FTP d'IP Filter (IPFilter est un outil de filtrage livré en standard sur FreeBSD, OpenBSD et NetBSD)
  • NetBSD
  • WatchGuard

Pour plus d'information

Note du CERT/CC #328867 : http://www.kb.cert.org/vuls/id/328867