Skip to content

Commit af1e510

Browse files
committed
Rework
1 parent 0b97a94 commit af1e510

125 files changed

Lines changed: 445 additions & 435 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Objectives
44

5-
- Facilitate a governed GHAS baseline in `modules/ghas/resources/ghas-governance-practice.template.md`, not merely a completed setup.
5+
- Facilitate a GHAS configuration and ownership record in `modules/ghas/resources/ghas-governance-practice.template.md`, not merely a completed setup.
66
- Help the delivery team select a real repository or service, or explicitly use Juice Shop as the fallback practice target.
77
- Ensure the baseline records scope and criticality, enabled and missing GHAS capabilities, and the repository or service owner, security partner, and delivery team.
88
- Ensure the baseline records least privilege, human accountability for approval and merge, and normal GHAS and PR validation for agent-originated changes.
@@ -15,14 +15,14 @@
1515
## Facilitation Hints
1616

1717
- **Push Codespaces first.** If local setup consumes more than 10 minutes, redirect to Codespaces.
18-
- Start with the governed baseline. Ask which real repository or service is in scope, why its criticality matters, and whether Juice Shop is only the fallback practice target.
19-
- Ask for a show-of-hands "green terminal + accountable baseline" check after the first 10 minutes.
18+
- Start with the GHAS configuration and ownership record. Ask which real repository or service is in scope, why its criticality matters, and whether Juice Shop is only the fallback practice target.
19+
- Ask for a show-of-hands check after the first 10 minutes: successful commands and a completed record with named owners.
2020
- Pair any blocked participant with a working neighbor; one blocker should not stall the group.
2121
- Start by having the responsible participant, team lead, or organizer run:
2222
`./setup.sh provision ghas-00 --org <org>` or `./setup.ps1 provision ghas-00 -Org <org>`.
2323
- Verify that **Codespaces is enabled for the org** before the event starts (org Settings → Codespaces → Allow for all members). If not enabled, participants see no Codespace option.
2424
- If Copilot is not yet licensed for all participants, pair them so every team still practices the Copilot-assisted review loop in S01–S06.
25-
- Confirm **GHAS is enabled** on the provisioned org repo (Settings → Code security and analysis). CodeQL, secret scanning, Dependabot alerts, and push protection must all be on — these are the backbone of S01–S06.
25+
- Confirm **GHAS is enabled** on the provisioned org repo (Settings → Code security and analysis). CodeQL, secret scanning, Dependabot alerts, and push protection must all be on — S01–S06 depend on them.
2626
- Confirm the repository access list includes every participant or team that needs to push a branch. The script creates/configures the repo; it does not guess workshop roster membership.
2727
- Do not accept a feature toggle or a running storefront as completion by itself. Validate that enabled and missing GHAS capabilities, accountable roles, agentic delivery principles, and blocker ownership and dates are recorded in the baseline.
2828
- When discussing agentic delivery, keep the scope to the documented principles: least privilege; humans remain accountable for approval and merge; and agent-originated changes receive normal GHAS and PR validation.
@@ -54,7 +54,7 @@ delivery team:
5454
- [ ] `modules/ghas/resources/ghas-governance-practice.template.md` records the in-scope repository or service and its criticality
5555
- [ ] Enabled and missing GHAS capabilities are recorded
5656
- [ ] The repository or service owner, security partner, and delivery team are recorded as accountable roles
57-
- [ ] The baseline records least privilege, human accountability for approval and merge, and normal GHAS and PR validation for agent-originated changes
57+
- [ ] The GHAS configuration and ownership record includes least privilege, human accountability for approval and merge, and normal GHAS and PR validation for agent-originated changes
5858
- [ ] Access or licensing blockers are recorded with an owner and target date
5959
- [ ] The target repository is accessible, GHAS enablement is verified or recorded as missing, and the working branch is pushed
6060
- [ ] The delivery environment is usable: `gh auth status` and `gh repo view` succeed, and Juice Shop loads on port 3000 when using the fallback

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
By the end of this activity, the delivery team will have:
66

77
- Selected a real repository or service to govern, or recorded OWASP Juice Shop as the fallback practice target
8-
- Recorded a governed GHAS baseline in `modules/ghas/resources/ghas-governance-practice.template.md`
8+
- Recorded GHAS configuration, scope, and ownership in `modules/ghas/resources/ghas-governance-practice.template.md`
99
- Defined the in-scope repository or service, its criticality, enabled and missing GHAS capabilities, and accountable roles
1010
- Recorded the repository or service owner, security partner, and delivery team accountable for the baseline
1111
- Recorded initial agentic delivery principles: least privilege; humans remain accountable for approval and merge; and agent-originated changes receive normal GHAS and PR validation
@@ -35,11 +35,11 @@ By the end of this activity, the delivery team will have:
3535
3636
---
3737

38-
## Establish the Governed GHAS Baseline
38+
## Record GHAS Configuration and Ownership
3939

4040
Before treating setup as complete, create the first governance record in
4141
`modules/ghas/resources/ghas-governance-practice.template.md`. This is delivery
42-
evidence, not a setup checklist. Record:
42+
record, not a setup checklist. Record:
4343

4444
- the real repository or service selected for this work, or Juice Shop as the fallback;
4545
- the in-scope repository or service and its criticality;
@@ -50,7 +50,7 @@ evidence, not a setup checklist. Record:
5050
validation; and
5151
- every access or licensing blocker, its owner, and its target date.
5252

53-
Use the rest of this activity to substantiate that baseline. If the selected real
53+
Use the rest of this activity to complete that record. If the selected real
5454
repository is not ready for hands-on work, use the Juice Shop repository below as the
5555
practice fallback and keep the real repository or service recorded as the delivery
5656
scope.
@@ -191,7 +191,7 @@ See [`modules/ghas/setup.md`](../../setup.md) for details on how these two envir
191191

192192
## Verify Your Setup
193193

194-
Run each command and use the results to update the governed baseline:
194+
Run each command and use the results to update the GHAS configuration and ownership record:
195195

196196
```bash
197197
# 1. CLI version
@@ -211,16 +211,16 @@ git log --oneline -1
211211
Then open `http://localhost:3000` (or the Codespaces-forwarded URL) and confirm the
212212
Juice Shop homepage loads.
213213

214-
> Do not let a green terminal close this activity. Before moving on, confirm the
215-
> governed baseline names the target and criticality, captures GHAS capability status
214+
> Successful commands alone do not complete this activity. Before moving on, confirm the
215+
> GHAS configuration and ownership record names the target and criticality, captures GHAS capability status
216216
> and accountable roles, records the agentic delivery principles, and assigns every
217217
> access or licensing blocker an owner and target date. See **Common Blockers** in the
218218
> coach guide when setup cannot yet be completed.
219219
220220
## Success Criteria
221221

222222
- [ ] A real repository or service is selected, or Juice Shop is recorded as the fallback practice target
223-
- [ ] The governed baseline in `modules/ghas/resources/ghas-governance-practice.template.md` records the in-scope repository or service and its criticality
223+
- [ ] The GHAS configuration and ownership record in `modules/ghas/resources/ghas-governance-practice.template.md` records the in-scope repository or service and its criticality
224224
- [ ] Enabled and missing GHAS capabilities are recorded
225225
- [ ] The repository or service owner, security partner, and delivery team are recorded as accountable roles
226226
- [ ] The baseline records least privilege, human accountability for approval and merge, and normal GHAS and PR validation for agent-originated changes

modules/ghas/challenges/00-environment-setup/meta.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ prerequisite_capabilities:
1212
- GitHub Advanced Security available for the repository visibility you choose
1313
- GitHub Copilot license assigned
1414
description: >
15-
Establish a governed GHAS baseline for a real repository or service, or use OWASP
15+
Document GHAS configuration, scope, and ownership for a real repository or service, or use OWASP
1616
Juice Shop as the fallback practice target. Record scope, criticality, enabled and
1717
missing GHAS capabilities, accountable roles, agentic delivery principles, and
1818
access or licensing blockers with owners and target dates in
@@ -21,7 +21,7 @@ description: >
2121
Activity S01.
2222
success_criteria:
2323
- "A real repository or service is selected, or Juice Shop is recorded as the fallback practice target"
24-
- "The governed baseline in `modules/ghas/resources/ghas-governance-practice.template.md` records the in-scope repository or service and its criticality"
24+
- "The GHAS configuration and ownership record in `modules/ghas/resources/ghas-governance-practice.template.md` records the in-scope repository or service and its criticality"
2525
- "Enabled and missing GHAS capabilities are recorded"
2626
- "The repository or service owner, security partner, and delivery team are recorded as accountable roles"
2727
- "The baseline records least privilege, human accountability for approval and merge, and normal GHAS and PR validation for agent-originated changes"

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> Audience: facilitators and coaches. Pair with the delivery team member `README.md`.
44
5-
## Grounding conversation (you will be called)
5+
## Required coach check-in
66

77
**Required coach check-in:** before completion, ask the customer practitioner to connect the exercise to work they actually own.
88

@@ -12,13 +12,13 @@ should its next action and target date be?
1212

1313
Use these follow-ups to steer the conversation:
1414
- Which specific repo or service in your work would have the most GHAS alerts today — name it, then describe what kind of code lives there and who owns it.
15-
- For that repo, which alert category — code scanning, Dependabot, or secret scanning — do you think carries the highest real-world blast radius if an attacker found it first?
15+
- For that repo, which alert category — code scanning, Dependabot, or secret scanning — would affect the most systems or data if an attacker found it first?
1616
- Is remediation the right route, or is accepted risk appropriate? Who has authority to own that decision?
1717
- What one concrete action could you take this week to start reducing the security debt you just described?
1818

1919
## Facilitation objectives
2020
- Reinforce how customer delivery team members navigate CodeQL, Dependabot, and secret scanning alerts in the shared repository.
21-
- Help customer delivery team members create an owned security-debt inventory in `modules/ghas/resources/ghas-governance-practice.template.md`, using their application first and Juice Shop only as the fallback.
21+
- Help customer delivery team members create a security findings register with named owners in `modules/ghas/resources/ghas-governance-practice.template.md`, using their application first and Juice Shop only as the fallback.
2222
- Guide impact, remediation route, accountable ownership, target date, current disposition, and prioritization rationale—not vulnerability labels alone.
2323
- Encourage customer delivery team members to use Copilot Chat to explain exploitability, then verify each explanation against the alert and actual code path.
2424

@@ -40,7 +40,7 @@ Verify each success criterion from the customer delivery team guide:
4040
- [ ] A real application repository or service is used first, or Juice Shop is recorded as the fallback practice target
4141
- [ ] At least 5 alerts are reviewed with full alert detail read and used as evidence for the inventory
4242
- [ ] Each reviewed alert has a Copilot explanation of the vulnerability, attacker outcome, and code location that a human verifies against the alert and code path
43-
- [ ] The security-debt inventory in `modules/ghas/resources/ghas-governance-practice.template.md` records alert category or class, affected repository, service, or component, business or security impact, remediation route, accountable owner or team, target date, current disposition, and prioritization rationale for each item
43+
- [ ] The security findings register in `modules/ghas/resources/ghas-governance-practice.template.md` records alert category or class, affected repository, service, or component, business or security impact, remediation route, accountable owner or team, target date, current disposition, and prioritization rationale for each item
4444
- [ ] Each inventory item has a current disposition of open, in progress, or accepted risk and a prioritization rationale
4545
- [ ] Dependabot alerts are reviewed and any critical or high-severity dependency vulnerabilities are recorded in the inventory
4646
- [ ] Coach conversation connects the inventory to a real project, accountable ownership, risk, and next action
@@ -52,4 +52,4 @@ Verify each success criterion from the customer delivery team guide:
5252
| Operable inventory | 25 | Recorded all required fields, including impact, route, owner, date, disposition, and rationale. |
5353
| Copilot-assisted reasoning | 20 | Used Copilot to explain exploitability, then verified the explanation against alert traces and code. |
5454
| Prioritization and risk | 15 | Chose a disposition and priority based on business or security impact, ownership, and remediation route. |
55-
| Grounding conversation | 15 | Connected inventory items to a real team repo or service, accountable ownership, risk, and next action. |
55+
| Coach check-in | 15 | Connected findings to a real team repo or service, accountable ownership, risk, and next action. |

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Before you fix anything, you need to understand what you're dealing with. GHAS i
77
Juice Shop is intentionally vulnerable. The alerts you'll see aren't theoretical — they're real exploitable flaws in real code. SQL injection that lets attackers bypass authentication. XSS that can hijack user sessions. Broken access control that exposes data it shouldn't. Your job in this activity is to read those alerts, open the affected files, and use Copilot to understand exactly what the code is doing wrong.
88

99
This is your reconnaissance phase. Turn the alerts into an owned security-debt
10-
inventory that the delivery team can operate after the session, rather than a
10+
findings register that the delivery team can operate after the session, rather than a
1111
temporary mental model.
1212

1313
> **Before this activity:** Make sure S00 is complete, the org repo exists, required participants have been added, GHAS features are enabled, and you've created your team branch. The Security tab is default-branch oriented. Your branch fixes will be validated later through PR CodeQL checks and code scanning annotations.
@@ -18,7 +18,7 @@ temporary mental model.
1818
- Navigate to the relevant GHAS alerts, including **Security → Code scanning alerts**, and review the open default-branch alerts
1919
- Review at least 5 alerts in full — location, description, and the code path that triggers each finding
2020
- For each reviewed alert, open the affected file in your editor, ask Copilot Chat: *"What does this code do wrong, and how could an attacker exploit it?"*, and verify the explanation against the alert and code path
21-
- Create an owned security-debt inventory in `modules/ghas/resources/ghas-governance-practice.template.md`
21+
- Create a security findings register with named owners in `modules/ghas/resources/ghas-governance-practice.template.md`
2222
- For every inventory item, record the alert category or class, affected repository, service, or component, business or security impact, remediation route, accountable owner or team, target date, current disposition (open, in progress, or accepted risk), and prioritization rationale
2323
- Use the five alert reviews as evidence supporting the inventory and its prioritization
2424
- Check **Security → Dependabot alerts** and record any critical or high-severity dependency vulnerabilities in the inventory
@@ -39,7 +39,7 @@ temporary mental model.
3939
- [ ] A real application repository or service is used first, or Juice Shop is recorded as the fallback practice target
4040
- [ ] At least 5 alerts are reviewed with full alert detail read and used as evidence for the inventory
4141
- [ ] Each reviewed alert has a Copilot explanation of the vulnerability, attacker outcome, and code location that a human verifies against the alert and code path
42-
- [ ] The security-debt inventory in `modules/ghas/resources/ghas-governance-practice.template.md` records alert category or class, affected repository, service, or component, business or security impact, remediation route, accountable owner or team, target date, current disposition, and prioritization rationale for each item
42+
- [ ] The security findings register in `modules/ghas/resources/ghas-governance-practice.template.md` records alert category or class, affected repository, service, or component, business or security impact, remediation route, accountable owner or team, target date, current disposition, and prioritization rationale for each item
4343
- [ ] Each inventory item has a current disposition of open, in progress, or accepted risk and a prioritization rationale
4444
- [ ] Dependabot alerts are reviewed and any critical or high-severity dependency vulnerabilities are recorded in the inventory
4545
- [ ] Coach conversation connects the inventory to a real project, accountable ownership, risk, and next action

modules/ghas/challenges/01-explore-attack-surface/meta.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ description: >
1414
Use a real application repository or service first, with Juice Shop as the fallback
1515
practice target. Review GHAS alerts, verify Copilot explanations against the alert
1616
and code path, and turn at least five alert reviews into evidence for an owned
17-
security-debt inventory in `modules/ghas/resources/ghas-governance-practice.template.md`
17+
security findings register in `modules/ghas/resources/ghas-governance-practice.template.md`
1818
with impact, remediation, ownership, dates, disposition, and prioritization rationale.
1919
success_criteria:
2020
- A real application repository or service is used first, or Juice Shop is recorded as the fallback practice target
2121
- At least 5 alerts are reviewed with full alert detail read and used as evidence for the inventory
2222
- Each reviewed alert has a Copilot explanation of the vulnerability, attacker outcome, and code location that a human verifies against the alert and code path
23-
- The security-debt inventory in `modules/ghas/resources/ghas-governance-practice.template.md` records alert category or class, affected repository, service, or component, business or security impact, remediation route, accountable owner or team, target date, current disposition, and prioritization rationale for each item
23+
- The security findings register in `modules/ghas/resources/ghas-governance-practice.template.md` records alert category or class, affected repository, service, or component, business or security impact, remediation route, accountable owner or team, target date, current disposition, and prioritization rationale for each item
2424
- Each inventory item has a current disposition of open, in progress, or accepted risk and a prioritization rationale
2525
- Dependabot alerts are reviewed and any critical or high-severity dependency vulnerabilities are recorded in the inventory
2626
- Coach conversation connects the inventory to a real project, accountable ownership, risk, and next action

0 commit comments

Comments
 (0)