Aller au contenu principal

Sécuriser les images de conteneurs

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'est root.
  • Ne mapper que les ports utiles.
  • N’utilisez pas privileged donnez juste les droits nécessaires avec les Capibilities.

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é.