Skip to content

Codex Security CLI 快速入门

Codex 中文站说明: 本页围绕“Codex Security CLI 快速入门”重新补充了中文使用场景和验证重点。界面名称可能随 Codex 版本更新,请以当前客户端为准。

设置 Codex Security、运行本地扫描,并查看报告、发现结果和覆盖范围。

Codex Security 可帮助安全和工程团队查找、确认并修复漏洞。使用其命令行界面 (CLI) 扫描您拥有或获准评估的仓库、持续查看发现结果,并在变更合入前进行检查。

@openai/codex-security 软件包是公开的。运行扫描需要 Codex Security 访问权限。要在 Codex 中进行交互式扫描,请从 Codex Security 插件快速入门开始。有关已连接的 GitHub 仓库,请参阅 Codex Security 云端设置

检查先决条件

CLI 需要 Node.js 22.13.0 或更高版本。运行扫描或导出发现结果还需要 Python 3.10 或更高版本。有关更多详细信息,请参阅身份验证和先决条件

设置并验证 CLI

使用 npx 运行 CLI 并检查其版本:

bash
npx @openai/codex-security --version

列出可用命令:

bash
npx @openai/codex-security --help

另请参阅 CLI 参考

登录

在本地使用时,请使用 ChatGPT 账户登录:

bash
npx @openai/codex-security login

在远程或无头机器上,请使用设备身份验证:

bash
npx @openai/codex-security login --device-auth

对于 CI 和其他自动化工作流,请设置 OpenAI API key:

bash
export OPENAI_API_KEY="<your-api-key>"

有关 AWS 凭据,请参阅 Amazon Bedrock 设置。对于 OpenRouter 或 Fireworks,请设置提供商的 API key,并使用 --provider--model 选择模型。

如果同时设置了 API key,但希望使用 ChatGPT 登录,请明确选择该方式:

bash
npx @openai/codex-security scan . --auth chatgpt

要强制使用环境中的 API key,请选择 API key 身份验证:

bash
npx @openai/codex-security scan . --auth api-key

根据您的账户和仓库,扫描完整仓库可能还需要 Trusted Access for Cyber

准备扫描

选择要扫描的仓库以及用于写入结果的目录。

bash
REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-results

如果省略 --output-dir,Codex Security 会将结果保存在自己的持久状态目录中。结果可能包含源代码摘录和漏洞详细信息,因此请选择私有位置并采用适当的保留策略。

如果默认状态目录不可写,请在所扫描仓库之外选择一个可写目录:

bash
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-state

开始扫描前,请检查仓库、目标和输出目录:

bash
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --dry-run

试运行会检查本地输入,包括所有 --knowledge-base 路径,但不会启动 Codex、加载凭据或探测插件的 Python 解释器。

运行首次扫描

运行标准扫描,并将结果保存在所选目录中:

bash
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR"

交互式终端会显示实时扫描面板。添加 --headless 可改为显示纯文本进度行。CI 和没有交互式会话的终端会自动使用纯文本进度。

默认情况下,CLI 会将扫描进度和完成摘要写入 stderr。它不会将完整扫描结果输出到 stdout。扫描完成后会输出类似以下内容的摘要:

text
REPORT    /path/outside/repository/codex-security-results/report.md

FINDINGS  2 (2 confirmed this scan; 0 previously found; 1 high, 1 medium)
COVERAGE  complete
ELAPSED   42s
RESULTS   /path/outside/repository/codex-security-results

如果相关信息可用,还会显示 token 用量和预估成本。要输出完整的机器可读 JSON 结果,请明确请求结构化输出:

bash
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --json

扫描默认仅生成报告,因此发现结果会保留供本地审查。当您准备好在 CI 中运行扫描时,可以添加严重性阈值。

选择模型和推理强度

扫描默认使用 gpt-5.6-sol,推理强度为 xhigh。任务有需要时,可选择其他模型和强度:

bash
npx @openai/codex-security scan "$REPOSITORY" \
--model gpt-5.6-terra \
--effort high

支持的强度级别包括 minimallowmediumhighxhigh

查看结果

打开 report.md 查看易读的结果。扫描目录还包含供自动化使用的结构化文件:

text
codex-security-results/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif       # when produced
  • scan-manifest.json 记录目标、范围、生成方和密封制品。
  • findings.json 记录每个发现结果的严重性、置信度、位置、证据和修复措施。
  • coverage.json 记录已审查的界面、排除项、延期工作、待解决问题和覆盖完整性。

覆盖范围可以是 completepartialunknown。在将扫描视为审查证据之前,请阅读所有延期区域或待解决问题。 CLI 参考介绍了完整的制品和输出契约。

选择下一次扫描

当仓库包含独立的服务或软件包时,请使用路径扫描:

bash
npx @openai/codex-security scan "$REPOSITORY" \
--path services/billing \
--path packages/auth

审查基础修订版本与 HEAD 之间已提交的变更:

bash
npx @openai/codex-security scan "$REPOSITORY" --diff origin/main --head HEAD

审查相对于 HEAD 的暂存和未暂存变更:

bash
npx @openai/codex-security scan "$REPOSITORY" --working-tree --base HEAD

差异和工作树扫描要求仓库参数为 Git 工作树根目录。开始差异扫描前,请获取所选修订版本。

当仓库或路径需要更广泛的审查时,请使用深度模式:

bash
npx @openai/codex-security scan "$REPOSITORY" --mode deep

要控制发现工作进程、子智能体以及扫描停止时机:

bash
npx @openai/codex-security scan "$REPOSITORY" \
--mode deep \
--workers 2 \
--subagents 0 \
--stop-after-no-new 3 \
--max-discovery-runs 10

这些选项需要深度模式。该模式支持仓库和路径目标,但不支持差异或工作树扫描。在这里,--workers 控制单次扫描内的发现工作进程;bulk-scan --workers 控制并发仓库扫描。

添加架构和安全上下文

提供架构文档、威胁模型或安全策略作为扫描上下文。这有助于 Codex Security 根据系统的实际工作方式评估发现结果:

bash
npx @openai/codex-security scan "$REPOSITORY" \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policies

添加自定义扫描说明

添加说明,让扫描聚焦于你的安全优先事项。可以使用第二个文件提供后续指令:

bash
npx @openai/codex-security scan "$REPOSITORY" \
--scan-prompt-file /path/to/scan.md \
--post-scan-prompt-file /path/to/follow-up.md

后续指令会在同一个已验证身份的 session 中运行,适用于成功完成的扫描,也适用于覆盖范围不完整或出错的扫描;扫描被取消或达到成本上限后不会运行。这两个选项也适用于 bulk-scan;CSV 的 prompt 列可添加仓库专用说明。

设置扫描预算

使用 --max-cost 在预估模型成本超过以 USD 计价的限额时停止扫描:

bash
npx @openai/codex-security scan "$REPOSITORY" --max-cost 5

已在进行的请求可能会在略微超过限额后完成。如果扫描因成本限制而中止,部分扫描结果仍会保留在磁盘上。

在每次提交前扫描变更

为仓库安装 Git pre-commit 安全检查:

bash
npx @openai/codex-security install-hook

该检查会在每次提交前扫描暂存和未暂存的变更。它会阻止高严重性发现结果和扫描错误,但不会替换现有的 pre-commit 脚本。

批量扫描仓库

发现仓库前,请登录 GitHub:

bash
gh auth login

从您的 GitHub 账户或组织中发现并选择仓库:

bash
npx @openai/codex-security bulk-scan

交互式流程会排除已归档仓库和 fork。扫描前,它会要求您确认所选仓库。

要扫描准备好的仓库列表,请提供 CSV 和输出目录:

bash
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4

再次运行相同命令即可恢复现有批量扫描。Codex Security 会跳过已完成的仓库。需要重试临时仓库错误或扫描错误时,请添加 --max-attempts 3

有关 GitHub 发现、CSV 准备、活动结果和 Docker 设置,请参阅运行批量安全扫描

在 Docker 中运行批量扫描

如果您的访问权限包含 Codex Security Docker 镜像,请在 Linux Docker 主机上使用随附的强化 Compose 配置和安全配置文件。主机必须支持创建非特权用户命名空间。请提供仓库 CSV,将结果和登录状态保存在持久挂载目录中,并通过环境或密钥管理器提供凭据:

bash
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4

容器会以无交互提示的方式运行批量扫描。如果希望以交互方式发现仓库,请在 Docker 外部使用 CLI。对于私有仓库,请通过环境或密钥管理器提供 GH_TOKENGITHUB_TOKEN登录要求(包括账户和仓库访问权限)同样适用于容器化扫描。

重新查看已保存的扫描

列出仓库中保存的扫描:

bash
npx @openai/codex-security scans list "$REPOSITORY"

从结果中复制扫描 ID,以检查其发现结果和配置:

bash
npx @openai/codex-security scans show SCAN_ID

要检查某次扫描及其 workers 保存的事件:

bash
npx @openai/codex-security scans logs SCAN_ID

保存的日志不会经过脱敏,可能包含源代码或凭据。分享前请先检查。

列出该仓库历次扫描中仍处于 open 状态的发现:

bash
npx @openai/codex-security findings list "$REPOSITORY"

如果最新扫描没有确认某项较早的发现,该发现仍会保持 open 状态。

要将已审查的发现结果标记为误报,请说明该发现不适用的原因:

bash
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The route already checks permissions"

后续扫描会考虑该说明,但仍会重新检查当前代码。

使用原始配置对当前检出内容重新运行同一扫描:

bash
npx @openai/codex-security scans rerun SCAN_ID

比较两次扫描,以查找新增、持续存在、重新出现、已解决或状态未知的发现结果:

bash
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

比较会自动按根本原因匹配发现结果,并复用已保存的匹配项。

有关批量扫描 CSV 格式、扫描历史筛选器和命令选项,请参阅 CLI 参考

请继续选择符合您目标的工作流:

本站实践建议

应用“Codex Security CLI 快速入门”中的安全设置时,应从最小权限开始,再根据实际任务逐步开放。涉及网络、密钥、生产环境或删除操作时,仍应保留人工确认。

Codex API 与国内使用

在实践“Codex Security CLI 快速入门”相关功能时,如需为 Codex 配置 OpenAI-compatible API,可以前往 APIBest 获取 API Key。第三方服务的模型映射、价格、额度和数据处理方式以 APIBest 当前说明为准。

Powered by ChatGPT中文版