DeepSeek Harness Security
DeepSeek Harness 安全:沙箱、权限与提示词注入
- 作者
- DeepSeekAgent.io 编辑部
- 发布
- 更新
DeepSeek Harness 默认本地运行,但“本地”不等于无害。一个有用的 Coding Agent 会读取文件、启动进程,也可能调用联网工具。它的安全边界由工作区、权限策略、进程沙箱、插件信任、凭证与模型可见内容共同组成。
五层安全边界
1. 工作区
工作区是第一项影响范围决策。应该打开独立项目目录,而不是整个用户主目录。把不可信仓库与凭证目录、其他源码仓库分开。
2. 权限策略
审批用于约束超出当前策略的操作。评估新组合时应保留交互式确认。Full Access 会移除重要的人工检查点,并不会让重复工具调用变得更安全。
3. 进程沙箱
在受支持的 Linux 配置中,Bubblewrap 约束特定子进程。rc.1 通过隔离 PID namespace 修复了可能利用 /proc/<pid>/root 绕过限制的路径。依赖这层边界的用户应升级旧 RC。
但沙箱不是自动套在所有进程内插件外面的万能包装。需要确认到底是哪一个工具启动进程,以及它实际应用了什么策略。
4. Plugin 与 Preset 信任
Cordis Plugin 是可执行代码。Agent Preset 会选择插件与提示段,因此自定义 Preset 的信任等级实际上等于它挂载的能力。YAML 看起来是声明式配置,不代表它没有执行权限。
安装前应检查仓库所有者、包来源、安装脚本、网络请求、文件路径、凭证访问,以及插件运行在 Host Plane,还是仅向 Agent Scope 提供工具。
5. 模型可见内容
网页、仓库文件、MCP 返回值和检索文档可能包含间接指令。模型可能把不可信内容误当成任务要求,再利用合法工具执行违背用户意图的操作。
2026 年 8 月论文 Security Assessment of DeepSeek Harness with A.I.G 在保留 Harness Loop、工具注册表、模型适配器和 Session 事件路径的前提下研究了间接提示词注入。它不是对所有 DSH 配置的通用安全评分,但说明 DSH 安全已经成为可实证研究的话题。
A.I.G 论文实际测试了什么
腾讯朱雀实验室的研究运行了 14,560 次受控测试,覆盖 16 种间接内容通道、文本与文件两种载体、35 类攻击目标、一个未修改基线和 12 种攻击方法。测试使用本地 Fixture 代替真实敏感目标,因此能记录 Agent 的尝试,而不会把实验变成真实外部操作。
论文用规则判断器与语义判断器分别分析执行轨迹,报告的高风险切片包括:
- 文本模式下,Fake-completion 攻击的完整成功率最高达到 17.0%(语义判断器)。
- 文件模式下,隐藏 Unicode 攻击最高达到 25.5%(规则判断器)。
- 文件模式的 Skills 通道最高达到 16.0%(规则判断器)。
这些数字不能简单平均成一个“DSH 安全分”。研究只覆盖一个 DSH 修订版、一个模型后端、一个 Agent Persona 和一个未启用 A.I.G Prompt Hardening 的基线配置。它揭示的是特定内容通道和攻击形式的风险,而不是所有部署的固定失败概率。
研究给出的工程含义
风险链条通常包含三个阶段:不可信内容进入模型上下文、模型把内容解释为指令、随后调用具备影响力的工具。只在 Prompt 中提醒模型“忽略恶意指令”不足以构成完整边界,更可靠的控制点包括:
- 标记网页、文件、检索结果和 Skill 输出的来源与信任等级。
- 在敏感工具调用前重新检查用户意图与数据来源。
- 将写文件、联网、执行命令和读取凭证拆分为独立权限。
- 为不可逆操作保留人工确认,避免模型自己批准自己。
- 用真实 Trajectory 做持续回归测试,而不是只测试最终文本回答。
实用审查清单
- 固定准确的 DSH 与插件版本。
- 修改组合前备份 DSH Home。
- 第一次执行使用可丢弃工作区。
- 阅读
package.json、安装脚本和组合文件。 - 从最窄权限策略开始。
- 不把 API Key 写进 Prompt、仓库或测试 Fixture。
- 出现意外行为后检查 Trajectory 与 Session Log。
- 卸载插件后确认它是否改动了持久设置或文件。
可追踪性帮助调查,但不负责预防
Harness 会把模型可见消息、工具调用、结果和上下文注入写入 Append-only Session Log。这比一次性聊天记录更适合重放和事后分析。但日志不会在有害操作发生前自动阻止它,权限和沙箱边界仍不可替代。
本地插件与外部服务
本地插件可以按照自身权限读取本地数据。Web Tool、MCP Server、外部模型或其他服务可能上传它收到的内容。既要审查本地代码,也要阅读外部服务的数据处理政策。
常见问题
插件会自动运行在沙箱中吗?
不能这样假设。进程沙箱通过特定执行路径生效;进程内插件代码按照 Host 组合的权限运行。
rc.1 的 Bubblewrap 修复能让 DSH 安全运行恶意代码吗?
它关闭了一条重要路径,但整体安全仍取决于配置、内核与平台行为、工具实现和授予权限。
Session Log 能证明 Agent 为什么采取某个动作吗?
它记录模型可见事实和工具活动,是重要证据;但不能单独证明某个隐藏因果解释就是模型做出选择的唯一原因。
论文中的 25.5% 是否代表每四次使用就会中招一次?
不是。25.5% 是特定测试切片中规则判断器观察到的最高值,依赖论文的模型、版本、载体、攻击方法和基线配置,不能外推为日常使用概率。