评审代码变更的安全性

对一个由 Git 支撑的变更集做安全回归评审,而不是展开成全仓库审计。

当你需要证明某个由 Git 支撑的变更集是否引入安全回归时,使用安全变更评审。这个工作流会评审所有发生变更的源码类文件和直接支撑代码,但不会把任务扩展成通用仓库审计。

如果你想扫描完整仓库,而不是某个具体变更,请参见运行安全扫描

运行手动评审

对于未提交改动,发送:

Use $codex-security:security-diff-scan to review my current uncommitted changes for security regressions.

对于 commit 或 branch range,必要时明确两端:

Use $codex-security:security-diff-scan to review the changes from origin/main to HEAD for security regressions. Focus on authentication, authorization, input handling, filesystem access, network requests, and secrets.

当 pull request 的 base 和 head revision 在本地 checkout 中可用时,也可以直接指定 pull request。

在设置中确认变更

  1. 确认 Scan type(扫描类型)Changes
  2. 确认已检出的 Codebase(代码库)Current branch(当前分支)Last commit(最新提交)
  3. Changes to review(待评审改动) 下选择:
    • Uncommitted changes:当前 Git 工作区中的未提交改动。
    • 最新 commit:单个 commit 的评审。
    • base revision 和 head revision:分支或 pull request 的修订版本区间。
  4. 确认摘要描述的是你想评审的变更。
  5. 选择 Start scan(开始扫描)

这个工作流不会检出另一个分支,也不会修改选中的 Git 工作区。如果请求的 revision 在本地不可用,请先执行 fetch,或提供一组本地可用的 base revision 和 head revision。

处理发现结果

评审结果后,可以修复并验证已接受的发现,或导出和跟踪发现

在 CI/CD 中自动化评审

当 CI runner 能以非交互方式调用 Codex CLI 时,可以在 CI 中运行同一个 $codex-security:security-diff-scan 技能。runner 必须已经在 codex exec 使用的 CODEX_HOME 中安装 Codex Security。新建的 runner 默认不会安装 marketplace 插件,openai/codex-action 也不会代为安装。

运行扫描前:

  1. 在 runner 的 CODEX_HOME 中预先安装并配置 Codex Security。
  2. 精确检出 base revision 和 head revision,并保留对应的 Git 历史。
  3. 把 runner 的平台临时目录(例如 TMPDIR)设为可写的产物位置。diff-scan 工作流会在不修改检出内容的情况下评审代码,但会把封存的扫描包(sealed scan bundle)和最终报告写到仓库外。
  4. 先以非阻断方式运行。确认扫描质量和运行时间后,再把该作业设为 required check。

然后显式调用插件:

export CODEX_HOME=/path/to/provisioned-codex-home
export TMPDIR=/path/to/writable/temp

codex exec \
  --sandbox workspace-write \
  --output-last-message "$TMPDIR/codex-security-review.md" \
  'Use $codex-security:security-diff-scan to review changes from <base-revision> to <head-revision> for security regressions. Do not modify the checkout. Return the final report path, findings summary, reviewed surfaces, deferred coverage, and open questions.'

归档生成的扫描包和最终报告,然后通过你的 CI/CD 系统发布 Markdown 摘要。如果使用 openai/codex-action,请把它的 codex-home 输入指向同一个已经预先安装并配置 Codex Security 的目录,并传入上面的技能提示词。该 action 可以安装并运行 Codex CLI,但插件预配置是单独的前置条件。

关于 API key 处理、沙箱控制、fork 保护和 GitHub Actions 工作流,请参见 Codex GitHub Action 指南