8. November 2022, 9:58 Uhr. Das Sicherheitsausschuss-Meeting ist zu Ende, und eine Schlussfolgerung liegt auf der Hand: Wir müssen das Bewusstsein unserer Teams für Sicherheit erhöhen und sie schulen.

Training ist gut, aber die meisten Teammitglieder sind bereits erfahrene Entwickler, daher besteht die Möglichkeit, dass sie sich von einer solchen Schulung  nicht ausreichend betroffen fühlen. Bücher? Sie müssten motiviert sein, sie zu lesen, und es ist ungewiss, ob das ausreicht, um sie sensibler für die Risiken zu machen.

Ein kreativer Ansatz

Wenn man etwas nicht weiss, fragt man diejenigen, die es wissen. Recherchen über das, was andere tun, führen oft zu neuen Ideen.

Ich besitze eine Fülle von Kursunterlagen  und Büchern zur Computersicherheit, aber ich weiss, dass diese nicht helfen werden. Stattdessen schlug jemand vor, etwas Neues auszuprobieren (1). Die Organisation eines Capture the Flag (CTF)-Events würde es ihnen ermöglichen, praktische Erfahrungen zu sammeln und die Auswirkungen einer Sicherheitslücke zu verstehen. Die Herausforderung dabei wäre, alle von uns intern verwendeten Programmiersprachen einzubeziehen und einen Bereich für Admins/DevOps hinzuzufügen.

Was ist ein Capture the Flag-Event?

Ein CTF ist eine Veranstaltung, bei der Teams unterschiedlicher Grösse (in unserem Fall auf 4 Personen beschränkt) um den höchsten Punktestand konkurrieren. Ihnen werden eine Reihe von Aufgabenoder Computerpuzzles unterschiedlicher Schwierigkeitsgrade präsentiert. Das Ziel besteht darin, die Sicherheitslücke in der Herausforderung zu finden. Punkte werden vergeben, wenn ein Teammitglied die absichtlich geschaffene Schwachstelle in einer Herausforderung erfolgreich ausnutzt.

Bei Camptocamp wurde ein interdisziplinäres Team zusammengestellt, um die Aufgaben zu erstellen. Wir benötigten Aufgaben für Python, Java  und Infrastruktur auf allen Schwierigkeitsstufen. Wir haben eine Vielzahl von Rätseln vorgeschlagen, die von jedem, auch von nicht technisch versierten Personen, gelöst werden können.

Eine der Herausforderungen bestand zum Beispiel darin, zu beweisen, dass MD5 nicht sicher ist (md5-collision/minced). Bei dieser Aufgabe bestand der erste Schritt darin, die Datei "robots.txt" zu entdecken (die als Hinweis in der Herausforderung gegeben wurde). Diese wies auf eine Datei hin, die ein mit MD5 gehashtes Passwort enthielt. Durch die Suche mit diesem MD5-Hash erschien das Passwort im Klartext.

Andere anspruchsvollere Aufgaben bestanden darin, die Kontrolle über einen Remote-Server zu übernehmen. Nachdem der Shell-Zugriff möglich war, mussten die Zugangsdaten des Pods für Kubernetes  und ein “Secret” über die API abgerufen werden. Nur zwei Teams haben diese Aufgabe erfolgreich abgeschlossen.

Die Infrastruktur wurde in AWS mit ihrer EKS-Lösung eingerichtet, wobei nur die IPs von Camptocamp darauf zugreifen durften. All dies wurde dank des Devops Stacks (2) schnell erreicht.

Der Wettbewerb zwischen den Teams war intensiv. Nicht-technische Teilnehmer hatten Schwierigkeiten, aber sie gingen nicht leer aus: Sie konnten die "kleinen" Flaggen erobern und verstanden die Konzepte, die wir vermitteln wollten. Genau das hatten wir uns erhofft.

Natürlich haben einige Spieler die Infrastruktur herausgefordert, wie durch den übermässigen CPU-Verbrauch deutlich wird. Später gaben sie zu, dass sie eine rekursive Suche in der Wurzel der Aufgabe durchgeführt haben. Es ist enttäuschend; sie hätten zumindest etwas Bitcoin schürfen können.

Am Ende der Aufgaben verteilten wir den Quellcode der Herausforderungen und fügten Erklärungen hinzu, damit diejenigen, die wollten, die Aufgaben erneut angehen konnten (3).

Letztendlich haben 11 Teams mit insgesamt 38 Spielern und 12 Herausforderungen teilgenommen.

Einige hatten ihre Feuertaufe und wurden vom Spiel mitgerissen. Für viele war es ihre erste Erfahrung mit der Welt der Sicherheit, und sie haben sich voll und ganz darauf eingelassen. Personen, die zuvor nie miteinander gesprochen hatten, haben Teams gebildet und erstmals zusammengearbeitet, um ihre Chancen zu erhöhen. Das ursprüngliche Ziel, erinnern wir uns, bestand darin, die Teams auf Sicherheitsrisiken zu schulen, und dieses Ziel wurde erreicht.

Das CTF-Event hat mehr zur Sensibilisierung für Sicherheit beigetragen als jedes Buch und/oder jede Schulung. Und die anwesenden Personen hatten eine grossartige Zeit. Wir erledigten also zwei Dinge auf einmal.

Weitere Informationen zu diesem Thema finden Sie unter den folgenden Links:

  1. Medium-Artikel zur Organisation eines internen Sicherheitswettbewerbs
  2. Devops Stack-Website
  3. Capturethecamp GitHub-Repository