|
1 | 1 | # OWASP Agentic AI Top 10 — Implementation Guide |
2 | 2 |
|
3 | | -A practical implementation guide for mitigating the [OWASP Agentic AI Top 10](https://owasp.org/www-project-agentic-ai-top-10/) risks using open-source tools. Each risk includes a concrete code example, testing methodology, and references. |
| 3 | +A practical implementation guide for mitigating the [OWASP Agentic AI Top 10](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/) risks using open-source tools. Each risk includes a concrete code example, testing methodology, and references. |
4 | 4 |
|
5 | 5 | This guide is intended as a community contribution — a reference implementation that security teams can adapt to their own agent architectures. |
6 | 6 |
|
@@ -33,7 +33,7 @@ if result.is_injection: |
33 | 33 |
|
34 | 34 | **Testing:** Inject known payloads from [prompt-injection-dataset](https://huggingface.co/datasets/deepset/prompt-injections) and verify detection rate ≥99%. Run canary tokens continuously in production. |
35 | 35 |
|
36 | | -**References:** [OWASP ASI01](https://owasp.org/www-project-agentic-ai-top-10/), [Simon Willison's Prompt Injection](https://simonwillison.net/series/prompt-injection/) |
| 36 | +**References:** [OWASP ASI01](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [Simon Willison's Prompt Injection](https://simonwillison.net/series/prompt-injection/) |
37 | 37 |
|
38 | 38 | --- |
39 | 39 |
|
@@ -62,7 +62,7 @@ result = kernel.execute(ctx, action="deploy", target="production") |
62 | 62 |
|
63 | 63 | **Testing:** Attempt to call each denied capability and verify rejection. Fuzz tool names with typos and synonyms to test bypass resistance. |
64 | 64 |
|
65 | | -**References:** [OWASP ASI02](https://owasp.org/www-project-agentic-ai-top-10/), [Principle of Least Privilege](https://csrc.nist.gov/glossary/term/least_privilege) |
| 65 | +**References:** [OWASP ASI02](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [Principle of Least Privilege](https://csrc.nist.gov/glossary/term/least_privilege) |
66 | 66 |
|
67 | 67 | --- |
68 | 68 |
|
@@ -92,7 +92,7 @@ channel.send(from_agent="agent-a", to_agent="agent-b", |
92 | 92 |
|
93 | 93 | **Testing:** Attempt to send messages with an unregistered agent identity. Verify that messages below the trust threshold are rejected. |
94 | 94 |
|
95 | | -**References:** [OWASP ASI03](https://owasp.org/www-project-agentic-ai-top-10/), [DID Specification](https://www.w3.org/TR/did-core/) |
| 95 | +**References:** [OWASP ASI03](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [DID Specification](https://www.w3.org/TR/did-core/) |
96 | 96 |
|
97 | 97 | --- |
98 | 98 |
|
@@ -123,7 +123,7 @@ assert verified, "Agent identity verification failed" |
123 | 123 |
|
124 | 124 | **Testing:** Attempt to use a revoked or expired DID. Verify that forged DIDs are rejected. Test identity rotation. |
125 | 125 |
|
126 | | -**References:** [OWASP ASI04](https://owasp.org/www-project-agentic-ai-top-10/), [W3C DID Core](https://www.w3.org/TR/did-core/) |
| 126 | +**References:** [OWASP ASI04](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [W3C DID Core](https://www.w3.org/TR/did-core/) |
127 | 127 |
|
128 | 128 | > **Note:** DID-based identity is one approach. For many deployments, mTLS client certificates or SPIFFE identities may be more practical. The key requirement is verifiable, non-repudiable agent identity. |
129 | 129 |
|
@@ -155,7 +155,7 @@ result = sandbox.execute(agent_generated_code) |
155 | 155 |
|
156 | 156 | **Testing:** Attempt to escape the sandbox (network calls, filesystem writes, import os). Verify resource limits are enforced (CPU bomb, memory allocation). |
157 | 157 |
|
158 | | -**References:** [OWASP ASI05](https://owasp.org/www-project-agentic-ai-top-10/) |
| 158 | +**References:** [OWASP ASI05](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/) |
159 | 159 |
|
160 | 160 | --- |
161 | 161 |
|
@@ -184,7 +184,7 @@ result = kernel.execute(ctx, action="delete_data", target="user_records") |
184 | 184 |
|
185 | 185 | **Testing:** Trigger each high-impact action and verify it's held for approval. Test the timeout path (no approval → deny). |
186 | 186 |
|
187 | | -**References:** [OWASP ASI06](https://owasp.org/www-project-agentic-ai-top-10/), [Human-in-the-Loop AI](https://hai.stanford.edu/) |
| 187 | +**References:** [OWASP ASI06](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [Human-in-the-Loop AI](https://hai.stanford.edu/) |
188 | 188 |
|
189 | 189 | --- |
190 | 190 |
|
@@ -216,7 +216,7 @@ output = kernel.filter_output(agent_response) |
216 | 216 |
|
217 | 217 | **Testing:** Include synthetic PII in agent inputs and verify it's redacted in outputs. Test edge cases (PII in base64, PII split across messages). |
218 | 218 |
|
219 | | -**References:** [OWASP ASI07](https://owasp.org/www-project-agentic-ai-top-10/), [GDPR Art. 5](https://gdpr-info.eu/art-5-gdpr/) |
| 219 | +**References:** [OWASP ASI07](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [GDPR Art. 5](https://gdpr-info.eu/art-5-gdpr/) |
220 | 220 |
|
221 | 221 | --- |
222 | 222 |
|
@@ -245,7 +245,7 @@ sre.track(ctx, metrics=["latency", "token_usage", "policy_violations"]) |
245 | 245 |
|
246 | 246 | **Testing:** Execute 100 agent actions and verify 100 audit records exist. Query audit logs by agent_id, time range, and action type. |
247 | 247 |
|
248 | | -**References:** [OWASP ASI08](https://owasp.org/www-project-agentic-ai-top-10/), [OpenTelemetry](https://opentelemetry.io/) |
| 248 | +**References:** [OWASP ASI08](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [OpenTelemetry](https://opentelemetry.io/) |
249 | 249 |
|
250 | 250 | --- |
251 | 251 |
|
@@ -275,7 +275,7 @@ with governor.monitor(agent_id="research-bot"): |
275 | 275 |
|
276 | 276 | **Testing:** Create an agent that deliberately consumes maximum resources. Verify limits are enforced and other agents are unaffected (no noisy neighbor). |
277 | 277 |
|
278 | | -**References:** [OWASP ASI09](https://owasp.org/www-project-agentic-ai-top-10/) |
| 278 | +**References:** [OWASP ASI09](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/) |
279 | 279 |
|
280 | 280 | --- |
281 | 281 |
|
@@ -310,7 +310,7 @@ def call_agent(task): |
310 | 310 |
|
311 | 311 | **Testing:** Inject failures using chaos engineering (Agent SRE) and verify circuit breakers trip correctly. Validate that error budgets are consumed and alerts fire. |
312 | 312 |
|
313 | | -**References:** [OWASP ASI10](https://owasp.org/www-project-agentic-ai-top-10/), [Google SRE Book — Error Budgets](https://sre.google/sre-book/embracing-risk/) |
| 313 | +**References:** [OWASP ASI10](https://genai.owasp.org/2025/12/09/owasp-genai-security-project-releases-top-10-risks-and-mitigations-for-agentic-ai-security/), [Google SRE Book — Error Budgets](https://sre.google/sre-book/embracing-risk/) |
314 | 314 |
|
315 | 315 | --- |
316 | 316 |
|
|
0 commit comments