sharkyger/safe-fetch
GitHub: sharkyger/safe-fetch
一款为 LLM 智能体提供 Docker 隔离抓取与 prompt 注入净化的安全防御工具。
Stars: 0 | Forks: 0
# safe-fetch
用于 LLM 智能体的 Docker 隔离 URL 抓取器,配备第二层 prompt 注入净化器。
## 功能介绍
当 AI 智能体(如 Claude Code、自定义的 LangChain 智能体或你自己的脚本)抓取网页并读取结果时,页面文本会被视为受信任的上下文。**间接 prompt 注入**会将“我读取了一个网页”变成“该网页编写了我的下一条指令”。不可见的 Unicode 字符、隐藏的 HTML、base64 payload、伪造的 LLM 定界符、同形字替换的文本——在这些专门设计的净化器面前,这些特征无一能够幸存。
`safe-fetch ` 会在一个经过严格安全配置的 Docker 容器内抓取页面,运行净化器以剥离已知的注入向量,并将结果包装在不可信内容信封标签中返回,以便调用方智能体将正文视为数据而非指令。这种包装还会中和抓取内容中出现的任何字面信封标签序列(即防信封逃逸防御)。
## 威胁模型
`safe-fetch` 旨在阻止的攻击是实际发生过的,而非理论推演。
AI 智能体读取的内容会成为其工作上下文的一部分——而且事实证明,“模型将网页视为系统 prompt”在开放的互联网上是一种常态,而非极端情况。
**2025–2026 年针对 AI 编码智能体的已记录攻击:**
- **CVE-2025-59536** — 通过 Claude Code 项目文件实现 RCE(远程代码执行)(Check Point Research)。
- **CVE-2026-21852** — 通过 Claude Code 项目文件窃取 API token(Check Point Research)。
- **ChatGPhish**(TheHackerNews,2026-05)—— 攻击者控制的网页会劫持 ChatGPT 的网页浏览工具,在看似“受信任”的响应中对用户进行网络钓鱼。
- **Lasso Security 发布的“Claude 编码助手中隐藏的后门”** —— 无需用户同意即可通过项目上下文进行注入。
- **Anthropic 官方于 2025 年 11 月发布的 prompt 注入防御论文** —— 将 1% 的攻击成功率衡量为“重大风险”,但并未提供相应的开发者工具。而 `safe-fetch` 正是为此而生的开发者工具。
**`safe-fetch` 在净化器层剥离的攻击向量:**
| 向量 | 是否拦截? |
|--------|---------|
| 零宽 Unicode (U+200B, U+200C, U+200D 等) | 是 |
| Bidi 覆盖字符 (U+202E, U+202D) | 是 |
| 标签字符 (U+E0000–E007F) | 是 |
| 变体选择符 | 是 |
| NFKC 可规范化的同形字(拉丁语系中的西里尔字母 'а') | 是 |
| `