Docker est le moteur de conteneurs le plus largement déployé, et sa surface offensive est le moteur et ses services de support plutôt que la frontière du conteneur, qui est une propriété du noyau partagée avec tous les autres runtimes. L'API du démon est équivalente à root et fréquemment joignable sur le réseau ; les images et les registres détiennent des secrets et constituent une cible de chaîne d'approvisionnement ; et le processus de build est un environnement d'exécution qui fuit des identifiants. S'évader d'un conteneur Docker vers l'hôte utilise les mêmes primitives que n'importe quel runtime et est couvert par l'évasion de conteneur.
docker version 2>/dev/null; docker info 2>/dev/null | grep -iE 'rootless|security'
ss -tlnp 2>/dev/null | grep -E '2375|2376' # daemon exposed over TCP
ls -l /var/run/docker.sock 2>/dev/null # local socket reachable
Sous-thèmes#
- API de démon exposée : contrôler le démon équivalent à root sur le réseau.
- Images et registres : secrets dans les images et attaques de chaîne d'approvisionnement sur les registres.
- Attaques au moment du build : fuite de secrets et exploitation du processus de build.