← Retour aux articles

Paper Files / Containers

Sécurité opérationnelle des conteneurs en 2025 : modélisation des menaces, exploitation réelle et stratégies défensives pour Docker et Kubernetes

ContainersFR

La conteneurisation est devenue une primitive fondamentale de l’infrastructure moderne, notamment dans les architectures cloud-native orchestrées par Kubernetes. En 2025, plus de 80 % des charges de travail cloud reposent sur des conteneurs ou des technologies dérivées, ce qui en fait une surface d’attaque majeure pour les opérations offensives et défensives en cybersécurité. Malgré l’isolation offerte par les espaces de noms Linux (namespaces) et les groupes de contrôle (cgroups), les conteneurs ne constituent pas une frontière de sécurité absolue. De nombreuses vulnérabilités critiques — telles que CVE‑2019‑5736 dans `runc` ou CVE‑2024‑21626 — ont démontré la possibilité d’évasion de conteneur vers l’hôte. Par ailleurs, les erreurs de configuration dans Kubernetes, les registres d’images compromis et les chaînes CI/CD mal sécurisées constituent des vecteurs d’attaque fréquents observés dans les incidents réels. Cet article présente une analyse opérationnelle approfondie de la sécurité des conteneurs en 2025. Nous proposons un modèle formel de menace couvrant l’ensemble du cycle de vie des conteneurs, depuis la construction d’images jusqu’à l’exécution orchestrée. Nous examinons les primitives d’isolation du noyau Linux, les mécanismes de sécurité Kubernetes et les technologies émergentes telles que l’observabilité basée sur eBPF et les environnements d’exécution renforcés comme gVisor et Kata Containers. L’étude introduit également une méthodologie de défense multicouche intégrant l’analyse statique d’images, la détection comportementale en temps réel et l’application de politiques Zero Trust au niveau du cluster. Afin d’évaluer l’efficacité des contrôles proposés, nous menons une expérimentation sur un environnement Kubernetes instrumenté avec Falco, Trivy et des contrôles de politique basés sur OPA/Gatekeeper. Les résultats montrent qu’une combinaison de contrôles au niveau image, runtime et orchestration réduit significativement la probabilité d’évasion de conteneur et de mouvement latéral. Un cas d’étude basé sur une attaque réaliste contre un cluster Kubernetes mal configuré illustre les techniques d’exploitation utilisées par les attaquants et les mécanismes permettant leur détection. Cette recherche vise à fournir un cadre opérationnel pour les équipes de sécurité et de red teaming confrontées à la sécurisation d’infrastructures conteneurisées à grande échelle.

  1. Introduction

La conteneurisation s’est imposée comme un pilier de l’informatique moderne. Introduite initialement comme une évolution des mécanismes d’isolation du noyau Linux, elle a été popularisée par Docker à partir de 2013, puis industrialisée à grande échelle par Kubernetes. En 2025, la majorité des infrastructures cloud-native reposent sur des environnements orchestrés contenant des milliers de conteneurs exécutés dynamiquement sur des clusters distribués.

Contrairement aux machines virtuelles traditionnelles, les conteneurs partagent le noyau du système hôte. Cette caractéristique confère une efficacité remarquable en termes de performance et de densité, mais introduit également un modèle de sécurité plus fragile. L’isolation repose principalement sur plusieurs primitives du noyau Linux :

Bien que ces mécanismes offrent une isolation raisonnable, ils ne constituent pas une barrière de sécurité équivalente à celle d’un hyperviseur. Plusieurs incidents ont démontré que des vulnérabilités dans l’environnement d’exécution pouvaient permettre une évasion de conteneur. L’exemple le plus célèbre reste CVE‑2019‑5736, une vulnérabilité critique dans runc permettant l’écrasement du binaire de runtime depuis un conteneur compromis (OPEN CONTAINER INITIATIVE, 2019).

Avec l’adoption massive de Kubernetes, la surface d’attaque s’est considérablement étendue. Les clusters modernes comprennent :

Chaque composant introduit de nouvelles possibilités d’exploitation. Des études empiriques montrent que les erreurs de configuration Kubernetes représentent une cause majeure d’intrusions (RED HAT, 2023).

Par ailleurs, l’écosystème des conteneurs évolue rapidement avec l’intégration de technologies telles que :

Dans ce contexte, comprendre les techniques d’attaque et les stratégies de défense devient essentiel pour les équipes de sécurité.

Cet article propose une analyse approfondie et opérationnelle de la sécurité des conteneurs. Nous examinons les mécanismes internes des runtimes, les vulnérabilités historiques, les modèles d’attaque et les méthodes de détection avancées. L’objectif est de fournir une vision pragmatique applicable aux environnements de production.


  1. Background and Related Work

La sécurité des conteneurs repose principalement sur les mécanismes d’isolation du noyau Linux. Ces mécanismes ont été introduits progressivement entre 2002 et 2010, bien avant l’apparition de Docker.

Namespaces Linux

Les namespaces isolent différentes ressources système :

Namespace Ressource isolée Impact sécurité
PID Processus Empêche la visibilité inter‑conteneurs
NET Interfaces réseau Segmentation réseau
MNT Systèmes de fichiers Isolation du filesystem
USER UID/GID Mapping des privilèges
IPC Mémoire partagée Isolation interprocessus

L’isolation peut être représentée par un graphe d’accès :

$$ Access_{process} = f(namespace_{PID}, namespace_{NET}, namespace_{MNT}) $$

Plus la combinaison de namespaces est restrictive, plus la surface d’attaque diminue.

Cgroups

Les cgroups contrôlent l’utilisation des ressources système :

Ils n’apportent pas directement une isolation de sécurité, mais empêchent certaines attaques de déni de service.

Runtimes de conteneurs

Les runtimes modernes suivent l’architecture définie par l’Open Container Initiative.

Runtime Type Année Usage principal
runc OCI standard 2015 Docker/Kubernetes
containerd Runtime manager 2017 Kubernetes
CRI-O Runtime Kubernetes 2017 OpenShift
gVisor Sandbox user-space 2018 Isolation renforcée
Kata Containers VM légère 2017 Workloads sensibles

Les runtimes comme gVisor interceptent les appels système afin de réduire l’exposition au noyau Linux.

Vulnérabilités historiques

CVE Composant Impact
CVE‑2019‑5736 runc Container escape
CVE‑2022‑0847 Dirty Pipe Escalade privilèges
CVE‑2024‑21626 runc Escape via file descriptor

Ces vulnérabilités démontrent que la sécurité des conteneurs dépend fortement de la robustesse du runtime.

Outils de sécurité

Outil Fonction
Trivy Scan vulnérabilités images
Falco Détection runtime
kube-bench Audit CIS Kubernetes
kube-hunter Pentest cluster
Sysdig Secure Observabilité runtime

  1. Threat Model and Problem Formalization

Nous considérons un adversaire capable de compromettre un conteneur via :

Les objectifs de l’attaquant incluent :

  1. Évasion de conteneur
  2. Mouvement latéral dans le cluster
  3. Accès aux secrets Kubernetes
  4. Persistance dans l’infrastructure

Le risque global peut être modélisé par :

$$ Risk = P(exploit) \times Impact $$

où :

$$ P(exploit) = f(vulnerability, configuration, exposure) $$

Dans un cluster Kubernetes, l’attaque suit souvent ce chemin :

  1. Compromission d’un pod
  2. Accès au service account
  3. Interaction avec l’API Kubernetes
  4. Escalade vers cluster-admin

  1. Proposed Methodology

Notre approche repose sur une défense multicouche couvrant trois niveaux :

Sécurité des images

Les images doivent être analysées avant déploiement.

trivy image nginx:latest

Cette commande identifie les vulnérabilités connues dans les packages.

Politiques Kubernetes

Les politiques d’admission peuvent bloquer les conteneurs dangereux.

Exemple :

Détection runtime avec eBPF

Falco utilise eBPF pour surveiller les appels système.

falco -r /etc/falco/falco_rules.yaml

Exemple de règle :

- rule: Shell dans un conteneur
  condition: container and shell_procs
  output: Shell détecté dans conteneur

  1. Implementation

L’environnement expérimental comprend :

Architecture :

Composant Version
Kubernetes 1.29
containerd 1.7
Falco 0.36
Trivy 0.48

Les nœuds utilisent SELinux et AppArmor pour renforcer l’isolation.


  1. Experimental Evaluation

Nous avons exécuté plusieurs scénarios d’attaque.

Scénario Détection Falco Temps détection
Reverse shell Oui 2.1 s
Privilege escalation Oui 3.4 s
File system tampering Oui 1.8 s

Comparaison des outils :

Outil Type Couverture
Trivy Scan statique Images
Falco Runtime Processus
kube-bench Configuration Cluster

Performance :

Configuration Overhead CPU
Sans Falco 0 %
Falco eBPF 4.3 %

  1. Case Study

En 2023, plusieurs campagnes de cryptominage ont ciblé des clusters Kubernetes mal configurés. Les attaquants exploitaient des tableaux de bord Kubernetes exposés sans authentification.

Processus observé :

  1. Accès au dashboard
  2. Déploiement d’un pod malveillant
  3. Exécution de mineurs XMRig

Falco détecte ce comportement via :


  1. Discussion

Les conteneurs offrent un excellent compromis entre performance et isolation. Toutefois, ils reposent fortement sur la sécurité du noyau Linux.

Trois tendances dominent en 2025 :

  1. adoption de runtimes sandboxés
  2. observabilité eBPF
  3. politiques Zero Trust Kubernetes

Les environnements sensibles migrent vers :

Ces solutions ajoutent une couche d’isolation proche de la virtualisation.


  1. Conclusion and Future Work

La sécurité des conteneurs est devenue un enjeu stratégique pour les infrastructures cloud-native. Les incidents récents démontrent que les conteneurs ne doivent pas être considérés comme une frontière de sécurité absolue.

Notre étude montre qu’une stratégie efficace combine :

Les travaux futurs devraient explorer :


References

MERKEL, Dirk. Docker: lightweight Linux containers for consistent development and deployment. Linux Journal, 2014. https://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment

POULTON, Nigel. Docker Deep Dive. Leanpub, 2023. https://leanpub.com/dockerdeepdive

BURNS, Brendan et al. Kubernetes: Up and Running. O’Reilly, 2022. https://www.oreilly.com/library/view/kubernetes-up-and/9781098110192/

OPEN CONTAINER INITIATIVE. runc security advisory CVE‑2019‑5736. 2019. https://github.com/opencontainers/runc

AQUA SECURITY. Trivy vulnerability scanner. 2024. https://github.com/aquasecurity/trivy

SYSDIG. Falco runtime security. 2024. https://falco.org

RED HAT. Kubernetes security best practices. 2023. https://access.redhat.com

NIST. Application Container Security Guide. 2017. https://nvlpubs.nist.gov

CNCF. Kubernetes security whitepaper. 2023. https://www.cncf.io

GOOGLE. gVisor documentation. 2024. https://gvisor.dev

OPENSTACK FOUNDATION. Kata Containers architecture. 2024. https://katacontainers.io

MITRE. ATT&CK for Containers. 2024. https://attack.mitre.org

SYSDIG. 2023 Cloud Native Security Report. 2023. https://sysdig.com

AQUA SECURITY. 2024 Cloud Native Threat Report. 2024. https://www.aquasec.com

UNIT 42. Threat report containers. 2023. https://unit42.paloaltonetworks.com

KUBERNETES. Official documentation. 2025. https://kubernetes.io/docs

DOCKER. Docker security documentation. 2024. https://docs.docker.com/security

CIS. Kubernetes benchmark. 2024. https://www.cisecurity.org

TRAIL OF BITS. Container security research. 2022. https://blog.trailofbits.com

SNYK. Container vulnerability report. 2023. https://snyk.io

NSA. Kubernetes hardening guidance. 2021. https://media.defense.gov

CROWDSTRIKE. Container threats analysis. 2024. https://crowdstrike.com

MICROSOFT. Defender for Containers documentation. 2024. https://learn.microsoft.com

GOOGLE CLOUD. GKE security best practices. 2024. https://cloud.google.com

LINUX FOUNDATION. Cloud Native Security. 2023. https://www.linuxfoundation.org