@goodandready/dsh-shadow-auditor
v0.2.14
Published
DSH plugin for background security audits, secret leakage detection, and command safety
Maintainers
Readme
📦 @goodandready/dsh-shadow-auditor
⚡ 插件概览
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📦 安装指南
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。
