Vulnérabilité des serveurs FTP en mode passif

Date :29 Juin 2005

Publication: Article

Introduction :

Une vulnérabilité assez ancienne concernant l'utilisation des serveurs FTP en mode passif a fait l'objet récemment d'un avis Caldera. Cette vulnérabilité a été découverte pour la première fois en février 1999, c'est pourquoi le Cert-IST a décidé de ne pas émettre d'avis. Cependant cette dernière est déjà corrigée dans certains serveurs FTP (WuFtpd , RedHat, Caldera OpenUNIX et UnixWare).

Avec FTP, un canal de données (TCP port 20) est créé entre le serveur et le client à chaque transfert de données (par exemple au moment du "PUT" d'un fichier). En mode "actif" (mode par défaut de la plupart des serveurs), c'est le serveur qui crée ce canal. En mode "passif", c'est le client qui crée ce canal. Le mode passif est facilement sécurisable, car c'est toujours le client qui initialise les connexions.

Description du risque :

Lorsqu'un serveur FTP fonctionne en mode passif, un tiers peut se substituer au client FTP légitime, s'il ouvre la connexion "data" plus vite que le client légitime. Cette vulnérabilité peut

permettre à un attaquant d'envoyer des données corrompues au serveur FTP (détournement d'une opération "PUT") ou voler des données destinées à un client FTP particulier détournement d'une opération "GET").

Compléments d'information :

  • Pour exploiter cette vulnérabilité, l'attaquant doit intercepter ou deviner le numéro de port que le serveur va utiliser, et lancer sa connexion de données avant que le client ne le fasse.

  • L'attaquant n'a pas le choix de l'opération (GET ou PUT) qui est réalisée : il peut simplement remplacer les données envoyées ou reçues par le client FTP par ses propres données.

Ce problème est intrinsèque au protocole FTP. Il peut donc impacter n'importe quel serveur FTP.

Nota : Le même problème existe également dans le cas d'un FTP en mode actif. Dans ce cas, c'est le client FTP (plutôt que le serveur) qui est attaqué. Techniquement, l'attaque est ici plus difficile car on vise un utilisateur précis plutôt que le serveur FTP lui-même.

Solution :

Pour diminuer ce risque, les serveurs FTP peuvent :

1.    utiliser un numéro de port aléatoire pour la connexion "data" (cette mesure est sans effet néanmoins si l'attaquant peut écouter la session FTP entre le client et le serveur).

  1. et refuser les connexions "data" ne provenant pas de la même machine que le client FTP (cette mesure est sans effet si l'attaquant se trouve sur la même machine que le client légitime).

La liste ci-dessus indique les produits non vulnérables, selon la Note d'Incident du CERT/CC (Voir la référence ci-dessous) :

  • WuFtpd à partir de la version 2.5.0
  • RedHat à partir de RedHat 6.0
  • Caldera OpenUNIX 8.0.0 et UnixWare 7.1.1

Hormis pour WuFtpd (qui implémente les deux mesures de diminution de risque ci-dessus), les autres produits non vulnérables n'indiquent cependant pas clairement les mesures qui ont été prises pour pallier cette vulnérabilité.

Références :