Unsere verwendete Software

Bei den Cybersecurity Days nutzen wir verschiedene Softwareprojekte, um die Challenges bereitzustellen. Einige möchten wir hier vorstellen:

CTFd

Als Challenge-Platfform nutzen wir eine modifizerte Version von CTFd. Diese erlaubt uns, Challenges dynamisch für jeden einzelnen Benutzer zu starten und zu stoppen. Dafür haben wir "mal eben" einen k3s-Cluster (Kubernetes) angebunden, in dem die Challenges je einen eigenen Namespace erhalten und dynamisch gestartet und gestoppt werden können.
Weiterhin haben wir CTFd an unseren Türsteher angebunden und damit die Authentifizierung aus CTFd herausgelöst. Dadurch ist eine zentrale Anmeldung per HPI-Login/Türsteher möglich geworden.

Kubernetes

Alle unsere Challenges und auch unser CTFd liegen auf einem Kubernetes Cluster, der aus zwei (nicht hochverfügbaren) Nodes besteht. Damit sind wir in der Lage in der Spitze ca. 450 Container zu starten. Das entspricht ca. 50 aktiven Teilnehmern.
Unser Kubernetes läuft virtualisiert auf einem Proxmox, das über insgesamt 48GB Ram verfügt. Davon stehen 32 GB dem Kubernetes zur Verfügung.

VPN

Um einen Zugriff auf unsere Challenges (oder genauer gesagt: die Services der einzelnen Kubernetes Namespaces) zu gewährleisten, nutzen wir ein Wireguard-VPN. Dieses kann im Self-Service über ein Web-Interface verwaltet werden und basiert auf dem wg-access-server. Auch der wg-access-server ist an unsere zentrale Authentifizierung über den Türsteher angebunden.

Die Challenges

Die Challenges wurden alle von Mitgliedern des Cybersecurity Klubs erstellt. Sie bestehen jeweils aus einem Intro sowie intern aus den Code-Bestandteilen, einer Musterlösung sowie einen Deployment-File für das Kubernetes-Deployment, falls dieses notwendig sein sollte.

Das klingt alles für dich interessant? Na dann komm doch mal auf unserem Discord vorbei! Den Link dazu findest du auf der Startseite. Wir freuen uns auf dich!