WrongSecrets-Lab: fest einprogrammierte Geheimnisse finden und lernen, wohin Geheimnisse gehören

OWASP WrongSecrets ist eine Anwendung, die Geheimnisse mit Absicht an den falschen Orten aufbewahrt: im Code, in Front-End-Skripten, in der Konfiguration und in Monitoring-Endpunkten. Jede Herausforderung verlangt ein Geheimnis, und die Anwendung färbt sie grün, wenn die lernende Person das richtige findet. Dieses Lab startet sie in der eigenen privaten Kopie jeder lernenden Person.

Alles, was die lernende Person untersucht, liegt in ihrer eigenen Lab-Kopie, die keine Verbindung zum Internet und keine zu anderen Lernenden hat. Das Einzige, was eine lernende Person erreichen kann, ist also die Anwendung, die das Lab für sie gestartet hat. Die Regel steht oben im Lab: Untersuchen Sie Ihre eigene Kopie und richten Sie nie ein Werkzeug auf eine Website, die Ihnen nicht gehört.

Was Lernende hier lernen

Woher Geheimnisse durchsickern und wie Entwickelnde oder Angreifende sie finden: ein in den Code geschriebenes Passwort, ein im Skript an den Browser ausgeliefertes Geheimnis, ein Schlüssel, den ein Monitoring-Endpunkt preisgibt. Zu jedem erklären sie, warum der Ort falsch ist und wo ein Geheimnis stattdessen aufbewahrt werden sollte. Das Lab passt zu Einheiten über sicheres Programmieren, DevOps und die Software-Lieferkette.

Im Browser ausführen

Die Anwendung startet in wenigen Sekunden, braucht kein Konto und vergisst ihren Zustand, wenn das Lab stoppt, ein Neustart ist also ein frisches Spiel.

Nur einige Herausforderungen lassen sich in einem Lab lösen. Die, die den Quellcode des Projekts von GitHub, eine Shell im Container der Anwendung, ein Cloud-Konto, Vault, Kubernetes oder einen KI-Dienst verlangen, brauchen etwas, das eine Lab-Kopie nicht hat. Die Herausforderungen 0, 16 und 42 wurden geprüft, und weitere, die sich um die Seite, ihre Skripte und ihre eigenen Endpunkte drehen, lohnen einen Versuch mit den Entwicklerwerkzeugen des Browsers oder mit curl im Terminal des Labs.

  1. Container-Seite öffnen. Wählen Sie in der Leiste „Entwickeln“ und dann „Einen Container ausführen“. Die Seite kann jeder öffnen, und das Git-Lab und das SQL-Lab starten ohne Konto. Jedes andere Lab braucht ein kostenloses Konto: Erstellen Sie eines, melden Sie sich an und wählen Sie dann „Starten“.
  2. Lab finden. Die Karte „Beispiel-Labs“ listet alle Beispiele auf. Suchen Sie OWASP WrongSecrets.
  3. „Starten“ wählen. „Starten“ führt das Lab unverändert mit einem Klick aus. „Zuerst die Datei bearbeiten“ öffnet die Compose-Datei, damit Sie sie vor dem Start ändern können.
  4. Öffnen. Wählen Sie auf der Seite des Labs den Link namens OWASP WrongSecrets, die Schaltfläche „Öffnen“ des Labs. Beginnen Sie im Menü „Challenges“ bei Challenge 0, die das Spiel erklärt. Im Terminal erreicht curl http://wrongsecrets:8080 die Anwendung.

Was Lernende abgeben sollten

Einen Screenshot jeder gelösten Herausforderung, auf dem die eigene Adresse des Labs sichtbar ist, und zu jeder eine schriftliche Erklärung in eigenen Worten, wo das Geheimnis lag, wie sie es gefunden haben, warum dieser Ort falsch ist und wo ein Geheimnis stattdessen aufbewahrt werden sollte. Die zweite Hälfte zeigt Ihnen, ob es verstanden oder aus einer Lösungsanleitung abgeschrieben wurde.

Der Code auf GitHub

Die Compose-Datei führt das eigene öffentliche Image von WrongSecrets, auf ein Release festgelegt, als Konto ohne Sonderrechte aus. WrongSecrets steht unter der AGPL-3.0 und wird von uns nicht verteilt. Das Lab hat keinen Weg ins Internet, eine Herausforderung, die eines braucht, lässt sich darin also nicht lösen.

Eine Grundlagenlektion zu diesem Lab

WrongSecrets Basics ist eine kleine Lektion, die in diesem Lab durchgearbeitet wird, wobei jeder Schritt erklärt wird und eine Schaltfläche „Ausführen“ seinen Befehl im eigenen Terminal der lernenden Person eintippt. Sie beginnt mit der Regel, dass eine lernende Person ihre eigene Kopie untersucht und sonst nichts, prüft, ob die Anwendung läuft, listet die Endpunkte auf, die die Anwendung bereitstellt, und betrachtet das Skript, um das es bei einer Front-End-Herausforderung geht, und schickt sie dann zu den Herausforderungen.

Ein kostenloses persönliches Konto erhält sie im Modul „Basics“ auf der Startseite, jede Einrichtung kann sie aus dem Ordner „Basics“ der Bibliothek kopieren, und eine neue Einrichtung startet mit ihr in einem Modul namens Lab Basics (Sample). Sie ist bewusst klein: Sie zeigt einer Lehrkraft, was eine in einem Lab durchgearbeitete Lektion ist, und das Lab erledigt den Rest. Kopieren Sie sie in ein eigenes Modul, um sie zu ändern.

Als Arbeit stellen

Beschreiben Sie in der Aufgabe, welche Herausforderungen zu bearbeiten sind und was abzugeben ist.

  1. Lab erstellen. Fügen Sie in Ihrem Modul eine Aufgabe hinzu und wählen Sie die Karte „Container-Lab“, dann „In einem GitHub-Repository“. Geben Sie https://github.com/mitsurutech/lab-wrongsecrets mit dem Branch main an. Die Compose-Datei ist standardmäßig compose.yaml. Forken Sie das Repository zuerst, wenn Sie sie ändern möchten.
  2. Veröffentlichen und ausprobieren. „Veröffentlichen“ legt den Commit fest, der Ihnen gezeigt wurde, sodass eine spätere Änderung im Repository ein bereits gestelltes Lab nicht verändert. Starten Sie zuerst Ihre eigene Kopie.
  3. Zuweisen. Weisen Sie es wie jede Aufgabe zu, auf Wunsch mit einem Fälligkeitsdatum, und beschreiben Sie in der Aufgabe, was zu tun ist und was abgegeben werden soll.
  4. Abgaben bewerten. Öffnen Sie die Kopie einer lernenden Person und ihre Abgabe, bewerten Sie sie und geben Sie sie mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.

Häufige Fragen

Warum lassen sich nur einige Herausforderungen lösen?
Eine Lab-Kopie hat keinen Weg ins Internet und enthält nur die Anwendung. Herausforderungen, die den Quellcode des Projekts auf GitHub, eine Shell in seinem Container, ein Cloud-Konto, Vault, Kubernetes oder einen KI-Dienst brauchen, lassen sich darin nicht bearbeiten. Die Seite auf GitHub sagt das ebenfalls.
Bleibt der Fortschritt erhalten?
Nein. Die Anwendung speichert nichts, das Stoppen und erneute Starten des Labs ist also ein frisches Spiel. Wer etwas gelöst hat, macht zuerst einen Screenshot zum Abgeben.
Sind die Geheimnisse echt?
Nein. Jedes Geheimnis in der Anwendung ist für das Spiel erfunden. Die Gewohnheit, die sich zu vermitteln lohnt, ist, nach den echten im Code des eigenen Teams zu suchen und nie im Code anderer.