L07

W14–W15 · 6 hours · complete online handout

Drift, adversarial & governance review

Research question

What can fail, who can be harmed, and what blocks release?
Download offline package
01

Contract

What this lab must demonstrate

  • Test synthetic abuse cases.
  • Map controls and residual risk.
  • Apply status- and jurisdiction-aware governance review.

Prerequisites

  • W14 threat model.
  • W15 governance status/applicability legend.
Equivalent low-compute route

Static synthetic cases, table-top controls, and official-source cards complete the lab.

02

Milestones

Four reviewable checkpoints

The windows are planning budgets, not hidden grading criteria. Pause at every gate; do not compress a failed check into the final submission.

  1. 01

    Freeze scope and trust boundaries

    Work
    Name authorization, assets, actors, affected parties, components, data flows, and trust boundaries before listing failure modes.
    Checkpoint evidence
    Versioned system model and data-flow boundary.
    Advance only when
    No test proceeds against a live or ambiguously authorized target.
  2. 02

    Design inert abuse cases

    Work
    Create at least five non-executable scenario classes spanning evidence integrity, content/instruction separation, privacy, accessibility, status labeling, and dependency risk.
    Checkpoint evidence
    Abuse-case register without payloads, credentials, prompts, or target endpoints.
    Advance only when
    Sensitive mechanics remain abstract and non-operational.
  3. 03

    Test controls and residual risk

    Work
    Map prevention, detection, response, owner, stop, and rollback evidence; retain blocked, detected, and escaped outcomes.
    Checkpoint evidence
    Control-coverage table, test results, and residual-risk scores.
    Advance only when
    An escaped high or critical case blocks release.
  4. 04

    Audit governance and decide

    Work
    Check each law/standard/framework status, jurisdiction, applicability note, claim ceiling, and refresh date; write the decision and playbook.
    Checkpoint evidence
    Governance crosswalk, memo, rollback playbook, and release decision.
    Advance only when
    Status uncertainty, authorization failure, or inaccurate force labeling blocks release.
03

Validation

Checks, pass gate, and assessment

No prohibited/live action appears.

Every high-risk case has a decision and evidence.

Rollback and evidence-preservation steps are testable.

Governance status labels are accurate.

Residual risk is not rewritten as a guarantee.

Pass gate

High-risk tactics cannot pass release; legal/standards status is accurately labeled; residual risk is explicit.

L07 Rubric — 100 points

Rendered from the canonical package rubric. Source SHA-256: 11ba7c84f7ed22ddfb847ceba23a85cff8ca1cd0033bc93e2189f2ef7869a72e.

L07 canonical 100-point assessment rubric
CriterionPointsFull-credit evidence
System and threat model15Assets, actors, affected parties, components, trust boundaries, authorization, and exclusions are explicit.
Abuse-case coverage20At least five inert cases span integrity, privacy, accessibility, instruction, duplicate/dependency, and governance-status risks.
Control-test evidence20Prevention, detection, response, owner, stop, rollback, threshold, result, and residual risk are linked.
Release decision20Escaped high/critical risk blocks release; failures remain visible; conditional states are not guarantees.
Governance crosswalk15Force/status, jurisdiction, applicability, source, date, and claim ceiling are kept separate and refreshed.
Safety and communication10No actionable harmful payload/live test is released; affected-party and accessibility/privacy impacts are clear.

Hard fail pending remediation: unauthorized live testing, harmful payload publication, credential/personal-data use, deleted escape, release despite high residual risk, or inaccurate legal/standards status.

Pass threshold: 70/100 and no hard-fail condition.

04

Handout

Complete browser-readable lab handout

Generated from the same controlled README shipped in the offline package. Source SHA-256: 1fc3c41f82163ae86eaf61a193a1fad2246e72135298f0f857cd0fcc1ee9c187.

On this page 10 sections

Linked course weeks: W14–W15
Expected effort for the full assignment: 6 hours
Core path: inert synthetic cases, offline, deterministic, Python standard library only

Research question

What can fail, who can be harmed, and what blocks release?

Learning objectives

You will learn to:

  1. identify assets, actors, components, and trust boundaries before listing attacks;
  2. connect prevention, detection, response, stop, and rollback controls to testable abuse cases;
  3. preserve control escapes and residual risk rather than converting them into assurances;
  4. make a release decision from a predeclared high-risk blocking rule;
  5. distinguish law, mandatory national standard, international standard, voluntary framework, and internal policy; and
  6. write a governance memo that records applicability uncertainty and refresh dates.

Input contract

  • data/system_model.json: synthetic system scope, authorization, assets, actors, components, and trust boundaries.
  • data/abuse_cases.csv: six inert scenario classes following ../shared/schemas/risk-case.schema.json. No executable prompt, exploit, credential, payload, or target endpoint is included.
  • data/controls.csv: one accountable control per case with prevention, detection, response, stop, rollback, owner, and test threshold.
  • data/test_results.csv: one frozen result per case: blocked, detected, or escaped, with residual severity and likelihood.
  • data/governance_crosswalk.csv: source identity, status label, jurisdiction, as-of date, applicability note, and claim ceiling.
  • ../shared/fixtures/governance_risk_vocabulary.json: frozen severity/likelihood scores, outcomes, force labels, and release-decision vocabulary.

The crosswalk is an as-of teaching record, not legal advice, certification, or a declaration that a source applies to a project. Status refresh and qualified applicability review remain release gates.

Run

python3 scripts/review_risk.py \
  --system data/system_model.json \
  --cases data/abuse_cases.csv \
  --controls data/controls.csv \
  --results data/test_results.csv \
  --governance data/governance_crosswalk.csv \
  --vocabulary ../shared/fixtures/governance_risk_vocabulary.json \
  --output /tmp/geo-l07

The bundled fixture intentionally includes an escaped accessibility/attribution case with high residual risk. Correct behavior is a successful audit whose release decision is BLOCKED.

Output contract

Table from the controlled L07 lab handout
ArtifactContract
threat_model.jsonnormalized scope, assets, actors, components, and trust boundaries
abuse_case_results.csvinitial and residual risk, control outcome, evidence, and release-block flag
control_coverage.csvprevention/detection/response/rollback completeness by control
governance_status_audit.csvstatus labels and applicability boundaries without force collapse
release_decision.jsonBLOCKED, CONDITIONAL, or ELIGIBLE_FOR_HUMAN_REVIEW; never a safety guarantee
governance_memo.mdgenerated review summary and explicit legal/standards caveat
incident_rollback_playbook.mdstop, response, owner, and rollback sequence
run_manifest.jsonhashes and release-block threshold

Full assignment procedure

  1. Freeze the system/data-flow diagram, assets, actors, affected parties, and trust boundaries.
  2. Select at least five synthetic abuse cases spanning evidence integrity, instruction/content separation, privacy, accessibility, status labeling, and dependency/duplicate risk.
  3. Never test a live target; replace sensitive mechanics with inert scenario classes.
  4. Map each case to prevention, detection, response, owner, stop, and rollback evidence.
  5. Execute authorized local tests and retain failures/escapes.
  6. Score residual severity and likelihood after—not before—observing control evidence.
  7. Audit each governance source's legal/standards status, applicability, as-of date, and claim ceiling.
  8. Block release on an escaped high/critical case, unresolved authorization, or inaccurate status label.

Low-compute and no-network route

All cases and results are frozen CSV/JSON. The reviewer performs schema, join, risk-score, status-vocabulary, and release-gate checks without executing any adversarial input, using a model, opening a browser, or contacting a target.

Negative results and interpretation

  • BLOCKED is a valid and expected result when a high-risk control escapes.
  • Detection after exposure is not equivalent to prevention.
  • A passed synthetic case does not cover unknown attacks, different configurations, or future drift.
  • Residual risk is not zero risk; a control list is not implementation evidence.
  • Voluntary guidance is not law, an international standard is not automatic certification, and a mandatory standard still requires scope/applicability analysis.

Safety and stop conditions

No live poisoning, evasion, credential use, harmful-payload release, unauthorized scanning, or third-party testing is permitted. Stop on target ambiguity, personal data, unreviewed harmful detail, unsafe output persistence, status uncertainty, accessibility harm, or failed rollback.

Acceptance

python3 scripts/review_risk.py --system data/system_model.json --cases data/abuse_cases.csv --controls data/controls.csv --results data/test_results.csv --governance data/governance_crosswalk.csv --vocabulary ../shared/fixtures/governance_risk_vocabulary.json --output /tmp/geo-l07
python3 -c 'import json; d=json.load(open("/tmp/geo-l07/release_decision.json")); assert d["audit_status"] == "PASS" and d["release_decision"] == "BLOCKED"'

See RUBRIC.md.

05

Execute

Use one source of executable truth

Ethics and stop condition

No live poisoning, evasion, credentials, harmful payloads, unauthorized tests, or operational exploit instructions.

Optional extension

Add accessibility or multilingual harm cases and update the control/applicability matrix.

The page is the complete reading and planning surface. The versioned package README and scripts remain authoritative for exact local commands, filenames, fixtures, and validation behavior.