dsh-audit

August 29, 2026 · View on GitHub

极轻量的 DSH 会话数据流审计探针(被动检测,不拦截、不修改)。

在 dsh 内部订阅 session/event(核心数据流写入的唯一观测点),把每条会话事件 的元数据 + 内容哈希记录到审计文件;对用户/助手/工具等核心事件额外扫描 敏感凭据模式并打标记。日常完全隐形,零业务影响。

只做被动记录,不做主动拦截。 它回答"数据何时流经、被谁触达、是否疑似携带 凭据",用于时间线溯源 / 篡改检测 / 插件冲突定位。真正拦截(如阻止 apikey 外传) 属于主动防御,另行设计,不在此插件内。

记录什么

每条事件一行 JSON(默认不记原文,只记哈希,轻量且不泄露对话内容):

{"t":1724900000000,"sid":"session-xxx","seq":42,"type":"user/message","core":1,"h":"a1b2c3..."}
{"t":1724900001000,"sid":"session-xxx","seq":43,"type":"assistant/message","core":1,"h":"d4e5f6...","flags":["credential"]}
  • core:user/message / assistant/message / assistant/chunk / tool/call / tool/result
  • flags:["credential"]:内容命中敏感凭据模式(如 DEEPSEEK_API_KEYsk-...Bearer ...)——供启动器或用户判断是否存在凭据泄漏风险

审计文件位置

<DSH_HOME>/audit/session.jsonl(默认 ~/.dsh/audit/session.jsonl),按批异步写入。

安装

通过 dsh plugin add 安装(github 源):

dsh plugin --profile <profile> add github:MarcoG-h/dsh-audit

或在启动器插件市场里添加该 github 源。

配置

无(开箱即用)。审计目录可用环境变量 DSH_HOME 决定(跟随 dsh home)。

轻量化保证

  • 只订阅、不拦截:不参与会话流程,不拖慢任何事件
  • 只记元数据 + 内容哈希:O(n) 哈希,不存原文,不泄露对话内容
  • 异步批量落盘:满 64 条或 200ms flush,不阻塞事件管道
  • 无 UI、无依赖、异常静默:审计失败绝不影响会话

License

MIT