
Open-Source-Framework zum Hosten von Angriffs-/Verteidigungs-CTF-Wettbewerben mit automatisiertem Gamebot, Skriptausführung, VPN-Routing und Cloud-basiertem Infrastrukturmanagement für Lehrkräfte und Ausbilder.
Dies ist das Framework, das Shellphish verwendet, um die iCTF zu hosten.
Das iCTF Framework wird in einem Paper beschrieben, das auf dem Usenix 3GSE Workshop im Jahr 2014 vorgestellt wurde.
Wir haben dies in der Hoffnung veröffentlicht, dass es Pädagogen und Trainern ermöglicht, ihre eigenen A/D CTFs zu hosten. Dieses Framework ist kostenlos für die kommerzielle Nutzung, aber der Support, den wir bieten können, ist begrenzt.
Wir planen, in Zukunft weitere technische Dokumentationen zu den einzelnen Komponenten zu veröffentlichen; vorerst findest du Anweisungen zur Erstellung eines Spiels hier.
Bei Fragen sende bitte eine E-Mail an [email protected].
HAFTUNGSAUSSCHLUSS: Dieses Framework befindet sich noch in der Entwicklung und diese Version muss als BETA-Version betrachtet werden. Neue Pull-Requests und neue Issues sind willkommen :)
Dies ist die zentrale Datenbank, die den Spielzustand verfolgt. Sie läuft auf der Database-VM und stellt eine RESTful API bereit. Beachte, dass diese Datenbank nicht direkt von den Teams angesprochen werden sollte, die stattdessen über die Team-Services-Komponente gehen sollten.
Der Gamebot ist die Komponente, die für den Fortschritt des Wettbewerbs verantwortlich ist. Der Wettbewerb ist in Ticks unterteilt. Zu Beginn jedes Ticks entscheidet der Gamebot, welche Skripte vom Scriptbot ausgeführt werden müssen (z. B. Skripte zum Setzen von Flags, Abrufen von Flags oder Testen von Diensten) und schreibt den Zeitplan in die zentrale Datenbank. Dann extrahiert er aus der Datenbank die Daten über den vorherigen Tick (z. B. eingereichte Flags und den Status von Service-Checks) und berechnet die Punkte, die jedem Team zugewiesen werden sollen. Die neuen Punktzahlen werden in der Datenbank gespeichert, damit sie von der Dashboard-Komponente angezeigt werden können.
Der Scriptbot ist für die Ausführung der vom Gamebot geplanten Skripte verantwortlich. Der Scriptbot extrahiert die zur Ausführung geplanten Skripte aus der zentralen Datenbank und führt sie dann aus. Beispielsweise rufen die Skripte Flags ab, die im vorherigen Tick gesetzt wurden, oder prüfen, ob die Dienste verfügbar und funktionsfähig sind.
Die Router-Komponente ist für das Routing des Datenverkehrs zwischen den Teams im Wettbewerb verantwortlich. Die Komponente implementiert einen OpenVPN-Dienst. Jedes Team erhält eine VM, die als Router für das Team fungiert. Der Datenverkehr zwischen den Teams muss anonymisiert werden, um zu verhindern, dass Teams den vom Scriptbot generierten Verkehr von Teamverkehr unterscheiden können.
Weitere Informationen findest du auf unserer Wiki-Seite zum Durchführen eines Klassen-CTF