READMESource: main@13e15d19
dsh-honey-guard
DeepSeek Harness (DSH) 的蜜罐脱敏插件——在敏感值离开你的机器之前,把它们换成结构合法的假值(Honey-Token),模型、会话文件、日志里见到的全是假货。
它做什么
全自动,装上即生效:插件挂载 DSH 的 agent/pre-step 与 tools/post-execute 事件,对每一条出站消息(用户输入、模型思考、工具调用参数)做模式扫描,命中即替换:
| 检测器 | 识别 |
|---|---|
sk- + 48 位 |
OpenAI / DeepSeek 类 key |
AKIA + 16 位 |
AWS Access Key ID |
ghp_ / github_pat_ |
GitHub token |
Bearer 后长 token |
请求头凭证 |
-----BEGIN PRIVATE KEY----- |
PEM 私钥 |
替换是确定性的:同一会话内同一真实值永远映射到同一蜜罐(模型不会看到两个名字),跨会话不可关联(两份脱敏记录无法被外部比对出用了同一凭证)。蜜罐结构合法——模型拿到 sk- 开头的假 key 不会起疑,只会得到一次正常的认证失败。
显式还原与手动标记
入站自动还原是刻意不做的:还原出的真值下一轮就会被模型再次看到,等于白脱敏。还原与扩展标记走显式工具:
| 工具 | 用途 |
|---|---|
honey_mark |
把检测器认不出的值(内部 token、私有 key 格式)标记为敏感 |
honey_restore |
把蜜罐还原成真实值写回会话记录——用户可见,模型不可见(下一轮重新脱敏) |
honey_stats |
值安全的聚合统计(映射数 / 替换数 / 还原数 / 金丝雀状态) |
另有 Canary Trap:每个会话惰性注册一个永不参与替换的"死蜜罐",在其他会话的文本里出现即告警——说明有记录被跨会话搬运。
安装
dsh plugin --profile desktop add "file:<本项目路径>"
或手动放入 profile 的 node_modules 并在 dsh.profile.bundles 登记。构建与校验:
pnpm install
pnpm run check # typecheck + vitest + tsdown build
架构要点
- Admission-time 替换:出站脱敏发生在消息进入会话之前(
agent/pre-step返回的批次即入会内容),因此会话文件从源头就是蜜罐。 - 区间合并替换:检测器区间与手动标记区间先对原文合并(重叠跳过、长值优先),再一次性 cursor 拼接——蜜罐永不进入被扫描文本。
- 每会话独立映射:
WeakMap<agent, scope>按 agent 对象分桶,被回收自动清理;映射表纯内存,不落盘。 - 值安全:日志、统计、审计事件(
honey/restored)均不含真实值或蜜罐值。
License
MIT
No comments yet. Be the first to write one.