Skip to content

Commit a3ace1d

Browse files
committed
fix: update challenge titles and prerequisites for consistency across modules
1 parent 7860e63 commit a3ace1d

14 files changed

Lines changed: 15 additions & 15 deletions

File tree

modules/ghas/challenges/s00-environment-setup/COACH.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ If a participant cannot reach the full environment, apply the smallest unblock:
5353
1. **Codespaces quota:** Use local dev container (VS Code + Docker Desktop), or request org Codespaces billing before the event.
5454
2. **Org access:** Coach adds participant to org team, or provides a pre-cloned repo baseline branch via `git bundle`.
5555
3. **Juice Shop unavailable (Docker blocked locally, Codespace quota exhausted):**
56-
- Participants can still complete S01–S05 review steps by reading the pre-populated alert corpus in the Security tab — no live app required for the code-review loop.
56+
- Participants can still complete S01–S06 review steps by reading the pre-populated alert corpus in the Security tab — no live app required for the code-review loop.
5757
- Coach provides a **pre-scanned results packet**: export of CodeQL SARIF results + Dependabot alert JSON + secret scanning summary so participants can proceed with the analysis tasks even without a running app.
5858
- For fixes: participants write and submit PRs; CodeQL runs on the PR branch in GitHub Actions and validates the fix without needing a local running instance.
5959
4. **GitHub Actions / CodeQL not running:** Coach triggers a manual workflow run (`gh workflow run codeql.yml`) or shares pre-generated SARIF results for the alert-reading portion.

modules/ghas/challenges/s00-environment-setup/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ All GHAS challenges work with OWASP Juice Shop for **manual exploit testing**. T
9393
```bash
9494
npm run setup:juice-shop
9595
```
96-
This command fetches Juice Shop at the exact pinned commit (`v20.0.0`), verifies the SHA, and links it to `app/` so the next command works immediately.
96+
This command fetches Juice Shop at the exact pinned release tag (`v20.0.0`), verifies the commit SHA, and links it to `app/` so the next command works immediately.
9797

9898
**Step 2 — Start the app:**
9999
```bash

modules/ghas/challenges/s01-explore-attack-surface/COACH.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Use these follow-ups to steer the conversation:
2727
- Have students group alerts by class and likely remediation effort before they choose a fix order.
2828
- Ask them to explain one alert in plain language: what input is attacker-controlled, what sink is dangerous, and what impact follows.
2929
- If they rely too heavily on Copilot, ask them to verify the explanation against the actual code path.
30-
- Encourage notes they can reuse in S01-S05 so the reconnaissance work pays off later.
30+
- Encourage notes they can reuse in S02-S06 so the reconnaissance work pays off later.
3131

3232
## Validation checklist
3333
Verify each success criterion from the student guide:

modules/ghas/challenges/s01-explore-attack-surface/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Challenge S-00: Explore the Attack Surface
1+
# Challenge S01 — Explore the Attack Surface
22

33
## Description
44

modules/ghas/challenges/s02-fix-injection/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Challenge S-01: Fix Injection Vulnerabilities
1+
# Challenge S02 — Fix Injection Vulnerabilities
22

33
## Description
44

@@ -31,7 +31,7 @@ You're working as a developer fixing real application code. Not configuring tool
3131
- Ask: *"What's the difference between input sanitization and parameterization, and why is parameterization the right fix here?"*
3232
- Use Copilot Autofix in the Security tab — click an alert and hit **Generate fix** to see its proposed remediation, then review and refine it.
3333

34-
**Power move:** If you've done C-00, create a custom Copilot agent that's instructed to always suggest parameterized queries when it sees raw string concatenation in SQL context.
34+
**Power move:** Create a custom Copilot agent (or repository custom instructions) that always suggests parameterized queries when it sees raw string concatenation in a SQL context.
3535

3636
## Learning Resources
3737

modules/ghas/challenges/s02-fix-injection/meta.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ prerequisite_capabilities:
1111
- GitHub Advanced Security enabled on the shared org repo
1212
- GitHub Copilot license assigned
1313
- Basic familiarity with Node.js/Express and SQL queries
14-
- Completed S00 (attack surface overview) recommended
14+
- Completed S01 (attack surface overview) recommended
1515
description: Fix real SQL injection and NoSQL injection vulnerabilities in Juice Shop backend routes identified by CodeQL, using parameterized queries and ORM-safe patterns; open pull requests and verify fixes via PR code scanning checks.
1616
success_criteria:
1717
- At least 2 injection vulnerabilities fixed in the code

modules/ghas/challenges/s03-fix-xss/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Challenge S-02: Fix XSS & Unsafe Output
1+
# Challenge S03 — Fix XSS & Unsafe Output
22

33
## Description
44

modules/ghas/challenges/s03-fix-xss/meta.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ prerequisite_capabilities:
1111
- GitHub Advanced Security enabled on the shared org repo
1212
- GitHub Copilot license assigned
1313
- Basic familiarity with HTML/JavaScript and frontend frameworks (Angular)
14-
- Completed S00 (attack surface overview) recommended
14+
- Completed S01 (attack surface overview) recommended
1515
description: Fix cross-site scripting (XSS) vulnerabilities in Juice Shop by applying correct output encoding and safe framework APIs; trace data flows from user input to HTML output and verify fixes through PR code scanning annotations.
1616
success_criteria:
1717
- At least 2 XSS vulnerabilities fixed

modules/ghas/challenges/s04-broken-access-control/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Challenge S-03: Fix Broken Access Control
1+
# Challenge S04 — Fix Broken Access Control
22

33
## Description
44

modules/ghas/challenges/s04-broken-access-control/meta.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ prerequisite_capabilities:
1111
- GitHub Advanced Security enabled on the shared org repo
1212
- GitHub Copilot license assigned
1313
- Basic familiarity with Node.js/Express route middleware and authentication patterns
14-
- Completed S00 (attack surface overview) recommended
14+
- Completed S01 (attack surface overview) recommended
1515
description: Identify and fix broken access control vulnerabilities (IDOR, missing authorization middleware) in Juice Shop backend routes; enforce server-side ownership checks and role-based authorization in route handlers.
1616
success_criteria:
1717
- At least 2 access control vulnerabilities identified and fixed in route handlers

0 commit comments

Comments
 (0)