Automatisierte Bereitstellung von CTF-Infrastrukturen

Entwicklung einer modularen Lösung zur automatisierten Bereitstellung von Capture-the-Flag-Umgebungen in GNS3.

Text

Ausgangslage

Capture-the-Flag-Umgebungen ermöglichen es, IT-Sicherheitskonzepte praxisnah in einer kontrollierten Umgebung zu üben. Der manuelle Aufbau solcher Umgebungen ist jedoch zeitaufwendig und fehleranfällig, da virtuelle Maschinen, Netzwerke, IP-Adressen und Verbindungen einzeln eingerichtet werden müssen. Zusätzlich sind statisch aufgebaute Szenarien nur eingeschränkt wiederverwendbar. Deshalb soll die Bereitstellung verschiedener CTF-Szenarien möglichst automatisiert und reproduzierbar erfolgen.

Zielsetzung

Ziel des Projekts ist die Entwicklung einer Lösung, mit der unterschiedliche CTF-Szenarien automatisiert erstellt, gestartet und wieder entfernt werden können. Die Netzwerktopologien werden in GNS3 bereitgestellt und durch OpenTofu, Ansible und einen Python-Orchestrator automatisiert aufgebaut und konfiguriert. Dadurch soll der manuelle Aufwand reduziert und eine wiederverwendbare sowie erweiterbare Grundlage für zukünftige CTF-Szenarien geschaffen werden.

Netzwerk Visualisierung

FHNW

Vollständig bereitgestellte CTF-Infrastruktur in GNS3.

UI für die Steuerung

FHNW

Auswahl verschiedener Netzwerksegmente über die Web-GUI.

CLI des Deployments

FHNW

Python-Orchestrator steuert den gesamten Deployment-Ablauf und zeigt die gewählte Konfiguration an.

Ergebnisse

Im Rahmen des Projekts wurde eine funktionierende Grundlage für die automatisierte Bereitstellung von CTF-Infrastrukturen entwickelt. Unterschiedliche Netzwerksegmente und virtuelle Systeme können ausgewählt, kombiniert und anschliessend automatisiert in GNS3 bereitgestellt werden. Der Aufbau und die Konfiguration der Umgebung werden dabei durch OpenTofu, Ansible und einen zentralen Python-Orchestrator gesteuert.

  • automatisierte Bereitstellung von Netzwerktopologien und virtuellen Systemen in GNS3
  • modularer Aufbau und flexible Kombination verschiedener Netzwerksegmente
  • automatische Verwaltung und Validierung der verwendeten IP-Netze
  • automatisierte Konfiguration der bereitgestellten Systeme mit Ansible
  • Steuerung des Deployments über Kommandozeile oder Web-GUI
  • Validierungen vor dem Deployment zur frühzeitigen Erkennung fehlerhafter Konfigurationen

Durch den modularen Aufbau ist die Lösung nicht auf ein einzelnes statisches CTF-Szenario beschränkt. Netzwerksegmente und Szenarien können erweitert oder unterschiedlich kombiniert werden. Dadurch lassen sich verschiedene CTF-Umgebungen auf derselben technischen Grundlage aufbauen und reproduzierbar erneut bereitstellen.

Technische Schlüsselbegriffe

  • GNS3 Plattform zur Emulation der virtuellen Netzwerkumgebungen und Systeme.
  • OpenTofu Erstellt die Netzwerktopologien, virtuellen Systeme und Verbindungen automatisiert in GNS3.
  • Ansible Übernimmt die automatisierte Konfiguration der bereitgestellten Systeme und Netzwerke.
  • Python Orchestriert den gesamten Deployment-Ablauf und verbindet die eingesetzten Werkzeuge miteinander.
  • FastAPI Bildet die technische Grundlage der webbasierten Benutzeroberfläche zur Steuerung des Deployments.
  • Netzwerk Die CTF-Umgebung besteht aus mehreren flexibel kombinierbaren und getrennten Netzwerksegmenten.
  • Capture the Flag Praxisorientierte IT-Sicherheitsübungen, bei denen Angriffs- und Verteidigungstechniken in einer kontrollierten Umgebung angewendet werden.

Team

Fabian Frei,
Sandro Regli

Betreuer
Prof. Dr. Christopher Scherb, Alexander Trapp