知识库威胁扫描
wesgine 知识库(Knowledge Base)专用的威胁扫描机制(INV-KB-SCAN-02)。
与记忆威胁扫描的区别
| 维度 | 记忆(Memory) | 知识库(KB) |
|---|---|---|
| 扫描器 | ScanThreats()(5 条正则 + invisible unicode) | ScanKBChunk()(仅 private_key PEM 头) |
| 粒度 | 条目级 | Chunk 级 |
| 隔离策略 | 整条拒绝写入 | 仅跳过含私钥的 chunk,其余正常索引 |
| 不变量 | INV-MEM-24 | INV-KB-SCAN-02 |
为什么 KB 不用 Memory 扫描器
Memory 的凭据泄漏检测对文档内容系统性误报:
- 设计文档 DSN 示例 →
connection_string_password命中 - IM 配置模板 →
bearer_token命中 - AWS 示例 key →
aws_access_key命中
实际数据:12/1020 文件被隔离,100% 误报。
KB 扫描规则
仅检测 private_key(PEM 头 -----BEGIN)。
Per-chunk 过滤
- 仅跳过含私钥材料的 chunk
- 其余 chunk 正常索引
- 文件标记
StatusReady(非StatusQuarantined)
历史隔离文件恢复
解除隔离
POST /cells/{id}/knowledge/files/{fileId}/unquarantine
解除隔离并重建索引。
批量重建
POST /cells/{id}/knowledge/reindex-quarantined
批量重建所有隔离文件索引。
Invisible Unicode
KB 扫描器不做 invisible unicode 检测。
理由:U+200D(ZWJ)是 Emoji 组合序列和中文排版工具的合法字符,对 KB 文档是纯误报。
Memory 侧保留 invisible unicode 检测(攻击者用不可见字符混淆关键词是真实威胁向量)。
废弃说明
INV-KB-SCAN-01 已废弃。其注释声称检测 "prompt injection / exfiltration / C2",但 Govern v2 早已移除这些检测。
由 INV-KB-SCAN-02 替代:KB 仅检测 private_key,per-chunk 粒度。