> For the complete documentation index, see [llms.txt](https://blog.s1rn3tz.ovh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.s1rn3tz.ovh/pentest-conteneurs/docker/docker-misconfig-and-hardening.md).

# Docker Misconfig & Hardening

## Checklist

* [ ] Vérifier que la version de l'hôte et de Docker est à jour
* [ ] Vérifier si le mode privilégié est accepté (**--privileged**)
* [ ] Vérifier si les capabilities sont restreintes (**--cap-add**)
* [ ] Vérifier si les points de montages sensibles sont restreints (bind mount)
* [ ] Vérifier que les points de montages sont en lecture seule
* [ ] Vérifier si l'option **Enhanced Containers Isolation (ECI)** est activée
* [ ] Vérifier si la **connectivité inter-conteneurs (ICC)** est désactivée
  * [ ] Si non, vérifier que le réseau inter-conteneurs est sécurisé et correctement segmenté.
* [ ] Vérifier si l'API Docker Engine est exposée sans chiffrement et via les ports par défaut (2375, 2376)
* [ ] Vérifier que Docker utilise le mode "**rootless**"
  * [ ] Si non, vérifier qu'une politique force les utilisateur à créer un utilisateur non-root à l'exécution ou a la construction des conteneurs
* [ ] Vérifier qu'un module de sécurité Linux est utilisé (**seccomp**, **SELinux** ou **AppArmor**)
* [ ] Vérifier qu'une politique limite la quantité de ressources autorisée (CPU, Mémoire, redémarrages...)
* [ ] Vérifier qu'un outil de scan de vulnérabilités est en place dans la CI/CD
* [ ] Vérifier que les secrets Docker sont stockés de manière sécurisé (via **docker secret**)
* [ ] Vérifier que la source des images fait l'objet d'une **allowlist**
  * [ ] Si oui, vérifier également qu'il n'est pas possible de la contourner
    * [ ] Via déconnexion (connexion non forcée)
    * [ ] Via mirroring / proxy
* [ ] Vérifier que les images disponibles sont signées
* [ ] Vérifier que les images signées et leur SBOM sont stockés dans un registre sécurisé
* [ ] Vérifier qu'il existe une politique d'exécution qui valide les images avant déploiement et surveille les activités suspectes

## Outils

### Docker Bench Security

Docker Bench Security est un outil qui se base sur les points du CIS Docker Benchmark de manière automatisé.

Ressource: <https://github.com/docker/docker-bench-security>

### Malicious-docker

Malicious-docker est un docker simulant des actions malveillantes afin de tester la capacité de défense et de détection des mécanismes de sécurité dans un contexte conteneurisé.

Ressource: <https://github.com/medoix/malicious-docker>
