Évasion de conteneur Kubernetes vers pivot cloud : détecter au runtime
Google observe des clusters attaqués en 18 minutes et des évasions via pods privilégiés. Voici la détection Falco au runtime et les garde-fous OPA à l'admission.
Le rapport Threat Horizons H1 2026 de Google Cloud, treizième du nom, apporte un chiffre qui recadre la question du temps de réaction : un nouveau cluster Kubernetes reçoit sa première tentative d'attaque dans les dix-huit minutes suivant son déploiement. Le rapport, publié le 11 mars 2026 et couvrant le second semestre 2025, documente aussi un basculement de fond : les vulnérabilités logicielles exploitées représentent désormais 44,5 pour cent des intrusions cloud, dépassant pour la première fois le vol d'identifiants comme vecteur d'accès initial.
Au delà de la vitesse, c'est le schéma d'attaque qui doit retenir l'attention des équipes qui exploitent des conteneurs. Google décrit une intrusion où l'attaquant, après avoir abusé du plan de contrôle et détourné un compte de contrôleur applicatif à privilèges élevés, s'est appuyé sur la configuration privilégiée d'un pod pour s'échapper de l'environnement conteneurisé. L'analyse forensique suggère que cette évasion a été obtenue en abusant des privilèges d'administrateur de cluster pour sonder les services au niveau du noeud, plutôt qu'en exécutant un exploit du noyau. De là, l'acteur a mené sa reconnaissance avant de pivoter vers une charge de travail gérant des informations clients, où il a trouvé et extrait des identifiants de base de données stockés en clair dans les variables d'environnement du pod.
Le schéma à détecter : de l'évasion au pivot cloud
La chaîne comporte plusieurs étapes qui correspondent chacune à une technique observable. Le déploiement ou le détournement d'un conteneur privilégié relève de T1610 (Deploy Container). L'évasion du conteneur vers l'hôte est T1611 (Escape to Host). Une fois sur l'hôte ou dans un pod à privilèges, l'attaquant interroge le service de métadonnées de l'instance cloud, T1552.005, et vole les jetons d'accès applicatifs, T1528, qui lui ouvrent le reste de l'environnement cloud.
Les vecteurs d'entrée sont connus et récurrents : une API Docker ou Kubernetes exposée sans authentification, un socket docker.sock monté dans un conteneur, des capacités Linux excessives accordées au pod, ou une image tirée d'un registre public empoisonnée. Le point commun est qu'aucun de ces vecteurs ne se détecte au moment de l'installation ou du scan d'image seul : ils se manifestent au runtime, par un comportement anormal du conteneur.
La détection au runtime avec Falco
Falco et Tetragon observent les appels système et les événements du noyau en temps réel, ce qui en fait l'outil adapté pour repérer une évasion en cours. Trois comportements méritent une règle : l'accès à docker.sock depuis un conteneur, le lancement d'un processus dans un conteneur privilégié, et l'écriture ou la lecture sur des chemins de l'hôte montés en hostPath.
Voici une règle Falco ciblant l'accès au socket Docker depuis un conteneur, un signal fort d'une tentative de contrôle de l'hôte :
- rule: Acces socket Docker depuis un conteneur
desc: >
Un processus dans un conteneur ouvre le socket Docker, ce qui permet
de creer des conteneurs privilegies et de s echapper vers l hote.
condition: >
evt.type in (open, openat) and
container.id != host and
fd.name endswith "docker.sock" and
not proc.name in (dockerd, containerd)
output: >
Acces au socket Docker depuis un conteneur
(commande=%proc.cmdline conteneur=%container.name image=%container.image.repository)
priority: CRITICAL
tags: [container, escape, T1611]Une deuxième règle utile surveille le lancement d'un shell ou d'un outil de reconnaissance dans un conteneur marqué privilégié, souvent le prélude immédiat à l'évasion. Sur les hôtes cloud, ajoutez enfin une règle sur les connexions sortantes vers l'adresse du service de métadonnées de l'instance depuis un conteneur applicatif, qui n'a normalement aucune raison d'interroger cette adresse.
Le garde-fou à l'admission avec OPA
La détection au runtime attrape ce qui se passe. La politique à l'admission empêche que cela puisse arriver. OPA, via Gatekeeper, permet de refuser à l'admission tout pod demandant une configuration à risque : mode privilégié, montage de docker.sock, capacités dangereuses, ou hostPath vers des répertoires sensibles. Voici l'esprit d'une politique Rego rejetant les pods privilégiés :
package kubernetes.admission
deny[msg] {
input.request.kind.kind == "Pod"
c := input.request.object.spec.containers[_]
c.securityContext.privileged == true
msg := sprintf("Conteneur privilegie interdit: %v", [c.name])
}
deny[msg] {
input.request.kind.kind == "Pod"
v := input.request.object.spec.volumes[_]
endswith(v.hostPath.path, "docker.sock")
msg := "Montage de docker.sock interdit"
}Cette combinaison, prévention à l'admission plus détection au runtime, est la posture recommandée. La politique OPA réduit la surface en amont, en refusant les configurations qui rendent l'évasion possible. Falco couvre le reste, en signalant les comportements anormaux sur ce qui a tout de même été déployé.
Ce que la fenêtre de dix-huit minutes impose
Le chiffre de Google a une conséquence directe : une détection qui remonte une alerte plusieurs heures après l'événement arrive trop tard. La surveillance au runtime doit être active dès le premier déploiement, pas ajoutée après coup. De même, les identifiants de base de données dans les variables d'environnement d'un pod, cause directe du pivot décrit par Google, doivent être remplacés par des secrets gérés et à durée de vie courte. Un conteneur compromis ne doit jamais trouver de clé cloud durable à portée de main.
Sécuriser un environnement Kubernetes contre l'évasion et le pivot demande cette double couche, admission et runtime, alimentée par des règles à jour. C'est ce que fournit le feed cloud-native ThreatClaw : des règles Falco et des politiques OPA prêtes à déployer, construites sur les techniques d'évasion et de pivot réellement observées, pour tenir le rythme imposé par des attaquants qui frappent en minutes.
Articles liés
Le policy as code OPA Rego Kubernetes permet de refuser un pod privilégié avant qu'il ne démarre. OPA/Rego vs Kyverno, exemples, tests, et preuve NIS2/DORA.
Le scan d'image ne voit rien de ce qui se passe à l'exécution. Guide sur la sécurité runtime conteneurs eBPF avec Falco et Tetragon : règles, exemples et pièges à éviter.
Nous avons détoné un échantillon Phobos vivant. Voici ce qu'il fait, suppression des clichés instantanés, coupure du pare-feu, et la règle Sigma qui l'attrape, validée sur plusieurs échantillons, zéro faux positif.
Un faux guide d'installation de Claude via Google Ads diffuse MacSync, un voleur de données macOS. Découvrez les techniques MITRE ATT&CK et comment s'en protéger.