OpenAI Codex 中文教程

运行 Codex Security 扫描

扫描一个已授权仓库或一个限定文件夹,并审查发现结果、覆盖范围和产物。

第一次评审以及多数日常仓库或组件评估,都适合使用 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.

配置扫描

  1. 确认 Scan typeCodebase,并保持 Deep scan 关闭。
  2. 确认 CodebaseCurrent branchLast commit
  3. Scan area 设为 Entire codebase,或输入一个相对于仓库的文件夹。
  4. 只有当威胁模型指导信息会改变评审时才添加它。有用的指导信息会说明攻击者可控输入、信任边界、敏感操作,或需要优先关注的具体区域。
  5. 选择 Start scan

如需持久保存仓库级安全指导,请在仓库根目录添加 SECURITY.md。用它描述威胁模型、安全不变量、可报告发现标准、排除项和严重性上下文。目录级指导可以继续添加嵌套的 SECURITY.md。当策略冲突时,距离代码最近的文件优先。Codex Security 会把这些内容作为策略上下文,而不是可执行指令。

AGENTS.md 则用于记录支持的构建和验证命令,以及其他仓库专用指令。

等待各阶段完成

扫描会按顺序运行这些阶段:

  1. 威胁建模:识别资产、入口点、信任边界和安全不变量。
  2. 发现搜索:在请求的代码范围内寻找可能失效的控制和 source-to-sink 路径。
  3. 验证:测试或以其他方式检查每个候选发现,并记录证据或证据缺口。
  4. 攻击路径分析:评估现实可达性、影响和严重性。
  5. 最终化:校验结构化扫描契约,并生成 report.md

扫描运行时,Codex 会报告阶段和覆盖进度。不要根据早期候选发现判断结果,也不要因为某个阶段比另一个阶段耗时更久就停止扫描。

审查已完成的扫描

按这个顺序审查结果:

  1. 确认目标、revision 和扫描范围。
  2. 阅读已审查表面,以及每个明确延后或需要跟进的区域。
  3. 对每个发现,检查根控制点或 sink、攻击者可控输入、验证方法、剩余不确定性、现实可达性、严重性理由和建议修复。
  4. 如果证据不支持声称的路径或影响,就驳回该发现。
  5. 开始修复前,先选择一个已接受的发现。
OWASP Juice Shop 的 Codex Security 发现工作区已完成扫描
完成后的工作区会先汇总扫描状态、覆盖范围、严重性和产物,再列出发现结果。
OWASP Juice Shop 中 Codex Security 发现结果的证据和攻击路径分析
一个发现会把相关来源与入口点、可达性、可能性、影响,以及任何限制或反证连接起来。

使用结果

日常审查使用发现工作区(findings workspace)。它会展示发现结果、覆盖范围和后续区域,不需要你检查原始 JSON。需要完整、可携带的审查资料用于共享或归档时,再打开 report.md

在工作区背后,每次扫描都会保留 scan-manifest.jsonfindings.jsoncoverage.json,用于自动化和集成。通常你不需要自己打开这些文件。

发现工作区也可以创建可携带的 JSON、CSV 和 SARIF 文件。参见导出或跟踪发现