La sécurité des conteneurs Docker est souvent sous-estimée : on suppose que l'isolation est garantie par défaut. Ce lab de Docker Evasion démontre ce qu'un flag de configuration mal choisi peut permettre — jusqu'à la compromission totale de la machine hôte.


La brèche initiale : mouvement latéral

Tout commence dans un conteneur webapp. Après une phase de reconnaissance réseau via Nmap, une cible est identifiée sur le réseau interne. Le point d'entrée est une erreur humaine classique : des identifiants SSH laissés en clair dans un fichier de configuration (.bashrc) par un précédent administrateur.

Règle fondamentale : ne jamais stocker de secrets dans des scripts ou des historiques de commandes.


Le pivot : accès root dans le second conteneur

Grâce aux identifiants récupérés, un pivot SSH permet d'accéder au second conteneur. La commande id confirme : l'accès est root. Mais être root dans un conteneur ne signifie pas contrôler la machine physique — sauf si ce conteneur est configuré de façon dangereuse.


L'évasion : briser l'isolation Docker

Le second conteneur avait été lancé avec le flag --privileged. Ce paramètre désactive l'isolation du noyau et permet au conteneur de voir le matériel de l'hôte. En mode --privileged, fdisk -l révèle le disque principal de la machine physique. Il suffit alors de créer un point de montage et d'y monter ce disque — l'isolation Docker tombe complètement, donnant accès à l'intégralité du système de fichiers hôte.


Pour valider l'évasion, un fichier créé depuis le conteneur dans le répertoire personnel de l'hôte était bien présent sur la machine réelle après déconnexion. L'évasion était confirmée.


Ce qu'il faut retenir

La sécurité d'un conteneur dépend entièrement de sa configuration. Trois principes à retenir :

  • Bannir le flag --privileged : utiliser des capacités Linux spécifiques (--cap-add) uniquement si nécessaire.

  • Utiliser des utilisateurs non-root : un processus limité n'aurait pas pu monter le disque de l'hôte.

  • Ne jamais stocker de secrets dans des fichiers de config ou des historiques : ils sont les premières cibles d'une reconnaissance interne.

Docker est un outil remarquable, mais sans isolation rigoureuse la "boîte" devient une porte ouverte sur l'infrastructure entière.

*Résumé NoteBookLM