bookworm-smart-assistant/docs/audit-out-of-scope.md

99 lines
4.5 KiB
Markdown
Raw Permalink Normal View History

# Bookworm 审计 Out-of-Scope 列表
> **本文件由 SECURITY.md 与 AI-CONSTITUTION.md 共同引用。**
> 列出"看似漏洞实为设计选择"的场景,避免红队/自审 Agent 重复争议。
>
> 借鉴自 OpenClaw.ai SECURITY.md (329 行同类列表),结合 Bookworm 单用户系统裁剪。
## 适用范围
适用于以下 Agent / Skill 的发现报告:
- `red-team-attacker`
- `red-team-logic`
- `self-auditor`
- `production-reviewer`
- `code-reviewer`
- `security-expert`
发现项落入以下任一类别 → 标记 `OOS`,不计入红队评分,不写入 evolution-log violation。
## 不视为漏洞的场景10 类)
### 1. Prompt Injection Only
不结合钩子边界 / 路由策略 / 凭证泄漏链路的纯提示词注入。
> 必须**演示一条从 prompt → 凭证泄漏 / RCE / 路由错误引导 / 数据破坏**的完整链路才是漏洞。
### 2. 本地 hook 被攻击者改写
`~/.claude/hooks/*.js` 已是受信任本地状态。报告必须先证明"如何获得 hook 写权限",否则属设计内行为。
### 3. MEMORY.md / evolution-log.jsonl 投毒
工作区文件等于操作员状态。除非展示**外部触发**写入路径(如某 hook 接收远程数据后写入),否则属设计内。
> 例外:`bookworm.security.jsonlHmac` enforce 模式启用后,离线追加篡改属漏洞。
### 4. 白名单技能内 `child_process` / `eval`
`developer-expert` / `bash` 等白名单 skill 显式允许执行用户代码。属设计选择。
### 5. PostToolUse 钩子 fail-open
设计为非阻断式审计。除非 PreToolUse 阶段被绕过(这才是漏洞),否则不计。
> 例外:`bookworm.security.failClosed` enforce 模式启用后,关键 PreToolUse hook 异常将拒绝。
### 6. stats-compiled.json / skill-registry 缓存陈旧
由 self-auditor / self-healer 周期性修复。陈旧本身不视为漏洞。
### 7. MCP Server 自身漏洞
上游 MCP 项目责任。请向对应项目报告。Bookworm 仅负责 MCP 调用边界safety-gate 等)。
### 8. 路由准确率 < 100%
基于 Bayesian 后验的概率系统5-10% 漂移属正常。具体阈值见 `evolution-log.jsonl` 历史 P@1 实测。
### 9. 临时 / 低质量复现
缺少明确文件:行号 + 可复现 PoC 的报告会被关闭为 `invalid`
### 10. 非 ~/.claude/ 范围的 OS 安全问题
应向 OS / Anthropic Claude Code 报告。
-Windows ACL 默认继承、Node.js 自身 CVE、shell escape 等
## 已知虚假阳性模式(自审钩子常见)
按红队识别频次降序:
| 模式 | 触发位置 | 假阳性原因 |
|---|---|---|
| Base64 长串误判为密钥 | `sanitize.js` `[A-Za-z0-9+/]{64,}` | Git SHA / commit hash / base64 编码内容(已在 v6.0 收紧到 64 字节阈值)|
| URL path 误判为 Bearer | `Bearer\s+\S{10,}` | 已在 v6.0 收紧为 `[A-Za-z0-9._\-+=]{18,}` |
| 测试 fixture token | `*.test.js``sk-...` | 含 `// pragma: allowlist secret` 注释 |
| `__proto__` 字面量 | 防御机制本身的对抗测试 | 验证防御需要这些字符串 |
| Hook 修改后 integrity-check 警告 | `hooks/integrity-check.js` | 用户合法修改后需手动跑 `--generate` 更新基线 |
| evolution-log 历史粘连行 | line 55-58 | 旧 hook 写入未加 `\n`,已由 P1.2 relinify 修复 |
## 审计接收门槛(必须满足)
接受报告必须含:
- **位置**:精确文件路径 + 行号(基于当前 HEAD
- **可复现 PoC**:脚本或步骤可在本机验证
- **影响**:明确的信任边界跨越
- **不被本文件 OOS 列表覆盖**
不达上述门槛 → 关闭。
## 真实威胁面(已记录,可重复扫描)
按红队评估,以下是 Bookworm 真实攻击向量(详见 `evolution-log.jsonl`
1. ~~凭证文件 644 权限~~(已修复 2026-04-25icacls 收紧)
2. **evolution-log/route-feedback HMAC 链** — warn 期间 7 天观察2026-05-02 到期)
3. **route-feedback.jsonl racelockfile DoS** — 待修
4. **关键 hook 普遍 fail-open** — warn 期间 7 天观察2026-05-02 到期)
5. ~~history.jsonl 31 处凭证泄漏~~(已修复 2026-04-25sanitize v6.0 清洗)
## 引用关系
- `SECURITY.md` § "Out-of-Scope" → 引用本文件
- `AI-CONSTITUTION.md` § 1.3 安全红线 → 与本文件互补(红线是必须做,本文件是"不计入漏洞"
- `red-team-attacker` / `red-team-logic` Agent prompt → 应在系统提示中读本文件作为 baseline
## 修订历史
- 2026-04-25 v1.0:从 OpenClaw.ai SECURITY.md 借鉴落地,初始 10 类 + 6 假阳性模式