vuln-scan (漏洞扫描)
只读静态源码漏洞扫描:按攻击面分区并行派发审查子代理,产出 VULN-FINDINGS.json + .md,经独立置信度排序后交给 /triage 验证,是威胁建模→扫描→分诊→修复链路中的静态筛选环节。
仓库:anthropics/defending-code-reference-harness
热度证据:官方安全参考仓库 7,019 star,与自动漏洞扫描 harness 配套
五维评分
热度4/5
质量5/5
创新4/5
易用4/5
文档5/5
优秀点拆解
- 只读安全边界:allowed-tools 白名单仅放 Read/Glob/Grep/Write/Task 与五个只读 Bash 前缀,明确禁止执行目标代码,可安全扫描不信任代码,无需 sandbox
- 显式反误报工程:review brief 内置 DO-NOT-REPORT 排除表(DoS、memory-safe 越界、框架自动转义、测试文件等 7 类),并把召回优先(不确定就报低置信度)与精确决策(triage 验证)分配在不同环节
- 两级子代理架构:Step 2 按 focus area 并行扇出(上限 10,小目标自动退化单轮),Step 3b 逐 finding 派独立子代理 1-10 打分重排,Nothing is dropped 只排序,主会话上下文保持干净
- 文件即接口契约:VULN-FINDINGS.json 的 schema 与 /triage 的 ingest 形状对齐,Step 1 优先消费 THREAT_MODEL.md 的 section 3/4 表格,产出可直接被下游工具消费
- 防幻觉纪律:禁止编造 file:line(必须来自真实 Read/Grep),开头即声明不执行代码并把验证类需求转介 vuln-pipeline,附 Provenance 交代 prompt 来源
可复用的设计模式
- 发现→排序两段式流水线:第一段并行扇出保证召回,第二段逐条独立评分校准精度,主流程只归并不删减
- 三级分类审查清单模板:HIGH VALUE(深挖)/ LOW VALUE(带过)/ DO-NOT-REPORT(排除+理由),配「不确定就报低置信度」兜底
- 结构化输出契约:子代理输出锁定为固定 XML/JSON 块,主流程归并为统一 schema 文件,供下游工具直接消费
- 工具白名单 + 能力回退 + 数量自适应:权限过滤器声明工具缺失时的只读 Bash 回退,小目标自动降级单轮
适用场景
对源码目录做快速静态安全审查与漏洞盘点(/vuln-scan <dir>)已有 THREAT_MODEL.md 时按威胁模型定向扫描(自动解析 section 3/4 作为 focus areas)作为 threat-model → vuln-scan → triage → patch 安全流水线的静态筛选环节,产出候选供 N 票验证扫描不信任/第三方代码(只读不执行,无需沙箱即可安全运行)
边界与注意:产出是静态候选而非验证结论,误报率高,必须配合 /triage 验证;不执行代码,发现不了仅运行时暴露的问题(ASAN 崩溃、PoC 复现),那些走 vuln-pipeline;超大代码库依赖 recon 分区质量;仓库自述 not maintained,仅作参考实现。
完整拆解分析文档
本页为摘要版,完整精读分析(核心机制、逐条优秀点拆解、写作过程)见本地 Markdown 文档:
analysis/dcrh-vuln-scan.md