Docker Security Hardening (Durcissement de la sécurité Docker)
cloudDéfinition
Le durcissement de Docker vise à minimiser la surface d'attaque des conteneurs et du daemon Docker lui-même. Les bonnes pratiques fondamentales incluent l'utilisation d'images de base minimales (Alpine, Distroless) régulièrement mises à jour, l'exécution des processus avec des utilisateurs non-root via l'instruction USER dans le Dockerfile, la restriction des capabilities Linux avec --cap-drop ALL et ajout sélectif des seules capabilities nécessaires, et la mise en place de profils seccomp et AppArmor pour limiter les appels système autorisés. Le daemon Docker doit être configuré sans socket exposé sur le réseau, avec TLS mutuel si accès distant nécessaire, et le mode rootless activé quand possible. Les images doivent être scannées avant déploiement avec des outils comme Trivy, Grype ou Snyk Container pour détecter les CVEs dans les dépendances. Docker Bench for Security automatise l'audit de conformité selon le CIS Docker Benchmark. La séparation des secrets du code source via les Docker secrets ou les variables d'environnement injectées à l'exécution est également essentielle.
Description
Le durcissement Docker vise à minimiser la surface d'attaque des conteneurs et du daemon Docker, en appliquant le principe du moindre privilège à chaque couche : image de base, configuration du Dockerfile, paramètres d'exécution et configuration du daemon. Docker Bench for Security automatise l'audit selon le CIS Docker Benchmark.
Contexte cloud
Sur AWS ECS, les task definitions doivent définir des limites de ressources (CPU/mémoire), désactiver les capabilities inutiles et utiliser des roles IAM task-level plutôt que des credentials en variables d'environnement. Sur EKS, les Security Contexts Kubernetes et les Pod Security Standards (Restricted) complètent le durcissement Docker.
Points clés
- Dockerfile sécurisé :
FROM gcr.io/distroless/python3-debian12+USER 65534:65534+RUN --mount=type=secret,id=npmrc npm install --prefix /appsans secrets dans les layers - Runtime :
docker run --security-opt no-new-privileges --cap-drop ALL --cap-add NET_BIND_SERVICE --read-only --tmpfs /tmp IMAGE - Scan Trivy :
trivy image --severity HIGH,CRITICAL --exit-code 1 IMAGE:TAGdans le pipeline CI/CD pour bloquer les images vulnérables
Besoin d'un expert sur ce sujet ?
Audit, pentest, conformité ISO 27001, développement IA sécurisé — demandez un devis gratuit.
Demander un devis