
Framework open-source pour héberger des compétitions CTF Attaque/Défense avec gamebot automatisé, exécution de scripts, routage VPN et gestion d'infrastructure cloud destiné aux éducateurs et formateurs.
Ceci est le framework que Shellphish utilise pour héberger l'iCTF.
Le Framework iCTF est décrit dans un article présenté à l'atelier Usenix 3GSE en 2014.
Nous avons publié ceci dans l'espoir que cela permette aux éducateurs et formateurs d'organiser leurs propres A/D CTFs. Ce framework est gratuit pour un usage commercial, mais le soutien que nous pouvons fournir est limité.
Nous prévoyons de publier plus de documentation technique concernant chaque composant à l'avenir ; en attendant, vous pouvez trouver des instructions sur la façon de créer un jeu ici.
Si vous avez des questions, veuillez envoyer un e-mail à [email protected].
AVERTISSEMENT : Ce framework est encore en cours de développement et cette version doit être considérée comme une version BÊTA. Les nouvelles pull requests et les nouveaux problèmes sont les bienvenus :)
C'est la base de données centrale qui suit l'état du jeu. Elle s'exécute sur la machine virtuelle de base de données et expose une API RESTful. Notez que cette base de données ne doit pas être directement accessible par les équipes, qui doivent plutôt passer par le composant de services d'équipe.
Le Gamebot est le composant responsable du déroulement de la compétition. La compétition est divisée en ticks. Au début de chaque tick, le gamebot décide quels scripts doivent être exécutés par le scriptbot (par exemple, des scripts pour définir des flags, récupérer des flags ou tester des services) et écrit le planning dans la base de données centrale. Ensuite, il extrait de la base de données les données concernant le tick précédent (par exemple, le flag soumis et le statut des vérifications de service) et calcule les points à attribuer à chaque équipe. Les nouveaux scores sont stockés dans la base de données, afin d'être affichés par le composant tableau de bord.
Le scriptbot est responsable de l'exécution des scripts planifiés par le gamebot. Le scriptbot extrait les scripts programmés pour exécution de la base de données centrale, puis les exécute. Par exemple, les scripts récupèrent les flags qui ont été définis lors du tick précédent, ou vérifient si les services sont opérationnels et fonctionnels.
Le composant routeur est responsable du routage du trafic entre les équipes de la compétition. Le composant implémente un service OpenVPN. Chaque équipe reçoit une machine virtuelle qui agit comme routeur pour l'équipe. Le trafic entre les équipes doit être anonymisé pour empêcher les équipes de distinguer le trafic généré par le scriptbot du trafic d'équipe.
Pour plus d'informations, visitez notre page wiki sur l'organisation d'un CTF en classe