
Praktisches AWS WAF-Trainingsspiel mit Tutorials, bewerteten Labs und Prüfungen, in denen Spieler Web-ACL-Regeln schreiben, um echte Angriffsmuster zu blockieren und dabei Fehlalarme zu vermeiden.
Ein praxisorientiertes Trainingsspiel zum Erlernen von AWS WAF durch die Verteidigung gegen echte Angriffe.
Englisch | 日本語
Für Administratoren: Wie die Umgebung aufgebaut, an Teilnehmer ausgegeben, betrieben und bereinigt wird, ist im Admin-Leitfaden (docs/ADMIN.md) beschrieben, und das Handout für Teilnehmer ist Erste Schritte für Spieler (docs/PLAYER_GUIDE.md). Beide Leitfäden sind derzeit auf Japanisch.
Eine praxisorientierte Umgebung zum Erlernen von AWS WAF während eines laufenden Angriffs.
Spiele allein oder tritt gegen andere an.

Der Ablauf vom Lesen des Angriffs und der Schritte eines Tutorials über das Entwerfen einer Regel in einem Schwachstellen-Lab, das Starten des Angriffs, das Überprüfen der Punktzahl und der Musterlösung bis hin zum Öffnen eines Wettbewerbs über die Admin-Seite (etwa 70 Sekunden). Eine Version in höherer Qualität findest du unter docs/demo-en.mp4.
Aufgezeichnet im Entwicklungsmodus (
make dev), der mit der Musterlösung statt mit einem echten AWS WAF bewertet.
┌───────────────────── per player ──────────────────┐
Browser ── Lambda Function URL (gameapi: UI + API) │
│ async invoke │
▼ │
Lambda (trafficgen) ── HTTPS ─▶ ALB ◀── Web ACL (edited by the player)
│ │ │
│ ▼ │
│ Lambda (targetapp: dummy online shop) │
▼ └────────────────────────────────────┘
DynamoDB (runs, best scores, locks)
wafdojo-<name>-cf, us-east-1). CloudFront steht direkt vor der Lambda Function URL der Dummy-App statt vor dem ALB, sodass die Web-ACL-Regeln des ALB dort nicht greifen. Setze enable_cloudfront = false, um dies zu überspringen.X-Forwarded-For dargestellt (es wird angenommen, dass die Website hinter einem CDN liegt).| ID | Thema | Was du lernst |
|---|---|---|
| tutorial-1-sqli | SQL-Injection | Verwaltete Regelgruppen |
| tutorial-2-xss | XSS im Bewertungsformular | Benutzerdefinierte Regeln (Rule Builder), Body Inspection, Texttransformationen |
| tutorial-3-ipset | IPs auf einer Bedrohungsliste | IP-Sets, CIDR, X-Forwarded-For |
| tutorial-4-useragent | Schwachstellen-Scanner | String-Match auf Header, OR-Anweisungen, Lowercase-Transformation |
| tutorial-5-ratelimit | Floods von einer einzelnen IP | Ratenbasierte Regeln, Aggregationsschlüssel |
| tutorial-6-ja4 | Ein Scraper, der sich als Browser ausgibt | Wie JA4-Fingerabdrücke funktionieren und wie man sie liest (a_b_c), exakter JA4-Match, WAF-Log-Analyse |
| ID | Thema | Was du lernst |
|---|---|---|
| game-1-fakebot | Ein Scraper, der sich als Googlebot ausgibt | Kombination von AND / NOT (UA sagt Googlebot AND die IP ist nicht von Google) |
| game-2-admin | Externer Zugriff auf das Admin-Panel | URI-Pfad-Bedingungen + IP-Allowlist, Groß-/Kleinschreibung |
| game-3-traversal | Path Traversal | Stapeln von Texttransformationen (doppelte Dekodierung), Vermeidung von False Positives |
| game-4-cms | Eine XSS-Regel, die deine Redakteure blockiert | Ausnahmen erstellen, Regelpriorität, Überarbeitung bestehender Regeln |
| game-5-bruteforce | Login-Brute-Force + Corporate NAT | Scope-Down-Statements, Threshold-Design |
| game-6-ja4regex | Eine Bot-Armee, die ihren JA4 ständig verändert + ein Partner, der dieselbe Bibliothek nutzt | JA4-Reguläre Ausdrücke (Erfassen des gemeinsamen b-Teils), Vorbereitung auf unbekannte Varianten, Ausnahmen mit AND NOT |
Regeln, die du in den Tutorials erstellt hast, bleiben bestehen, sodass sie im Spielmodus manchmal False Positives verursachen (Stufen 4 und 5). Du musst bestehende Regeln überarbeiten, nicht nur neue Angriffe stoppen.
Jede Challenge lautet: „Eine neue Schwachstelle ist aufgetaucht. Sie kann unter diesen Bedingungen blockiert werden. Schreibe die Regel." Das Ziel ist, eigene Regeln schreiben zu können, wann immer eine neue Schwachstelle auftaucht. Nach einem Versuch kannst du die Musterlösungs-Regel als JSON sehen (bereit zum Einfügen in den Rule-JSON-Editor der Konsole) sowie eine Erklärung. Viele Challenges der Stufen 2 und 3 enthalten außerdem eine „häufige Falle"-Regel und warum sie fehlschlägt.