第一次评审以及多数日常仓库或组件评估,都适合使用 Codex Security 扫描。它会完整运行一次扫描工作流。
当你对结果满意后,可以运行深度扫描,获得更全面的评估。深度扫描耗时更长,但覆盖更彻底。
选择扫描范围
当你需要广覆盖,并且整个仓库本身就是合理的评审单元时,扫描整个仓库:
Use $codex-security:security-scan to scan this repository for security vulnerabilities.当单仓多项目仓库(monorepo)太大,或某个服务、package、组件有清晰 owner 和安全边界时,扫描某个文件夹:
Use $codex-security:security-scan to scan this repository for security vulnerabilities, focusing on the services/billing component.
配置扫描
- 确认 Scan type 是
Codebase,并保持 Deep scan 关闭。 - 确认 Codebase、Current branch 和 Last commit。
- 将 Scan area 设为
Entire codebase,或输入一个相对于仓库的文件夹。 - 只有当威胁模型指导信息会改变评审时才添加它。有用的指导信息会说明攻击者可控输入、信任边界、敏感操作,或需要优先关注的具体区域。
- 选择 Start scan。
如需持久保存仓库级安全指导,请在仓库根目录添加 SECURITY.md。用它描述威胁模型、安全不变量、可报告发现标准、排除项和严重性上下文。目录级指导可以继续添加嵌套的 SECURITY.md。当策略冲突时,距离代码最近的文件优先。Codex Security 会把这些内容作为策略上下文,而不是可执行指令。
AGENTS.md 则用于记录支持的构建和验证命令,以及其他仓库专用指令。
等待各阶段完成
扫描会按顺序运行这些阶段:
- 威胁建模:识别资产、入口点、信任边界和安全不变量。
- 发现搜索:在请求的代码范围内寻找可能失效的控制和 source-to-sink 路径。
- 验证:测试或以其他方式检查每个候选发现,并记录证据或证据缺口。
- 攻击路径分析:评估现实可达性、影响和严重性。
- 最终化:校验结构化扫描契约,并生成
report.md。
扫描运行时,Codex 会报告阶段和覆盖进度。不要根据早期候选发现判断结果,也不要因为某个阶段比另一个阶段耗时更久就停止扫描。
审查已完成的扫描
按这个顺序审查结果:
- 确认目标、revision 和扫描范围。
- 阅读已审查表面,以及每个明确延后或需要跟进的区域。
- 对每个发现,检查根控制点或 sink、攻击者可控输入、验证方法、剩余不确定性、现实可达性、严重性理由和建议修复。
- 如果证据不支持声称的路径或影响,就驳回该发现。
- 开始修复前,先选择一个已接受的发现。
使用结果
日常审查使用发现工作区(findings workspace)。它会展示发现结果、覆盖范围和后续区域,不需要你检查原始 JSON。需要完整、可携带的审查资料用于共享或归档时,再打开 report.md。
在工作区背后,每次扫描都会保留 scan-manifest.json、findings.json 和 coverage.json,用于自动化和集成。通常你不需要自己打开这些文件。
发现工作区也可以创建可携带的 JSON、CSV 和 SARIF 文件。参见导出或跟踪发现。