Référence des ports
Port 2376 (TCP) – Docker Engine API (TLS)
API distante du moteur Docker sur TLS — contrôle les conteneurs, images et volumes d'un hôte Docker.
État par défaut
Ouvert lorsque le démon Docker est configuré pour l'accès distant TLS ; la contrepartie sécurisée du 2375 en clair.
Attaques courantes
- Abus d'un TLS mal configuré sans authentification par certificat client
- Évasion de conteneur vers l'hôte via exécutions privilégiées/bind-mount
- Vol d'images et de secrets via l'API distante
- Cryptojacking par lancement de conteneurs malveillants
Durcissement
- Exiger le TLS mutuel (vérifier les certificats clients, tlsverify)
- Ne jamais exposer l'API Docker sur Internet
- Restreindre l'accès aux hôtes d'administration et IP de confiance
- Renouveler et protéger les certificats CA/serveur/client
- Privilégier SSH ou un proxy de socket plutôt qu'une API TCP brute
Commande nmap
nmap -p2376 --script ssl-cert <target>Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.
Ce qui s'exécute sur le port 2376
Le port 2376 est l'API distante du moteur Docker sécurisée par TLS. C'est la
contrepartie chiffrée du 2375 en clair et il permet à un client distant (la CLI
docker, des systèmes CI, des outils d'orchestration) de gérer conteneurs,
images, volumes et réseaux d'un hôte Docker. Correctement configuré, il exige un
TLS mutuel pour que seuls les clients détenant un certificat valide puissent
émettre des commandes.
Pourquoi c'est important pour la sécurité
L'API Docker est équivalente à root sur l'hôte. Tout client qui peut l'atteindre
peut lancer un conteneur privilégié qui monte en bind / et lire ou écrire le
système de fichiers de l'hôte en root — une voie directe vers la RCE hôte. Le
TLS sur le 2376 n'aide que si la vérification du certificat client
(--tlsverify) est réellement imposée ; un démon mal configuré qui saute l'auth
client est tout aussi exposé que le 2375 en clair.
Comment il est attaqué
Les attaquants scannent l'API et vérifient si les certificats clients sont imposés. Là où l'auth manque ou où le TLS est mal configuré, ils appellent l'API pour exécuter un conteneur privilégié qui monte l'hôte et s'évade vers root, volent des images et secrets, ou déploient des charges de cryptojacking.
Liste de durcissement
Exigez le TLS mutuel avec --tlsverify pour que les certificats clients soient
validés, et n'exposez jamais l'API sur Internet. Restreignez l'accès aux
hôtes d'administration de confiance par IP, renouvelez et protégez les
certificats CA, serveur et client, et privilégiez le transport SSH ou un proxy
de socket durci plutôt qu'une API TCP brute. Utilisez la commande nmap ci-dessus
pour inspecter le certificat TLS sur les hôtes que vous êtes autorisé à tester.
Ports liés
Questions fréquentes
- En quoi le port 2376 diffère-t-il du 2375 ?
- Le 2375 est l'API Docker en clair et sans authentification — extrêmement dangereux s'il est exposé. Le 2376 est le port TLS et est censé exiger une authentification par certificat client, mais seulement si tlsverify est configuré.
- Pourquoi une API Docker exposée signifie-t-elle compromission de l'hôte ?
- L'API peut lancer un conteneur privilégié qui monte le système de fichiers de l'hôte, donnant root sur l'hôte. Quiconque peut appeler l'API possède de fait la machine.