bookworm-smart-assistant/docs/audit-out-of-scope.md
Bookworm Admin b7a8e29d21 release: v6.7.0 - OTA E2E test release
- VERSION file as authoritative version source
- export.mjs reads VERSION with package.json fallback
- bw-ota.ps1 DryRun mode for safe testing
- auto-setup.ps1 bumped to v3.2.0 (Phase 8 OTA)
2026-04-27 17:59:44 +08:00

99 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 假阳性模式