修复并验证安全发现
如需完整文档索引,请参阅 llms.txt。文档页面的 Markdown 版本可通过在页面后追加
.md来获取 URL。
使用 Codex Security 将已接受的安全发现转化为聚焦的、 经过验证的补丁。你可以在 Security 工作台中操作,也可以通过提示词、命令行或 运行修复 CI/CD工作流。 Codex 会验证问题 并在测试安全且可行时,添加一个聚焦的回归测试,该测试 在修复前失败、修复后通过。它还会检查合法 行为是否仍然有效。如果回归测试不安全或不可行, Codex 会记录证明缺口,并改为提供最强的可重复验证 工件。
从一个已接受的发现开始,并审查拟议补丁和验证 证据。如果工作流符合你的标准,请逐个处理其他已接受的 发现,并放在单独的 Codex 任务或 CI/CD 作业中。保持每个任务 范围明确,可以让其代码变更和证据更容易审查。
在 UI 中修复发现
Section titled “在 UI 中修复发现”从 发现 或 扫描中的已完成扫描打开一个已接受的发现。 审查其证据,然后使用 补丁 来生成、审查、应用和验证 一个聚焦的修复。
-
生成聚焦的补丁
打开该发现,选择 补丁 选项卡,然后选择 生成补丁。 Codex 会在可行时验证或复现问题,并写入补丁 工件,而不会修改所选检出。
-
审查拟议差异
阅读每个已更改的源文件、回归测试和验证工件。拒绝 大范围重构、无关清理,或会削弱其他安全 控制的变更。
-
在本地应用补丁
仅在差异可接受后 应用补丁 。 Codex 会将 生成的精确补丁应用到工作树,并记录该状态。继续之前请审查 工作树差异。
-
验证修复
选择 验证修复。 Codex 会重新运行原始复现程序或最强的 可用利用检查。如果回归测试安全且可行, Codex 会检查它是否在修复前失败、修复后通过。如果测试 不安全或不可行, Codex 会记录证明缺口,并改为提供 最强的可重复验证工件。它还会检查 合法行为、附近的绕过方式以及相关的仓库测试。
-
谨慎关闭发现
验证不会自动关闭发现。审查命令、 结果和剩余证明缺口,然后用准确的 原因关闭该发现,或保持打开以便继续处理。
交互内容: CodexScreenshot 的动态演示请参阅页面顶部的官方原文链接。
从 CLI 修复发现
Section titled “从 CLI 修复发现”对来自扫描、工单、公告、 Codex CLI 披露、安全评估或内部审查的已接受发现,使用 。
在运行这些命令之前, Codex 请在 CODEX_HOME 使用的 codex exec 中安装 Security。
全新的 CI 运行器默认不包含市场插件。
。
Use $codex-security:fix-finding to fix finding <finding-id> from <report-path>. Validate the issue, make the smallest safe change, and add a focused regression test that fails before the fix and passes after it. If that test is unsafe or infeasible, record the proof gap and provide the strongest repeatable validation artifact instead. Verify that the issue no longer reproduces.包含已知的源、汇、攻击者输入、影响、预期不变量、 复现程序、受影响文件和验证命令。 Codex 可以检查 仓库以补全缺失的技术细节。它应在假设 产品策略或预期安全不变量之前先询问。
对于自动化运行,请检出代码,使发现报告可用,
并在运行器的 CODEX_HOME中安装插件。然后启用工作区
写入权限,并将提示词传递给 codex exec:
codex exec --sandbox workspace-write 'Use $codex-security:fix-finding to fix finding <finding-id> from <report-path>. Validate the issue, make the smallest safe change, and add a focused regression test that fails before the fix and passes after it. If that test is unsafe or infeasible, record the proof gap and provide the strongest repeatable validation artifact instead. Verify that the issue no longer reproduces.'在 CI/CD 中扫描并修复发现
Section titled “在 CI/CD 中扫描并修复发现”在调用任一 Codex 技能之前,请在运行器的 CODEX_HOME 中安装 Security。
下面的命令使用已安装的插件;它们不会安装插件。
在 CI/CD中,将变更扫描与修复分开,并要求扫描 保持检出不变。将已完成的扫描目录保留为作业 工件,审查发现,并为每个 Codex 被接受进行修复的发现启动单独的 任务或作业。
默认情况下, codex exec 使用只读沙箱。运行变更扫描和
修复时都使用 --sandbox workspace-write。扫描需要该权限
来保存临时工件,但其提示词仍必须要求 Do not modify the checkout。修复需要同一权限来写入聚焦的
补丁和验证证据。请参阅 权限和
安全。
对于每次扫描和每个已接受的发现:
- 解析该变更的基准修订和头部修订。
- 针对该差异运行
$codex-security:security-diff-scan,且不修改 检出。 - 保留完整扫描目录,并选择要修复的发现。
- 对每个已接受的发现调用一次
$codex-security:fix-finding,并传入 其发现 ID 和已完成的扫描目录。 - 生成一个聚焦的补丁,并添加一个在修复前失败、 修复后通过的回归测试。如果该测试不安全或不可行,请记录 证明缺口,并改用最强的可重复验证工件。
- 验证原始问题和合法行为。分别返回每个补丁、测试 或后备验证工件、验证命令以及任何证明缺口 。
首先,在不修改检出的情况下扫描变更:
codex exec --sandbox workspace-write 'Use $codex-security:security-diff-scan to review changes from <base-revision> to <head-revision> for security regressions. Do not modify the checkout.'然后,从已完成扫描中修复一个已接受的发现:
codex exec --sandbox workspace-write 'Use $codex-security:fix-finding to fix finding <finding-id> from <completed-scan-directory>. Validate the finding, generate one minimal patch, and add a focused regression test that fails before the fix and passes after it. If that test is unsafe or infeasible, record the proof gap and provide the strongest repeatable validation artifact instead. Verify that the issue no longer reproduces.'对其余每个已接受的发现,在独立任务或作业中重复第二条命令。 验证后,通过你的常规 代码审查和发布流程合并每个补丁。若要在 修复前将发现交给其他团队,请参阅 导出或跟踪 发现。