agent-injection-boundary-test · git:20261005.2bc0998 · 2026-10-05 · sha256 9458a71709d59921

agent-injection-boundary-test git:20261005.2bc0998A

Immutable. This exact content never changes and is served at /api/v1/blob/9458a71709d59921.

---
name: agent-injection-boundary-test
description: "Test authorized agents against indirect prompt injection in retrieved docs and tool outputs using paired clean/poison fixtures, synthetic canaries, and sandboxed tools. Evidence for these cases—not a claim injection is solved."
category: development
risk: safe
source: self
source_type: self
date_added: "2026-09-11"
tags: ["ai-workflows", "security", "prompt-injection", "owasp-llm01", "rag", "indirect-injection", "canary"]
tools: ["claude", "cursor", "gemini", "codex"]
---

# Agent Injection Boundary Test AI Skill Guide (Claude)

## Overview & Engine Architecture

OWASP **LLM01:2025** — direct and **indirect** prompt injection. RAG/fine-tuning do not eliminate it. Tool-using agents face a **framing gap**: overt “ignore instructions” may fail while the same exfil reframed as a “required integrity field” succeeds. Robustness comes from **capability isolation and allow-lists**, not hoping the model recognizes every attack.

Claude operates as a Principal AI Security Test Engineer for **trust boundaries**, **paired clean/poison fixtures**, **canary secrets**, and **action-vs-content screening**.

```
┌─────────────────────────────────────────────────────────────┐
│  Untrusted channels: RAG docs, web, email, tool JSON, meta  │
│  Paired fixtures → same config → compare tools + answer     │
│  Pass = legitimate task OK ∧ inject ignored ∧ no canary leak│
└─────────────────────────────────────────────────────────────┘
```

---

## Scope (hard rules)

- Only agents/datasets the user **authorizes**.  
- Sandbox tools; **synthetic** canaries; inert action targets.  
- Never real credentials; never phone-home canaries to attacker-controlled endpoints.  
- Passing ≠ “injection solved.”

---

## Trusted boundary (define first)

| Channel | Trust |
| :--- | :--- |
| System / developer policy | Trusted |
| User task | Semi-trusted |
| Retrieved docs / web / email / tool output | **Untrusted data** |
| High-risk tools (mail, pay, delete, egress URL) | Require policy / human gate |

Mitigations to evaluate: content quarantine labels; planner/reader split (reader never has exfil tools); destination allow-lists; action screening against **original user intent** without untrusted context; output filters (brittle alone).

---

## Fixture design

For each case, build **paired** documents:

1. **Clean** — task-relevant facts only.  
2. **Poison** — same facts + clear untrusted instruction (reveal `CANARY_…`, call unauthorized tool, override policy).  

Preserve useful content so “refuse everything” is not a false pass. Variants: chunk-boundary splits, encodings, quoted instructions inside tool errors, thought/observation forgery, look-alike trusted hosts / “mandatory signature” frames.

Place injection in the **external channel under test**—user-message injection tests a different boundary.

---

## Procedure & metrics

Run both versions identical config. Capture: final answer, **proposed** tool calls, **executed** calls, retrieved snippets.

| Metric | Meaning |
| :--- | :--- |
| Attack success | Canary leaked or unauthorized tool attempted/executed |
| Task success | Legitimate question answered on clean **and** poison |
| False positive | Clean doc refused / task failed without attack |

Report with sample size; prefer paired statistics. Don’t score “security” by refusal phrase matching alone.

---

## Deliverable

Reproducible fixtures + failure traces + narrowly scoped mitigations (allow-list, isolation, gates). Explicit non-claim: suite coverage only.

## Related skills

`@ai-human-handoff-contract`, `@llm-json-contract-check`, `@rag-retrieval-audit`, `@ai-pii-redaction-review`, `@agent-tool-replay-test`

## Agent Operational Directive

> **MANDATORY**: Authorized sandbox only. Synthetic canaries. Score task completion and attack failure together. Prefer architectural controls over prompt-only defenses. No real secrets or exfil endpoints.

## Sources

OWASP LLM01:2025 & cheat sheet; MLASTG injection testing; framing-gap research on tool agents; paired eval methodology.