Container Escape (Évasion de conteneur)
cloudDéfinition
Une évasion de conteneur désigne une technique par laquelle un processus malveillant s'exécutant à l'intérieur d'un conteneur Docker ou Kubernetes parvient à sortir de son isolation pour accéder au système d'exploitation hôte. L'isolation des conteneurs repose sur les namespaces Linux et les cgroups, mais ne constitue pas une frontière de sécurité aussi forte qu'une machine virtuelle. Les vecteurs d'évasion courants incluent : les conteneurs lancés en mode privilégié (--privileged), le montage du socket Docker (/var/run/docker.sock), l'exploitation de vulnérabilités du kernel Linux, l'abus de capabilities Linux non nécessaires, ou des failles dans le runtime de conteneur (runc CVE-2019-5736, runc breakout). Des outils comme CDK (Container Duck Kit) ou amicontained évaluent la sécurité d'un environnement conteneur. La défense passe par le principe du moindre privilège, l'utilisation de runtimes isolants comme gVisor ou Kata Containers, les security contexts Kubernetes restrictifs, et les politiques OPA/Gatekeeper.
Description
L'évasion de conteneur (container escape) est une technique par laquelle un processus malveillant s'exécutant dans un conteneur Docker ou Kubernetes perce l'isolation pour accéder au système d'exploitation hôte. L'isolation conteneur repose sur les namespaces Linux et cgroups, moins hermétiques qu'une VM complète.
Contexte cloud
Dans les environnements cloud EKS/AKS/GKE, une évasion de conteneur peut compromettre un nœud worker et accéder aux credentials IMDS (Instance Metadata Service) de l'instance EC2/VM, permettant l'escalade vers des permissions IAM cloud. Les CVE critiques runc (CVE-2019-5736) et containerd (CVE-2022-23648) illustrent la réalité de ces risques.
Points clés
- Prévention :
securityContext: runAsNonRoot: true, allowPrivilegeEscalation: false, capabilities: drop: [ALL]dans les manifests Kubernetes - Détection Falco : règle
spawned_process_in_container where container.name!=host and proc.name in (nsenter, docker, kubectl)pour détecter les outils d'évasion - Runtimes isolés : gVisor (
runtimeClassName: gvisor) ou Kata Containers pour les workloads non-trusted nécessitant une isolation renforcée
Besoin d'un expert sur ce sujet ?
Audit, pentest, conformité ISO 27001, développement IA sécurisé — demandez un devis gratuit.
Demander un devis