Chaque lab vit dans son propre dépôt public de l'organisation CyberCTF.
Anatomie d'un lab
docker-compose.yml: les services du lab, dont le serviceevidencequi récupère la preuve du joueur au démarrage ;lab.json: les métadonnées publiques : titre, catégorie, difficulté, le type de preuve et sa valeur de développement ;tests/: des tests automatisés prouvant que la vulnérabilité est exploitable et que la preuve n'est accessible qu'à travers elle.
Les règles que suit chaque lab
- Le réalisme d'abord : une entreprise plausible, un système plausible, une vulnérabilité.
- Des preuves, pas des chaînes magiques : la preuve est une vraie donnée métier, placée au démarrage et accessible uniquement en exploitant le lab.
- Pas de spoiler : rien dans l'interface, les logs ou le README ne trahit la vulnérabilité ou la preuve.
- Testé : la CI rejoue le chemin d'exploitation avec la preuve de développement.
Publication
Quand un lab est poussé sur main, son workflow publie les images et enregistre le lab sur CyberCTF en brouillon. Il est mis en ligne après relecture.