A practical, defensive playbook for testing and securing LLM-powered apps (chatbots, RAG systems, agentic tools, code assistants) in authorized environments.
This repository focuses on:
- How to test AI systems for common security failures
- What to log + measure
- How to mitigate issues with practical patterns
- Hands-on labs you can run locally
⚠️ Ethics & Scope: This repo is for security testing on systems you own or have explicit permission to test. See docs/scope-and-ethics.md.
- Playbooks → playbooks/
- Checklists → checklists/
- Mitigation patterns → patterns/mitigation-patterns.md
- Local lab → labs/prompt-injection-toy-app/
- Threat modeling → docs/threat-modeling.md
- Prompt injection (direct + indirect via docs)
- Tool abuse (unsafe actions, privilege misuse)
- Tool-output injection (model trusts tool output as instructions)
- RAG overexposure (retrieves sensitive docs / too-broad scope)
- RAG poisoning (malicious documents / source spoofing)
- Sensitive data leakage (system prompts, memory, logs)
- Authz gaps (model can access data the user shouldn’t)
- Insecure AI-generated code (weak crypto, injection, auth flaws)
- Unsafe defaults in production (no rate limits, no monitoring)
- Evaluation blind spots (no regression tests for security failures)
Use the checklists here to systematically test each category.
Untrusted Inputs
(user, files, URLs, tool outputs)
|
v
+-------------+
| LLM APP | <-- prompt assembly, policy, routing
+-------------+
| | |
| | +--> RAG (retrieval + docs)
| +--------> Tools (APIs / actions)
+--------------> Response (user)
Key idea: treat anything untrusted as data, and strictly control how it reaches prompts and tools.
- Prompt Injection: playbooks/prompt-injection.md
- Jailbreaks: playbooks/jailbreaks.md
- Data Leakage: playbooks/data-leakage.md
- Tool / Agent Security: playbooks/tool-use-security.md
- RAG Security: playbooks/rag-security.md
- Code Generation Security: playbooks/code-generation-security.md
- Incident Response: playbooks/incident-response.md
- AI Red Teaming Checklist: checklists/ai-red-teaming-checklist.md
- LLM App Security Review: checklists/llm-app-security-review.md
- Secure Prompting Review: checklists/secure-prompting-review.md
- Attack Taxonomy: patterns/attack-taxonomy.md
- Mitigation Patterns: patterns/mitigation-patterns.md
- Eval Metrics: patterns/eval-metrics.md
- Logging & Monitoring: patterns/logging-and-monitoring.md
- Prompt Injection Toy App: labs/prompt-injection-toy-app/README.md
- RAG Poisoning Simulator: labs/rag-poisoning-simulator/README.md
- Tool Output Injection Simulator: labs/tool-output-injection-simulator/README.md
- Read the guardrails:
- Run a lab locally:
- Use a checklist during reviews:
This repo includes an MkDocs config so you can publish docs via GitHub Pages easily:
mkdocs.ymldocs/index.md
To build locally:
pip install -r docs-requirements.txt
mkdocs serve| GitHub | Role |
|---|---|
| @Jerrycyborg | Creator & Maintainer |
PRs welcome. Please read:
MIT — see LICENSE.