一句话总结
LLMVault 是 LLM 应用安全领域的「WebGoat」——25 个精心设计的漏洞实验,从 Prompt 注入到 Agent 越权,每一步既是攻击教学也是防御指南。
为什么 AI 安全突然变得重要?
2026 年上半年,几乎每个科技公司都在往产品里塞 AI 功能——聊天机器人、RAG 知识库、AI Agent 自动化工作流。但安全呢?大多数团队的安全意识还停留在「加个 API key 就行了」的阶段。
就在上个月,一个知名 SaaS 产品的客服 AI 被用户用三句话套出了内部定价策略;另一个公司的 RAG 系统因为向量检索忽略了权限控制,让普通用户搜到了 VIP 客户数据。这些不是科幻小说——它们是 OWASP 在 2025 年发布的 LLM 应用 Top 10 安全风险中明确列出的真实威胁。
OWASP LLM Top 10 (2025) 包括:
- LLM01: Prompt 注入 — 用户通过精心构造的输入劫持模型行为
- LLM02: 敏感信息泄露 — 模型输出包含不应暴露的数据
- LLM03: 供应链风险 — 依赖的模型/插件/数据源被篡改
- LLM04: 数据与模型投毒 — 训练/微调数据被恶意污染
- LLM05: 输出处理不当 — 模型输出未消毒直接执行
- LLM06: 过度代理权 — Agent 拥有超出必要的权限
- LLM07: 系统提示泄露 — 攻击者提取 system prompt 中的敏感信息
- LLM08: 向量与嵌入漏洞 — RAG 检索绕过访问控制
- LLM09: 错误信息 — 模型生成看似可信但实际错误的内容
- LLM10: 无界消费 — 缺乏速率限制导致资源滥用
知道这些风险是一回事,真正理解攻击面并学会防御是另一回事。LLMVault 就是为这个缺口而生的。
LLMVault 是什么?
LLMVault 是一个故意设计为不安全的 LLM 应用训练靶场,采用 CTF(夺旗赛)形式,让开发者通过亲手攻击来理解防御。
核心数据:
- ⭐ GitHub Stars: 50(创建仅 2 天)
- 🐍 技术栈: Python 3.10+ / Docker
- 🏷️ 标签: OWASP, LLM Security, Prompt Injection, RAG Security, CTF
- 🔗 仓库:
github.com/CyberSunil/LLMVault
三层实验体系
| 层级 | 实验数 | 内容 |
|---|---|---|
| 🟢 核心层 | 10 个 | OWASP Top 10 一一对应,每个风险一个独立实验 |
| 🟡 进阶层 | 10 个 | 多轮对话攻击、越狱、数据投毒、模型提取等复杂场景 |
| 🔴 专家层 | 5 个 | 模拟真实攻击链,组合多种技术突破多层防御 |
每个实验都遵循「先攻后防」的教学逻辑:你先作为攻击者突破漏洞,然后查看配套的防御方案(私有解决方案指南),理解修复原理。
核心层实验逐个看
以下是 LLMVault 核心层的 10 个实验概览:
LLM01 — The Obedient Assistant(Prompt 注入)
经典的「忽略之前所有指令」攻击。你需要绕过系统提示的约束,让模型执行本不该执行的操作。这也是现实中最常见的攻击——2025 年针对 ChatGPT 的 jailbreak 尝试超过 1000 万次。
LLM02 — Redaction Theater(敏感信息泄露)
模型被要求输出时对敏感信息脱敏,但通过编码、翻译等技巧可以绕过过滤。实验教你理解为什么简单的后处理过滤不够。
LLM03 — Trust the Manifest?(供应链风险)
模拟一个含有恶意代码的模型依赖——typosquatting、未签名包、供应链投毒。这在 HuggingFace 等开源模型生态中是真实存在的威胁。
LLM04 — The Sleeper Phrase(数据投毒)
在训练数据中植入后门触发词。当模型处理到特定短语时,行为会完全改变。这个实验让你理解为什么数据来源验证和输入消毒同样重要。
LLM05 — Rendered Without Question(输出处理不当)
模型输出的内容未经消毒就被渲染执行——经典的 XSS/注入在 LLM 场景下的重现。如果你把 LLM 输出直接塞进 SQL 查询或 HTML 模板,这个实验会让你警醒。
LLM06 — Keys to the Kingdom(过度代理权)
AI Agent 被赋予了超出必要的工具权限。一个本该只读数据库的 Agent 因为配置错误拥有了 DROP TABLE 权限。这正是 2026 年多个 AI Agent 框架被曝出的安全问题。
LLM07 — Loose Lips(系统提示泄露)
攻击者通过聪明的问答序列提取 system prompt 中的机密信息。API key、内部逻辑、业务规则——一旦泄露,后果严重。
LLM08 — Retrieval Without Borders(向量检索越权)
RAG 系统的向量检索没有考虑文档级别的访问控制。用户 A 可以搜到用户 B 的私人文档——因为向量相似度计算不管权限。
LLM09 — The Yes-Man(错误信息生成)
模型被诱导生成虚假但听起来可信的信息——传谣、编造引用、伪造数据。在医疗、法律、金融等高风险领域,这个风险尤其致命。
LLM10 — Infinite Loop(无界消费)
缺乏速率限制和资源管控,攻击者可以通过大量请求耗尽 API 配额或计算资源。一个简单的 while 循环就能让你的 API 账单爆炸。
为什么 CTF 模式更适合学 AI 安全?
传统的安全培训通常是「看文档 → 做选择题 → 拿证书」。但 AI 安全有它的特殊性:攻击路径不是固定的。
Prompt 注入没有标准答案——你可以用角色扮演、编码绕过、多语言切换、分步指令等几十种手段。只有通过动手尝试,你才能真正理解模型的边界在哪里,防御才不是空中楼阁。
LLMVault 的 CTF 模式恰好契合这一点:
- 每个实验有明确的「flag」需要捕获
- 你的解法不一定和「参考答案」一样
- 攻破后看防御方案,「知其然且知其所以然」
用项目作者的话说:「Learn the fix by practising the break.」
快速上手
# 克隆项目
git clone https://github.com/CyberSunil/LLMVault.git
cd LLMVault
# 用 Docker 启动(推荐)
docker compose up -d
# 浏览器访问
# http://localhost:8080
项目完全 Docker 化,一键启动,不需要配置 LLM API key(内置模拟 LLM 用于训练环境)。Python 3.10+ 和 Docker 是唯一依赖。
适合人群
- LLM 应用开发者:理解你的应用可能被如何攻击
- 安全工程师:扩展到 AI/LLM 安全领域
- AI Agent 开发者:Agent 的权限模型和工具调用是最薄弱的环节
- 技术管理者:建立团队的 AI 安全意识基线
这个项目对新手友好——核心层实验有详细的提示和引导,对老手也有挑战——专家层需要组合多种攻击手段。
同类工具对比
| 平台 | 定位 | LLM 覆盖 | 形式 | 状态 |
|---|---|---|---|---|
| LLMVault | LLM 专用安全靶场 | OWASP Top 10 全覆盖 | CTF | 🟢 活跃 |
| WebGoat | Web 安全教学 | 无 | 交互式教程 | 🟢 成熟 |
| PortSwigger Labs | Web 渗透测试 | 无 | 在线实验 | 🟢 成熟 |
| Gandalf (Lakera) | Prompt 注入游戏 | 仅 LLM01 | 在线闯关 | 🟢 在线 |
目前 LLM 安全培训领域还处于早期——LLMVault 几乎是唯一一个结构化的、本地可部署的 LLM 安全训练平台。如果你用过 WebGoat 学 Web 安全,LLMVault 就是它的 LLM 对应物。
总结
- 🔐 OWASP LLM Top 10 不是理论——每个风险都有真实的攻击案例
- 🎯 LLMVault 用 CTF 模式让 AI 安全学习变得可操作
- 🏗️ Docker 一键部署,零 API 依赖,立即上手
- 📈 AI 安全人才缺口巨大——现在入局正当时
- ⚠️ 仅限授权环境使用——不要对生产系统或他人服务进行测试
数据来源:GitHub API, OWASP LLM Top 10 (2025), CyberSunil/LLMVault README (2026-07-15)