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 可规范化的同形字(拉丁语系中的西里尔字母 'а') | 是 | | `