Infrastructure

Héberger un CTF avec Docker : architecture et bonnes pratiques

Docker est devenu le standard pour héberger des challenges CTF. Isolation, portabilité, scalabilité - mais aussi des pièges à éviter si votre réseau d'entreprise est en jeu.

7 mai 2026 · 10 min de lecture · Athern

Pourquoi Docker pour les CTF ?

Les challenges CTF sont par définition vulnérables. Un service web avec une injection SQL, un binaire exploitable, un serveur mal configuré - tout ça doit tourner en production sans mettre en danger le reste de l'infrastructure. Docker résout ce problème avec l'isolation des containers.

Chaque challenge dans son container = réseau isolé, système de fichiers séparé, ressources limitées. Si un participant compromet le challenge, il reste dans le container. Il ne peut pas pivoter vers d'autres systèmes ou accéder aux données des autres participants.

L'autre avantage : la reproductibilité. Un challenge écrit une fois, testé une fois, tourne identiquement sur n'importe quelle machine hôte. Les organisateurs n'ont pas à reconfigurer l'environnement à chaque déploiement.

Architecture d'une infra CTF Docker

Une infrastructure CTF correcte se compose de plusieurs couches :

  • Réseau d'administration - accès HTTPS à la plateforme de scoring, gestion des challenges, monitoring
  • Réseau des challenges - isolé du réseau d'administration, les participants y accèdent uniquement pour les challenges
  • Containers de challenges - un container par challenge, ressources limitées, pas d'accès Internet sauf exception
  • Plateforme de scoring - CTFd, CTFLab ou équivalent - reçoit les flags soumis, gère le scoreboard
  • Reverse proxy - Nginx ou Traefik devant les services web, gestion des sous-domaines par challenge

Point critique : ne jamais exposer le socket Docker (/var/run/docker.sock) dans un container de challenge. C'est une escalade de privilèges triviale qui donne le contrôle complet de l'hôte au participant.

Sécurité des containers CTF

Un challenge CTF est un service intentionnellement vulnérable. La sécurité de l'infra ne porte pas sur le challenge lui-même, mais sur la protection de l'hôte et des autres containers.

  1. Limiter les ressources - CPU, mémoire, nombre de process (cgroups) pour éviter les DoS accidentels ou intentionnels
  2. Désactiver les capabilities dangereuses - --cap-drop=ALL puis n'ajouter que celles strictement nécessaires
  3. Réseau isolé par défaut - --network none sauf si le challenge nécessite de la connectivité
  4. Filesystem en lecture seule - --read-only avec tmpfs pour /tmp si possible
  5. Utilisateur non-root - créer un user dédié dans le Dockerfile, ne jamais tourner en root
  6. Restreindre les appels système - profil seccomp personnalisé pour les challenges sensibles
Docker Compose
Orchestration multi-containers
Traefik
Reverse proxy dynamique
Prometheus + Grafana
Monitoring de l'infra
CTFLab
Infra managée clé en main

Auto-hébergé vs plateforme managée

La question se pose souvent : gérer soi-même ou déléguer ? La réponse dépend de vos ressources et de votre contexte.

Quand auto-héberger fait sens

Si vous avez une équipe DevOps disponible, des contraintes de souveraineté spécifiques nécessitant un contrôle total, ou si vous organisez des CTF régulièrement avec un portefeuille de challenges interne, l'auto-hébergement est viable. La courbe d'apprentissage est réelle mais les coûts à long terme peuvent être maîtrisés.

Quand choisir une plateforme managée

Pour les organisations sans équipe infrastructure dédiée, ou pour un premier CTF sans vouloir prendre de risque technique, une plateforme managée comme CTFLab est le bon choix. L'infra est opérationnelle en quelques heures, les mises à jour de sécurité sont gérées, et vous bénéficiez d'un support technique en cas de problème le jour J.

CTFLab déploie chaque challenge dans un container Docker isolé sur infrastructure française, avec réseau dédié, limites de ressources automatiques et monitoring intégré. Aucune compétence Docker requise côté client.

FAQ - Hébergement CTF Docker

Pourquoi utiliser Docker pour héberger un CTF ?

Docker garantit l'isolation entre challenges. Si un participant compromet un service, il reste dans le container. Il ne peut pas accéder aux autres challenges ou à l'infrastructure hôte.

Docker Compose suffit-il pour un CTF en entreprise ?

Pour moins de 50 participants, oui. Au-delà, Kubernetes ou une plateforme managée offrent une meilleure scalabilité et résilience. CTFLab gère cette scalabilité automatiquement.

Comment limiter les ressources des containers ?

Avec Docker : --cpus 0.5 --memory 256m. Dans Docker Compose, via deploy.resources.limits. CTFLab applique ces limites automatiquement selon le type de challenge.

Peut-on utiliser ses propres challenges avec CTFLab ?

Oui. CTFLab accepte les challenges Docker personnalisés. Vous développez votre scénario, vous le packagés en container, et CTFLab gère le déploiement, l'isolation et le reset automatique.

Conclusion

Docker a transformé la façon d'organiser des CTF. L'isolation des challenges, la reproductibilité des environnements et la scalabilité sont des avantages concrets qui profitent aussi bien aux petits événements qu'aux grandes compétitions.

Maîtriser l'infrastructure CTF Docker, c'est aussi comprendre les principes de sécurité des containers - une compétence directement utilisable dans tout contexte DevSecOps professionnel.

Infrastructure CTF Docker managée

CTFLab s'occupe du Docker, de l'isolation et du monitoring. Vous vous concentrez sur vos challenges et vos participants.