前言¶
DeepSeek Harness(DSH)为智能体开发提供基础设施,但在使用过程中,凭证泄露、敏感数据出现在日志或遥测中、以及工具调用被篡改是常见风险。dsh-dlp 是一个用于 DeepSeek Harness 的防数据丢失插件,旨在通过工具警戒线、结果脱敏和遥测脱敏来收紧安全边界。
插件介绍¶
dsh-dlp 是一个非配置的工具警戒线、工具结果脱敏和失败关闭的遥测脱敏工具。它由 CharlotteN7 维护,遵循 MIT 许可证。该插件运行在 DSH 进程内部,用于拦截模型对凭证材料的请求,并对输出中的敏感信息进行清理。
核心功能¶
该插件提供以下核心能力:
- 拒绝凭证文件访问和绑定到网络的密钥:这是插件唯一的无条件限制,通过
ctx.tools.guard()测试路径类型参数。 - 从工具结果中脱敏密钥:在模型读取和会话日志记录之前进行清理,无法清理的部分会 withhold 结果。
- 从步骤输入的消息中脱敏密钥:处理上下文、捕获的终端面板、钩子的
additionalContext等内容。 - 从导出的遥测中脱敏密钥:防止
DSH_TELEMETRY_MODE=FULL将消息文本、工具参数、结果和工作区路径明文发送。 - 检测支付卡号:通过发行人范围、长度和 Luhn 校验位进行检测。
- 剥离不可见字符:移除携带隐藏指令的不可见字符(如 Tags 块、双向控制、变体选择器),并从审计车道剥离终端控制序列。
- 中和远程 Markdown 图片:处理助手输出中的远程图片。
- 检测工具调用重写:检测会话日志记录后其他插件重写的工具调用。
- 改变未来行为的文件写入前询问:在写入配置文件、规则目录、提示模板、Git hooks 等前询问。
- 关闭自身确认的调用前询问:在设置
non_interactive: true、approval_mode: auto或待处理的apply前询问。 - 决策审计记录:为每个决策(包括拒绝、脱敏、询问、重写检测)写入审计记录。
安装与配置¶
安装¶
通过 DSH CLI 安装插件:
dsh plugin --profile <name> add dsh-dlp
配置¶
安装后,需要配置插件参数。以下是一个典型配置示例:
- id: dsh-dlp
config:
aggressiveness: medium # low | medium | high
auditLog: /var/log/dsh-dlp.audit.l
redactionKeyFile: /var/lib/dsh/dsh-dlp.redaction-key
policyFile: ./.dsh-dlp.yml # 可选
breadthTier: true
resultRedaction: true
telemetryRedaction: true
stepContextRedaction: true
claimedInputRedaction: true
configWriteAsk: true
approvalSuppressionAsk: true
参数说明¶
- aggressiveness:激进程度,分为
low(仅保证开关独立)、medium(默认,保证所有开关开启)、high(脱敏用户输入)。 - redactionKeyFile:脱敏密钥文件路径,安装时自动创建 32 字节随机密钥,权限为
0600,不应纳入版本控制。 - auditLog:审计日志路径。
注意事项¶
- 运行模式:插件在进程内运行,不是隔离边界。任何 DSH 进程能执行的命令(如
bash、run_code、挂载的 MCP 服务器)都能读取插件拒绝的文件或打开自己的套接字。插件只能拦截模型通过工具请求的凭证材料,无法阻止已运行的代码。 - 无条件限制:只有“拒绝凭证文件访问”是绝对无条件的。其他限制(如结果脱敏、询问)可以被其他插件注册的监听器覆盖或中和。
- Shell 命令限制:Shell 命令限制是建议性的模式匹配,并非硬性控制。如果路径拼写被修改(如 glob 字符、base64 编码、同形字替换),可能绕过检测。
- 检测机制:检测基于模式,不支持熵规则。编码形式(如 Base64)可以绕过检测,同形字也可以绕过规则。支付卡号检测基于 Luhn 校验和发行人范围。
总结¶
dsh-dlp 通过在 DeepSeek Harness 中增加防数据丢失层,帮助开发者保护敏感信息。它适合需要在日志、遥测和工具结果中防止敏感数据泄露的场景。使用前请仔细阅读源码与许可证,并理解其进程内运行和模式匹配的局限性。
- 目录页:dsh-dlp - SkillHub
- GitHub 仓库:CharlotteN7/dsh-dlp