UC-002

UC-002: PEP Deny — Rogue Tool Call

Scenario

An AI model attempts to call a file_delete tool that is NOT on the Guardian allowlist. The proxy denies execution and records a deny receipt.

Preconditions

  • HELM proxy running with governance enabled
  • Guardian allowlist does NOT include file_delete
  • Budget NOT exhausted

Steps

  1. Model generates tool_call: file_delete({"path": "/etc/passwd"})
  2. Proxy intercepts the response
  3. Args validated and canonicalized
  4. Guardian checks allowlist → DENY (tool not in allowlist)
  5. ProofGraph node appended with deny status
  6. Deny receipt emitted; upstream response blocked/modified

Assertions

  • Receipt has status: "PROXY_TOOL_DENIED"
  • Receipt has reason_code: "PROXY_TOOL_DENIED" or "TOOL_BLOCKED"
  • No side effects occurred (file NOT deleted)
  • ProofGraph records the deny decision
  • Causal chain maintained (prev_hash links correctly)

Expected Output

{
  "receipt_id": "rcpt_...",
  "tool_name": "file_delete",
  "status": "PROXY_TOOL_DENIED",
  "reason_code": "PROXY_TOOL_DENIED",
  "prev_hash": "sha256:...",
  "lamport": 2
}

Script

See: UC-002_schema_mismatch.sh