FTP (File Transfert Protocol, en écoute par défaut sur les ports 20 et 21) est le service utilisé pour assurer le transfert de fichiers. Il y a deux types de serveurs FTP : les serveurs FTP avec authentification par mots de passe et les serveurs anonymes. Pour les premiers, le client désirant se connecter devra fournir un login accompagné d'un mot de passe pour authentification. Dans le cas du serveur FTP anonyme, tout le monde peut s'y connecter librement.
Le premier défaut du protocole FTP est de ne pas chiffrer les mots de passe lors de leur transit sur le réseau. Les mots de passe associés aux logins circulent en clair à la merci des sniffers.
Voici l'exemple d'une interception par un sniffer d'une authentification FTP :
Le logiciel utilisé est tcpdump.
22 :10 :39.528557 192.168.1.3.1027 ¿ 192.168.1.4.ftp : P 1 :12(11) ack 47 win 5840 ¡nop,nop,timestamp 441749 100314¿ (DF) [tos 0x10] 0x0000 4510 003f 88d6 4000 4006 2e7b c0a8 0103 E.. ?..@.@....... 0x0010 c0a8 0104 0403 0015 e351 3262 8d6a dd80 .........Q2b.j.. 0x0020 8018 16d0 68da 0000 0101 080a 0006 bd95 ....h........... 0x0030 0001 87da 5553 4552 2061 6c65 780d 0a00 ....0,1,0USER.alex... 22 :10 :57.746008 192.168.1.3.1027 ¿ 192.168.1.4.ftp : P 12 :23(11) ack 80 win 5840 ¡nop,nop,timestamp 443571 101048¿ (DF) [tos 0x10] 0x0000 4510 003f 88d8 4000 4006 2e79 c0a8 0103 E.. ?..@.@..y.... 0x0010 c0a8 0104 0403 0015 e351 326d 8d6a dda1 .........Q2m.j.. 0x0020 8018 16d0 5ba1 0000 0101 080a 0006 c4b3 ....[........... 0x0030 0001 8ab8 5041 5353 2074 6f74 6f0d 0a00 ....0,1,0PASS.toto...
On peut voir facilement que l'utilisateur alex
a le mot de passe toto
.
Le serveur FTP anonyme pose de plus gros problèmes. Le premier est qu'une mauvaise gestion des droits d'accès peut s'avérer être une erreur fatale. Laisser trop de répertoires en droit d'écriture et/ou d'exécution est plus que dangereux pour la sûreté du système. Le pirate pourrait y installer ou y exécuter des codes malveillants lui permettant d'accroître son pouvoir sur la machine.
Les serveurs FTP anonymes peuvent être sujets à des attaques par rebonds. Ces attaques consistent à utiliser un serveur FTP anonyme comme relais pour se connecter à d'autres serveurs FTP. Imaginons qu'un pirate se voit refuser l'accès par un serveur FTP dont l'accès est alloué à seulement un certain groupe d'adresses IP. Imaginons que le pirate ne fait pas partie de ce groupe, mais qu'un serveur FTP anonyme y appartienne. Le pirate peut très bien se connecter sur le serveur FTP anonyme, utiliser les commandes assurant la connexion sur le serveur FTP protégé et y récupérer des fichiers.
Installez un serveur FTP anonyme seulement en cas d'absolue nécessité. Si vous devez le faire, limitez au maximum les droits sur les différents répertoires et fichiers laissés au public.
Pour vous protéger des attaques par sniffer, je vous recommande d'utiliser SFTP (Secure FTP) pour vos transactions FTP. SFTP chiffrera les échanges et les protégera ainsi des écoutes indiscrètes. Vous pouvez aussi utiliser des tunnels comme IPSec pour protéger vos connexions (voir Section 4.4, « Le tunneling »).
Filtrez les accès (via un firewall) en allouant seulement l'accès à un certain groupe d'adresses IP (en évitant d'inclure des serveurs anonymes permettant de servir de relais).