# 📦 @goodandready/dsh-shadow-auditor
---
## ⚡ 插件概览
**`dsh-shadow-auditor`** 为 **DeepSeek Harness** 智能体提供全时段后台安全审计与高危命令拦截防护。
智能体在编写代码、处理配置或执行 Shell 脚本时,存在误将 API 密钥、私钥凭据提交至代码库或执行破坏性终端命令(如无边界 `rm -rf /`、数据库删库、敏感权限覆写)的风险。
本插件作为进程级安全防火墙,实时扫描代码 Diff 中的敏感信息,并在终端命令执行前执行语法级安全拦截。
```mermaid
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`),允许安全预检而无需触发误拦截。
### 3. 🪝 多阶段生命周期拦截引擎 (`lib/guards/lifecycle-hooks.js`)
* **优先拦截注册 (`prepend: true`)** (#125):确保安全钩子位于 Cordis 处理器队列首位,先于第三方插件执行;
* **无条件严重威胁阻断 (`secretBlockCritical`)** (#124):针对系统根破坏、磁盘格式化、AWS及私钥外发等高危行为,即使处于 `audit_only` 或 `warning` 模式亦强制阻断;
* **用户交互审批模式 (`ask`)** (#108):在 `tools/pre-execute` 阶段与 DSH 审批机制无缝联动,高危操作返回 `{ kind: 'ask', reason, displayReason }` 请求用户确认;
* **用户输入提示词前置过滤 (`agent/pre-step`)** (#110):在大模型处理前扫描用户消息,及时拦截 Prompt 注入与越狱攻击 (`{ kind: 'reject' }`);
### 4. 🔒 可逆脱敏与占位符引擎 (`lib/mask/`)
* **单调递增占位符与实体复用** (#126, #127):在 `agent/pre-step` 阶段自动扫描提示词,将 API 密钥、私钥、邮箱、IPv4 及电话替换为单调占位符(``, ``, ``);同一会话内相同实体自动复用既有占位符;
* **长度降序消除前缀碰撞** (#128):恢复解密时按占位符长度严格降序处理(优先替换 `` 再处理 ``),避免子串切片破坏;
* **会话还原命令** (#136):授权用户可在终端通过斜杠命令本地还原原始内容:
```text
/shadow-auditor restore
```
* **会话日志零泄露不变量** (#135):发送给大模型的上下文和本地落盘的 JSONL 日志中绝不包含明文机密。
---
## 📦 安装指南
```bash
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)。
* **样式隔离**: 为 `