saurabhpati-cybersec/ai-security-lab
GitHub: saurabhpati-cybersec/ai-security-lab
一套为期14天的AI Agent安全实战课程,通过构建、攻击和防御工具调用型Agent,帮助安全工程师系统掌握LLM应用层攻防与检测工程技能。
Stars: 0 | Forks: 0
# ai-security-lab
一个为期 14 天、注重深度的课程,面向通过构建、攻击和防御真实的工具调用型 Agent 来学习 AI Agent 安全的工程师。每个实验都以带有工具的 Agent 为目标——没有仅限聊天的练习。每项防御都附带一个能产出量化指标的评估。本材料专为 SOC 分析师、SOAR 工程师和检测工程师编写,他们已经了解威胁建模和事件响应,并希望将这些技能应用于基于 LLM 的系统。
## 包含内容
| 章节 | 用途 | 关键文件 |
|---|---|---|
| Reference agent (参考 Agent) | 规范 Agent:3 个工具,显式步骤循环,结构化日志 | `agents/reference/` |
| Vulnerable agent (易受攻击的 Agent) | 移除了防御的参考 Agent;攻击目标 | `agents/vulnerable/` |
| Protected agent (受保护的 Agent) | 应用了所有防御的参考 Agent;毕业设计输出 | `agents/protected/` |
| Eval harness (评估套件) | 运行攻击/防御数据集,计算带置信区间的 TPR/FPR/ASR | `evals/harness/` |
| Datasets (数据集) (6 JSONL) | 良性、注入、数据泄露、工具滥用、RAG 投毒、边缘情况 | `evals/datasets/` |
| Detectors (检测器) | 基于规则和 LLM-as-judge (LLM 作为评判者) 的提示注入检测器 | `detectors/` |
| Labs (实验) (day-00–day-14) | 每天一个实验;每个包含任务简报、漏洞利用、防御、评估 | `labs/` |
| SOAR companion (SOAR 配套组件) | 用于 AI Agent 事件响应 (IR) 的 Tines stories 和 XSOAR playbooks | `soar-companion/` |
| Docs / threat model (文档 / 威胁模型) | STRIDE 威胁模型,OWASP 映射,架构说明 | `docs/` |
## 14 天计划
### 阶段 1 – 基础 (第 0–2 天)
| 天数 | 主题 |
|---|---|
| 0 | 真实的自我评估;将知识盲区映射到课程 |
| 1 | STRIDE 威胁模型;OWASP LLM Top 10 映射 |
| 2 | 环境搭建;冒烟测试;端到端评估 |
### 阶段 2 – 攻击 (第 3–7 天)
| 天数 | 攻击类型 |
|---|---|
| 3 | 直接注入:通过系统提示劫持 Agent 任务 |
| 4 | 间接注入:在抓取的页面中嵌入 payload |
| 5 | 工具滥用:强制 `send_message` 执行超出授权范围的操作 |
| 6 | RAG 投毒:在检索语料库中注入对抗性文档 |
| 7 | 数据泄露:通过工具参数通道发生语料库泄露 |
### 阶段 3 – 防御 (第 8–11 天)
| 天数 | 防御措施 |
|---|---|
| 8 | 检测工程:基于规则 + LLM-as-judge,校准 TPR/FPR |
| 9 | I/O 验证:输入白名单,输出数据泄露阻断 |
| 10 | 工具沙箱:每个工具的白名单,预算,出站流量 |
| 11 | 监控与评估:日志摄取,回归关卡 |
### 阶段 4 – 毕业设计 (第 12–14 天)
| 天数 | 任务 |
|---|---|
| 12 | 构建应用了所有阶段 3 防御的受保护 Agent |
| 13 | 对你受保护的 Agent 进行红队测试;测量 ASR 变化 |
| 14 | 撰写报告、OWASP 映射、SOAR playbooks 并发布 |
## Reference agent (参考 Agent)
参考 Agent 暴露了三个工具:`web_fetch`(获取 URL)、`read_doc`(从 RAG 语料库中读取)和 `send_message`(向可配置的 endpoint 发送出站消息)。它运行一个显式的步骤循环——计划、行动、观察、重复——而不是由框架管理的循环,因此控制流可读且易于攻击。
易受攻击和受保护的变体共享相同的工具接口和相同的步骤循环。它们的不同之处仅在于决策点发生的事情:易受攻击的变体跳过所有验证;受保护的变体在每次工具调用之前和每次模型响应之后,将输入和输出传递给检测器和工具网关。
每次执行都会发出结构化的日志事件,包括:`model_call`、`tool_call`、`tool_result`、`detector_hit`、`policy_violation`、`human_review_requested` 和 `final_response`。这些事件提供给评估套件,并可以转发到 SIEM 或 SOAR。
主要模型是 Anthropic claude-sonnet-4-5(或当前的 Sonnet 版本)。通过一个用于规范化 tool-call schema 的轻量级适配器支持 OpenAI 模型;只需切换一个环境变量即可。
## 设置
```
git clone
cd ai-security-lab
cp .env.example .env # add your keys
pip install -r requirements.txt
make test # smoketest
make eval-all # full eval suite
```
## 完成后你可以声称掌握的技能
- 构建并攻击了一个工具调用型 LLM Agent
- 设计了带有校准 TPR/FPR 的注入检测
- 实现了工具网关:白名单、预算、出站流量控制
- 对自己的防御进行了红队测试;测量了前后的 ASR
- 映射到 OWASP LLM Top 10 和 Agentic Top 10
- 编写了用于 AI Agent 事件响应 (IR) 的 Tines + XSOAR playbooks
- 构建了带有 bootstrap 置信区间的评估套件
## 你无法声称掌握的技能
- 生产级别的 RLHF 或微调
- 模型权重级别的对抗性机器学习
- 大规模红队测试基础设施
- LLM 行为的形式化验证
- 真实世界攻击者的驻留时间或横向移动
## 许可证
MIT。致谢:[OWASP LLM Security Project](https://owasp.org/www-project-top-10-for-large-language-model-applications/)、[Simon Willison](https://simonwillison.net/)、[Embrace The Red](https://embracethered.com/) (Johann Rehberger)、[Invariant Labs](https://invariantlabs.ai/)。
标签:AI安全, AI攻防, Chat Copilot, CISA项目, LLM-as-Judge, MCP安全, OWASP Top 10, RAG安全, Red Canary, SOAR, STRIDE模型, Tines, XSOAR, 人工智能安全, 协议分析, 反取证, 合规性, 大模型安全, 威胁建模, 安全实验室, 安全评估, 工具滥用, 数据渗出, 文档安全, 时序数据库, 智能体安全, 权限提升, 私有化部署, 网络安全课程, 逆向工具, 防御规避