Pot de miel
Voyant depuis quelques années, dans les logs de mon serveur ftp, des tentatives malicieuses pour y accéder (des centaines de tentatives de mots de passe, avec des utilisateurs différents), je me suis dit que j’allais faire plaisir à ces petits piratins, pour voir ce qu’ils allaient faire, et donc faire un pot de miel.
Parce que la dernière fois que j’ai vu un serveur ftp se faire pirater, ledit serveur s’est fait remplir de musique, et c’est à cette occasion que j’ai découvert Dzihan et Kamien, tout de même.
Buts
Un pot de miel est destiné à observer ce que fait un pirate, mais dans mon cas juste à récupérer ce que le pirate va déposer sur mon serveur.
Le problème du pot de miel est qu’il ne faut pas que le pirate s’en échappe, et il ne faut pas qu’il nuise (à moi où aux autres). En d’autres termes :
- il me faut un serveur ftp assez sécurisé pour pas que le pirate l’explose et prenne possession de ma machine,
- il faut que si le serveur ftp est piraté, ça ne sature pas mes disques durs,
- il ne faut que le serveur ftp serve de vraie plateforme de téléchargement, histoire de ne pas saturer ma bande passante, d’une part, et d’autre part pour ne pas aider les pirates
Pour résumer : un pot de miel solide et collant.
Moyens
Pour serveur ftp : proftpd. Je le maîtrise bien, il est mis à jour régulièrement et il est facilement et finement paramétrable.
Comme répertoire dans lequel pointer, j’ai pris une partition de 2Gio qui n’était pas utilisée. Ainsi, si un petit malin atterrit dans le pot de miel, il ne pourra pas uploader plus que la taille de la partition.
C’est parti
Le pot
Chez moi, proftpd est connecté à un annuaire ldap, en ce qui concerne les utilisateurs. Un extrait de mon /etc/proftpd/proftpd.conf :
LdapDoAuth on "dc=chez.moi" "(&(uid=%v)(userclass=ftp))" # Fait d'abord une recherche voir si l'uid existe, puis se bind avec le dn renvoye. LDAPGenerateHomedirPrefixNoUsername on LDAPAuthBinds on LDAPDNInfo "" "" LdapServer myldapserver # Par defaut: atteri ici, a moins que l'attribut homeDir ne soit spécifié dans le ldap LDAPGenerateHomedir on LDAPGenerateHomedirPrefix /tmp RequireValidShell off LdapDefaultUid 21 |
En quelques mots :
- Recherche de l’utilisateur dont l’uid est le nom de l’utilisateur fournit par le client ftp, et il faut que cet utilisateur ait l’attribut userClass à ftp (pour empêcher n’importe quelle personne de mon annuaire de se connecter ; ça s’appelle du contrôle d’accès
) - Si l’utilisateur a, dans l’annuaire ldap, l’attribut homeDir, le prendre comme répertoire dans lequel atterrir, sinon atterrir dans /tmp
- L’utilisateur n’a pas besoin d’avoir un shell valide
- Id de l’utilisateur par défaut (21, ce qui correspond à l’utilisateur ‘ftp’)
Rien de fascinant, en fait.
L’idée, à ce stade, est de faire un utilisateur pour lequel il est facile de trouver le mot de passe. J’ai choisi Administrator, mot de passe : admin. Classique classique classique … Et la configuration par ldap me permet de faire que plusieurs utilisateurs aient le même mot de passe. J’ai donc créé aussi l’utilisateur admin.
Cet utilisateur a comme répertoire /var/honeyPot, configuré dans ldap. Répertoire dans lequel est montée la partition de 2Gio. Une fois connecté avec l’utilisateur Administrator, le piratin devrait donc atterrir dans ce répertoire, et ne pas pouvoir uploader plus de 2Gio.
Par ailleurs, si lors de vos tests ça ne fonctionne pas, vérifiez les droits dans le répertoire de destination.
Par exemple chez moi, un
chmod 755 /var/honeyPot ; chown UtilisateurParDéfautDeProftp:nobody /var/honeyPot |
a résolu mes problèmes.
Le miel qui colle
Maintenant, il faut que l’utilisateur qui se connecte puisse écrire dans le répertoire, y créer des répertoires et des fichiers, mais PAS les récupérer (et les effacer, tant qu’on y est).
<Directory /var/honeyPot> <Limit WRITE> AllowAll </Limit> # Mouarf arf arf ... <Limit RETR DELE> DenyAll </Limit> </Directory> |
La ruse est là : Limit RETR DELE : ça défini les droits pour les actions ftp RETR et DELE, ce qui correspond à récupérer des fichiers et les effacer.
Et voilà, le pot de miel est prêt : un piratin de passage devine facilement le mot de passe d’Administrator, peut lire le répertoire (tout de même), y déposer des fichiers, mais pas les récupérer ou les effacer
Plus qu’à attendre.
PS: si vous voulez jouer, le ftp est ici : ftp://www.korsani.fr
PPS: entre temps j’ai fait en sorte que l’on puisse se connecter en anonyme, histoire d’atterrir encore plus facilement dans le pot de miel. Référez-vous à la doc de proftpd pour savoir comment faire.
Suivre les commetaires avec le flux RSS 2.0. Vous pouvez laisser un comentaire, or trackback depuis votre site.