Ein Blick hinter die Kulissen: Erfahrungsbericht zum Aufbau und zur Durchführung eines CTF-Events

Im Rahmen eines Auftrags erhielten wir die Chance, einen CTF-Wettbewerb auszurichten. „CTF“ steht für „Capture the Flag“ und beschreibt eine Art der Hacking-Olympiade in der IT-Sicherheit. Dabei stellen die Teilnehmenden in Teams oder allein ihre Kenntnisse durch das Lösen anspruchsvoller Aufgaben unter Beweis. Es gilt, sogenannte „Flags“ (versteckte Schlüssel) zu finden, um Punkte zu sammeln. Das Team mit den meisten Punkten gewinnt am Ende den Wettbewerb.

Obwohl einige Teammitglieder bereits individuelle Erfahrung mit CTFs hatten, war es eine neue Herausforderung, ein solches Event von Grund auf zu gestalten.

Zielsetzung

Die Aufgabe bestand darin, für einen Kunden ein Hacking-Event zu entwickeln, das die Teilnehmenden für IT-Sicherheitsrisiken sensibilisieren und sie mit Angreifermethoden vertraut machen sollte. Der CTF-Ansatz bietet gegenüber herkömmlichen Schulungsmethoden einige klare Vorteile: Durch die direkte Interaktion mit Sicherheitsproblemen wird ein tieferes Verständnis für IT-Sicherheit gefördert. Besonders durch den spielerischen Aspekt ist die Motivation der Teilnehmenden durchgängig hoch und hebt sich somit von Vorträgen ab.

Aufbau der Infrastruktur: Die CTF-Spielumgebung

Zuerst stand die Frage im Raum, wie die technische Infrastruktur gestaltet werden sollte, um einen reibungslosen Ablauf für die Teilnehmenden zu ermöglichen. Jede Aufgabe erhielt eine separate virtuelle Maschine, auf welche die Teams Zugriff erhielten. Wir entschieden uns für AWS und richteten mehrere Ubuntu-Instanzen ein, die ausschließlich über einen VPN-Server erreichbar waren, um die Umgebung abzuschotten. Zur Verwaltung des Fortschritts und der Punktevergabe nutzten wir CTFd, ein Open-Source-Framework speziell für CTF-Veranstaltungen. Die Bedienbarkeit war sehr intuitiv und unsere Challenges konnten mit den hinterlegten Flags sehr gut eingebettet werden. Die Plattform diente als Dashboard und war somit der erste Kontaktpunkt für die Teilnehmenden.

Die Challenges: Wo Kreativität auf Sicherheitslücken trifft

Nach der Infrastruktur folgte die Konzeption der Challenges. Wir wollten eine Bandbreite an Herausforderungen bieten, die verschiedene Sicherheitsbereiche abdecken, darunter Web-Sicherheit, Netzwerk und Konfigurationsfehler. Dazu gehörten exemplarisch eine API-Challenge, welche auf klassische Fehler bei der API-Entwicklung hinwies, eine Webanwendung mit Login und ein Crawling Labyrinth, bei dem das Dateisystem ein Labyrinth darstellte und die Spieler*innen in die Irre führen sollte.  Uns war wichtig, dass jede Aufgabe darauf abzielte, unterschiedliche Schwierigkeitsstufen abzubilden und den Teilnehmenden ein breites Spektrum an Schwachstellen nahe zu bringen – von leichteren bis hin zu anspruchsvolleren Lücken. Hinweise konnten bei Bedarf gegen Punkte eingetauscht werden. Nach einer internen Testphase war das Event bereit für den Start.

Das Event: Wenn Entwickler zu Hackern werden

Vier Teams mit jeweils drei bis vier Entwicklern nahmen teil. Da in Studium und Ausbildung häufig andere Themen im Vordergrund stehen, wird der Bereich IT-Sicherheit in der Anwendungsentwicklung oft vernachlässigt. Daher hatten die meisten Teilnehmer keine Vorkenntnisse in diesem Bereich, was jedoch kein Hindernis darstellte. Über vier Stunden hinweg beschäftigten sich die Teams intensiv mit Cybersecurity, entwickelten Lösungen und suchten unermüdlich nach der nächsten Flag.

Das Feedback der Teilnehmenden war sehr positiv. Viele äußerten, dass sie wertvolle neue Erkenntnisse mitgenommen hatten, was unserem Ziel entsprach: ein Bewusstsein für Sicherheitsrisiken zu schaffen. Auch für uns war es spannend zu beobachten, wie die Teilnehmenden innovative Lösungsansätze fanden, die wir selbst nicht erwartet hätten. Wie so oft, gibt es mehrere Wege, ein Ziel zu erreichen.

Rückblick und Ausblick

Das Event war ein voller Erfolg, und dennoch: Nichts ist perfekt. Auch wir konnten wertvolle Erkenntnisse sammeln. Eine zentrale Lektion war, dass eine große Anzahl an Challenges für Neulinge oft überwältigend wirken kann. Viele Teilnehmenden hatten den Drang, die Challenges der Reihe nach anzugehen und sich an manchen Challenges die Zähne auszubeißen. Prinzipiell ist dies gut, denn es zeugt von Durchhaltevermögen und Problemlösungswillen. Durch den begrenzten zeitlichen Rahmen lohnt es sich jedoch, einen breiteren Ansatz zu verfolgen und verschiedene Challenges auszuprobieren. Dies spiegelt das reale Pentesting wider, wo ebenfalls feste Zeitrahmen gesetzt sind. Um Schwachstellen effektiv zu identifizieren, ist es entscheidend, strategisch vorzugehen und sich nicht zu lange mit einzelnen Herausforderungen aufzuhalten, um das Gesamtbild nicht aus den Augen zu verlieren. Für zukünftige Events haben wir darauf aufbauend bereits einige Ideen entwickelt und werden die Aufgabenstruktur weiter optimieren.

Alles in allem war dieser erste eigene CTF-Wettbewerb ein spannendes Experiment und hat sowohl uns als auch den Teilnehmenden viel Spaß gemacht. Wir freuen uns schon darauf, auch in Zukunft mehr Personen spielerisch den Sicherheitsbereich näher zu bringen.

Eine Kurzzusammenfassung des technischen Aufbaus:

  • als Hosting Provider wurde AWS gewählt
  • CTFd wurde als CTF Plattform ausgewählt (wie eine Art Dashboard für die Challenges und die gesammelten Punkte der Teilnehmenden)
    • User / Teams melden sich dort an und können von dort die Challenges sehen
  • alles findet innerhalb eines VPNs statt
  • die Challenges wurden eigens von uns erstellt
  • jede Challenge bietet vorab einen kurzen einleitenden Text, der Hinweise auf die mögliche Sicherheitslücke geben soll
  • es gibt Challenges in den unterschiedlichsten Bereichen (API, Web, Crawling, etc.) mit verschiedenen Schwierigkeitsgraden