Sécuriser les images de conteneurs
Création :
De plus en plus utilisés, car ils nous facilitent la tâche, les conteneurs peuvent contenir des failles de sécurité ou ne pas respecter les bonnes pratiques. Je ne parle même pas de lancer un conteneur sans en connaître le contenu. Pourquoi ?
Par défaut, Docker nécessite
des privilèges root
pour créer et gérer des conteneurs. Et oui ! Ainsi des
scripts malveillants peuvent exploiter cette surface d’attaque. Il peut
facilement accéder à des données sensibles comme des fichiers de mots de passe,
des certificats, ou même installer, je ne sais quoi. Une solution simple à
mettre en œuvre : migrer vers
podman qui lui est
rootless.
Quelques bonnes pratiques
Je vous déconseille aussi d’utiliser des images en provenance des registres publics, mais de plutôt les créer vous-même en respectant ces règles :
- Créer un user et l’utiliser. En effet, le
USER
par défaut, c’estroot
. - Ne mapper que les ports utiles.
- N’utilisez pas
privileged
donnez juste les droits nécessaires avec lesCapibilities
.
Mais aussi je vous conseille :
- D’interdire les communications entre containers (autorisées par défaut)
- De ne pas y stocker des secrets, mais plutôt les monter via des volumes avec buildkit.
- D’utiliser des outils d’analyse d’images
Pour Docker, plus d’infos sur ce billet consacré à la sécurisation de Docker
Quels outils d’analyse des images de conteneurs ?
Il existe des outils spécialisés dans la recherche de mauvaises pratiques et de vulnérabilités. Parmi les plus célèbres, on retrouve :
Analyser le code de vos Dockerfiles
Très peu connu, hadolint va vous permettre de développer des Dockerfiles de qualité.