跳到正文
dsh-market 浏览插件 GitHub EN

GooDAnDReaDY/dsh-shadow-auditor

DeepSeek Harness 的后台安全审计器:扫描 Agent 输出中的秘密泄漏,在执行前检查命令安全性,并将发现记录到持久化审计日志中。

Star 数 ★ 0 分类 安全与权限 收录于 2026-09-04 npm @goodandready/dsh-shadow-auditor

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add @goodandready/dsh-shadow-auditor

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

README


⚡ 插件概览

dsh-shadow-auditor 为 DeepSeek Harness 智能体提供全时段后台安全审计与高危命令拦截防护。

智能体在编写代码、处理配置或执行 Shell 脚本时,存在误将 API 密钥、私钥凭据提交至代码库或执行破坏性终端命令(如无边界 rm -rf /、数据库删库、敏感权限覆写)的风险。

本插件作为进程级安全防火墙,实时扫描代码 Diff 中的敏感信息,并在终端命令执行前执行语法级安全拦截。

graph LR
    subgraph AgentExecution [智能体操作执行流]
        Agent[🤖 智能体: 编写代码 / 准备执行命令] --> Intercept{安全前置拦截器}
    end

    subgraph SecurityEngines [dsh-shadow-auditor 引擎]
        Intercept --> SecretScan[🔑 敏感凭据与 API Key 扫描器]
        Intercept --> CmdGuard[🛡️ 高危终端命令安全防火墙]
    end

    subgraph Enforcement [阻断与日志审计]
        SecretScan -->|安全| Pass[✅ 放行执行]
        SecretScan -->|检测到泄漏| Block1[⛔ 实时阻断并脱敏敏感信息]
        CmdGuard -->|安全| Pass
        CmdGuard -->|高危风险| Block2[⛔ 阻断执行并要求人工确认]
        Block1 --> AuditLog[📋 安全审计日志与可视化面板]
        Block2 --> AuditLog
    end

    style AgentExecution fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4
    style SecurityEngines fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4
    style Enforcement fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4

✨ 核心特性

1. 🔑 密钥与敏感凭据前置扫描

  • 实时正则与香农熵扫描 API 密钥、私有令牌、RSA/SSH 密钥与数据库凭据;
  • 在传输至大模型或写入版本控制前提前拦截;
  • 审计日志自动掩码与脱敏。

2. 🛡️ 破坏性命令安全防火墙

  • 在终端执行前分析 Shell 命令语法与参数;
  • 拦截高危危险命令(无界 rm -rf、清空磁盘、fork 炸弹、危险 dd);
  • 工作区边界防护 (#103):严格拦截针对系统根路径或解析超出当前会话工作区外的递归删除命令;
  • 关键系统路径保护 (#105):无条件保护敏感核心目录 (~/.dsh, ~/.claude, ~/.ssh, /etc, /usr, Windows 系统目录);
  • 试运行标志放行 (#104):自动识别预检标志 (-WhatIf, -Confirm, --dry-run, git clean -n),允许安全预检而无需触发误拦截。

📦 安装指南

dsh plugin --profile web add @goodandready/dsh-shadow-auditor


🔄 版本记录

v0.2.9 (安全功能演进与规范语言支持)

  • 规范语言标准:代码及界面全面支持英文(en)与中文(zh);俄语本地化通过 goodandready/dsh-russian-lang 维护。
  • 发布包规范:彻底清除 AGENTS.md 与 index.md 等非产品文件;严格执行单个文件 $\le 256$ KiB 上限。
  • 实时拦截与审计日志流:支持按全部、Shell 防护、差异网关和高风险进行分类过滤与刷新。
  • 自定义安全策略:支持命令与敏感路径的自定义正则表达式黑名单,并提供强制阻断与仅审计模式。
  • 差异网关可视化检查与修复建议:展示可疑代码行高亮及安全替代建议(Safe Remediation)。
  • 文件完整性与敏感锚点监控:主动拦截对 .env、settings.yaml 及密钥文件的读写尝试。
  • 合规审计导出:界面一键导出 JSON 日志或 Markdown 审计对账单。

v0.2.8 (界面统一与设置同步)

  • 统一UI设计风格(对齐 dsh-clinebot):采用原生 DSH 设计令牌,将设置页面重构为4个结构化卡片分区,提供一致的网格布局、状态徽标与表单控件。
  • 完整的配置响应式同步:草稿状态完整支持 diffGateMode、enableSastScan 和 enablePromptInjectionScan 的持久化保存。
  • 异常处理增强:消除静默 catch 代码块,增加规范的日志记录。
  • 测试覆盖扩充:新增 test/ui-and-stability-028.test.mjs 测试套件(26项测试全部通过)。

v0.2.7 (稳定性与误报优化)

  • 消除 secret-write 误报:不再对 check_token.js 或 test_secret.py 误报拦截,仅严格保护 .env、.credentials、SSH密钥等核心凭据。
  • SAST 注释智能过滤:包含 SQL 关键字或 eval 示例的注释不再触发误报;允许通过 import.meta.url 和 __dirname 进行安全相对路径解析。
  • Diff 门禁资源保护:超长行(>2048字符)截断扫描防卡死;测试文件自动跳过 prompt injection 检查。
  • 安全 /audit 命令:默认加载最近 50 条记录,防止大日志导致内存溢出(支持 --all)。
  • 后台标签页轮询节流:网页不可见时自动暂停状态轮询。

v0.2.4 (DSH 插件规范修复与设置卡片优化)

  • Web UI 设置卡片参数补齐: 在前端卡片中完整支持审计日志参数 (enableAuditLog 启用日志、maxFileSizeMb 文件大小上限、retentionDays 归档保存天数),并支持中英俄本地化 (#34)。
  • 消除双重插槽注册: 移除了针对 settings.section 的 setTimeout 延迟回退机制,确保卡片原子化、稳定注入至 settings.plugin.item (#35)。
  • 配置不可用时禁用表单: 当设置快照处于 unavailable 状态时,表单控件与保存按钮自动禁用 (disabled: true) 并显示不可用提示 (#32)。
  • 清理无用对等依赖: 从 package.json 的 peerDependencies 中移除了未引用的 @deepseek-ai/dsh-credentials (#33)。
  • 样式隔离: 为 <style> 标签附加 data-dsh-plugin="dsh-shadow-auditor" 属性,防止被相邻插件清理。
  • 设计契约: 新增 docs/design/DESIGN.md,确立界面契约与状态流转规范。

v0.2.3 (网络外发误报热修复)

  • 消除合法 API 调用的误报: 允许通过 shell 从本地凭据配置读取密钥并作为请求头传入 (如 K=$(grep KEY ~/.dsh/.credentials.yaml) && curl ... -H "Authorization: Bearer $K").
  • 精确网络外发攻击分析: 仅针对将凭据文件本身作为负载传输 (-d @.env, -F file=@..., --post-file=...)、直接管道传输 (cat .env | curl/nc)、输入重定向 (< .env) 以及远程文件拷贝 (scp/rsync) 进行阻断。

v0.2.0 (全功能审计套件、风险评分与外发防护)

  • DSH 聊天斜杠命令 /audit: 在对话中直接生成详尽的运维风险账单 (Operation Bill)——汇总工具调用次数、风险评分 (0–100)、可疑调用明细表以及被拦截的危险指令。支持参数:--turn (仅限当轮)、--all (全量历史)、--json、--since=YYYY-MM-DD。
  • 持久化审计归档 AuditRecorder: 将调用事件以 JSONL 格式保存在 <DSH_HOME>/shadow-auditor/<yyyy-mm>.jsonl 中,依托 Promise 写入队列消除并发竞争,单文件超过 50 MB 自动 .gz 压缩并保留 30 天。
  • 深层内核遥测钩子: 全局监听 tools/result 获取工具真实执行结果 (result.isError) 与脱敏报错信息,并通过 session/event (turn/end) 精确切分交互轮次。
  • 凭据网络外发防御: 拦截携带敏感凭据文件 (.env, id_rsa, .git-credentials 等) 的网络工具调用 (curl, wget, scp, ssh, nc, socat)。
  • 越界重定向防御: 拦截指向工作区外部(如 /etc/, ~/.bashrc, %USERPROFILE%, cron)的 shell 输出重定向 (> 与 >>)。
  • 智能 git push --force: 严格锁定受保护分支 (main, master, prod) 及受控远端的强制推送,同时保留开发者本地特性分支的自由 rebase 能力。
  • 确定性风险评分 (0–100): 无需消耗大模型 token 的快速风险定级引擎,配备 10 分钟滑动窗口识别高频同类操作与连续高危行为。
  • 不动点递归脱敏: redactText / redactValue 模块递归清理深层嵌套结构中的 token、密码及 .env 敏感赋值,直至数据完全收敛。

v0.2.6 (代码安全 Diff 门禁与 SAST 引擎)

  • 代码安全 Diff 门禁 (lib/diff-gate/): 在代理操作确认边界处对补丁和文件变更进行多类别静态分析。
  • 规范化发现模型: 稳定规则标识符 (SEC-*, SAST-*, PI-*)、严重性评级、风险解释与修复建议。
  • 增强型凭证扫描器: 支持香农熵检测及高熵密钥识别。
  • 轻量级 SAST 规则集: 检测 SQL 注入、命令注入、路径遍历、硬编码密码与 eval 代码执行。
  • 提示词注入启发式扫描: 识别隐藏在代码变更中的越狱与系统提示词窃取指令。
  • 门禁策略 (disabled, warning, block): 可在设置面板配置,block 模式可阻断高危漏洞。
  • 行内误报抑制: 支持 // shadow-audit-ignore: <ruleId> 局部忽略规则。

v0.2.5 (稳定性、内存管理与UI盾牌组件重构)

  • 会话头部安全盾牌插槽 (conversation.session.header.utilities): 注入实时 AuditShieldChip 组件,显示安全状态与快速审计弹窗。
  • 审计日志 OOM 防护: AuditRecorder 增加 readRecent(limit),默认仅读取近期记录,不再解压历史 .gz 文件。
  • 斜杠命令 --limit=N: /audit 默认显示最近 50 条记录。
  • 内存泄漏清理: 增加会话生命周期监听与 LRU 缓存上限。
  • 消除命令误报: 允许 grep -i kill 与 systemctl status。
  • 移除冗余工具: 移除 shadow_auditor_rules_list 降低模型提示词负担。

v0.1.4 (设置插槽注册热修复)

  • 声明感知的插槽注入 (settings.plugin.item): 设置卡片注册全面迁移至 ctx.slots.inject,彻底解决在父级插槽尚未声明时直接注册导致的加载器崩溃 (slot is not declared)。
  • 后备设置项 (settings.section): 在当前 DSH 构建缺少插件卡片插槽时,自动降级至独立设置分区,并通过 ctx.effect 安全管理生命周期。

v0.1.3 (安全加固与稳定性修复)

  • 复合命令链式分析 (findDangerous): 解析 &&、||、; 和换行续行命令,杜绝利用白名单安全命令掩盖高危操作 (systemctl status && rm -rf /) 的绕过漏洞。
  • 精准密钥过滤 (scanSecrets): 修复包含 "example" 子串的真实有效密钥被误放行的问题。
  • 敏感凭据脱敏保护 (maskSecret): 拦截到的密钥在存入审计日志、HTTP API 返回及 Web UI 渲染前均执行脱敏 (sk-pr...****...1234)。
  • 文件全量扫描: 移除文件写入/编辑时 8 KB 的扫描上限截断,完整检测任意体积的文件。
  • Cordis 生命周期与上下文完善: 工具注册统一交由 ctx.effect 管理,支持热重载注销;修复 approval/asked 事件上下文。
  • Web UI 体验与内存泄漏优化: 移除导致表单编辑冲突的定时重置逻辑,仅在面板展开时轮询审计接口,防止组件卸载时发生内存泄漏。
  • API 缓存控制: 为 /dsh-shadow-auditor/audit 路由显式增加 Cache-Control: no-store 标头。

📄 开源协议

MIT © GooDAnDReaDY

v0.2.11 变更

  • 审计发现描述全面标准化为英文与中文,代码库零西里尔字母 (#47)
  • 设置卡片支持一键检查与平滑升级模块 (#48)
  • 加固 HTTP 路由:限制 GET 方法并实施严格调用来源校验 (#49)
  • 将内部规划文档从 git 跟踪与 npm 发布包中剔除 (#50)
  • 清理工作树中残留的历史版本 .tgz 压缩包 (#51)
  • 全面迁移至 DSH 原生 CSS 变量与设计令牌,消除硬编码颜色 (#52)
  • 在 package.json 中补齐声明客户端 inject 依赖清单 (#53)
  • 新增持久化审计写入故障监控与不可读行数统计指标 (#54)
  • 使用 ctx.effect 包装语言注册并在插件卸载时安全清理 (#55)

v0.2.10 变更

本版本修复两种命令防护误报,保留递归删除和受保护文件写入防护,并为尽力而为的失败添加安全调试诊断。

当没有递归标志时,命令防火墙允许 rm -f;仍会拦截 rm -r、rm -rf,以及组合或分开的递归标志。受保护文件写入检查按 shell 命令和管道阶段分别执行,因此前一条命令的 stderr 重定向不会误影响后续读取。使用 grep、cat 或非原地 sed 读取 settings.yaml 可以通过;重定向、tee 和原地编辑等写入仍会拦截。

分析器会识别引号和转义分隔符。这些改动不改变网络、SQL、服务控制、受保护 Git、设备写入或工作区逃逸规则。命令检查是有界分析,并非完整 Bash AST。

内容来自项目 README(GitHub)↗

评论

评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。