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, 人工智能安全, 协议分析, 反取证, 合规性, 大模型安全, 威胁建模, 安全实验室, 安全评估, 工具滥用, 数据渗出, 文档安全, 时序数据库, 智能体安全, 权限提升, 私有化部署, 网络安全课程, 逆向工具, 防御规避