用途
@openai/codex-security 是 OpenAI 提供的 CLI 和 TypeScript SDK,用于在代码中查找、验证和修复安全漏洞。它面向需要自动化安全审查的开发者与团队,可扫描仓库、选定路径或 Git 变更,并支持深度扫描模式,在仓库和选定路径上并行运行发现工作器。
主要能力
- 扫描与发现:扫描仓库、选定路径或 Git 变更;深度扫描并行运行发现工作器。
- 验证与修复:验证候选发现,生成补丁,并核验已有修复。
- 策略与威胁模型:起草 SECURITY.md 策略,保存威胁模型供后续审查。
- 发现管理:浏览已保存的扫描和发现,识别重复项,按自定义标准评估严重性,从源码和 Git 历史建议负责人。
- 集成与导出:导入 GitHub 代码扫描告警,导出 SARIF、JSON 或 CSV,将发现发布到 Linear 或发现服务。
- 自动化:在 CI 和容器中跨仓库或项目组件自动化扫描。
- 云发现读取:当账户可用 Codex Security Cloud 时,Security 插件的 $cloud-findings 技能可在 Codex 桌面或 Codex CLI 中读取发现、报告、记录的分配与验证以及扫描状态;云连接为可选,本地扫描无需云。
使用方式
环境要求:Node.js 22.13.0+(22.x 内),或 Node.js 24.x 或 26.x,以及 Python 3.10+。Python 3.10 还需要 tomli。
全局安装 CLI 并登录:
npm install -g @openai/codex-security
cs login
cs 是 codex-security 的短别名,两者运行同一 CLI。安装会在 npm 全局可执行目录创建两个命令,该目录需在 PATH 中。若 cs 已解析到其他工具,请改用 codex-security。若 npm 因 cs 报 EEXIST 错误,可使用 npx @openai/codex-security 而无需全局安装。
可选:从仓库起草 SECURITY.md,说明项目中什么算作安全问题:
cs policy
草稿保存在仓库之外。审查差异和说明,编辑草稿,然后仅将 SECURITY.md 复制到显示的 Policy 目标。跳过此步骤可保留当前策略或无策略扫描。
从仓库目录运行扫描:
cs scan
若拥有 Daybreak Blue 访问权限,在扫描命令中添加 --cyber-access-program daybreak_blue;否则省略该标志或使用 --cyber-access-program standard。
无需全局安装时,将示例中的 cs 替换为 npx @openai/codex-security,例如:
npx @openai/codex-security scan
CI 中,在扫描进程环境设置 OPENAI_API_KEY 或 CODEX_API_KEY。在远程或无头机器上,若工作区允许,使用 login --device-auth,或通过 SSH 登录。部分网络安全请求和受保护的发现需要 Trusted Access for Cyber 批准。
选择范围和扫描模式:使用 cs --help 浏览命令,或 cs scan --help 查看扫描选项、成本限制和扫描后修补。对于跨多个仓库的应用,参见“review one system across repositories”。对独立仓库审查使用批量扫描,可在一次可恢复的活动中完成。
在 TypeScript 项目中本地安装包:
npm install @openai/codex-security
然后导入:
import { ... } from '@openai/codex-security';
SDK 指南包含深度扫描配置、验证、严重性分类、负责人建议和结果处理。
读取现有云发现:当 Codex Security Cloud 对账户可用时,Security 插件的 $cloud-findings 技能可读取发现、报告、记录的分配与验证以及扫描状态。参见云连接设置和 CLI 读取,了解认证要求和只读示例。
生成 SECURITY.md:使用 policy 起草新的 SECURITY.md 或更新现有文件。使用 --path 选择组件:
cs policy --path <component>
命令将草稿保存在仓库外,不更改现有文件。审查差异和说明,编辑草稿,然后仅将 SECURITY.md 复制到显示的 Policy 目标。将保存的架构和威胁模型文档保留在仓库外。扫描已使用根和组件的 SECURITY.md 文件。若当前策略无需更改则保留。更新时保留其漏洞报告说明。若命令提示策略已是最新,则无需复制。位于 .github/SECURITY.md 或 docs/SECURITY.md 的文件通常包含报告说明,起草策略时请保留;这些位置不会自动提供仓库范围的扫描指导。参见策略指南了解策略位置、未回答问题、保存的工件和 SDK 用法。
保存和导出威胁模型:扫描和策略生成会随结果保存威胁模型。导出已保存模型而无需再次分析:
cs export --scan <scan-id>
省略 --scan 则使用当前仓库最近完成的扫描。导出指南还涵盖发现、用于 CI 的 SARIF 输出以及离线 TypeScript API。
使用 GitHub Action 运行计划、手动或拉取请求扫描。对于每周仓库扫描,将 OpenAI API 密钥添加为仓库机密 CODEX_SECURITY_API_KEY,然后将此工作流保存到 .github/workflows/codex-security.yml。将 REPLACE_WITH_REVIEWED_COMMIT 替换为 Action 提交的完整 SHA。此工作流请求 Daybreak Blue。使用启用了 Blue 的项目的 API 密钥;若无 Daybreak 访问权限,省略 cyber-access-program 或设为 standard。发现默认仅报告。设置严重性阈值可使达到或超过该阈值的已报告发现导致失败。扫描器和必需报告错误会使作业失败;有意的文件排除和调查说明不会。参见 Action 设置和输入参考了解 PR 扫描、严重性阈值和报告上传。
容器化批量扫描:使用包含的 Docker Compose 配置扫描仓库列表,该配置在运行之间保留结果和认证。参见容器快速开始。工作流运行器在容器中运行各个 CLI 阶段,并可连接到单独部署的发现服务。
发现存储与去重:发现指南涵盖本地存储、去重以及通过 publish scan --to custom 和显式 --findings-url 与独立运营端点的兼容性。本地 serve 命令和浏览器仪表板已移除;现有数据库和扫描工件仍可用。
其他提供商:扫描支持 OpenAI、Amazon Bedrock、OpenRouter 和 Fireworks AI。Bedrock 使用 AWS 凭证,无需单独的 OpenAI 登录。参见 Bedrock 设置了解 AWS 配置文件、区域和模型访问。对于 OpenRouter 和 Fireworks AI,设置提供商的 API 密钥并选择支持的模型。参见提供商配置示例。
适用场景
- 在开发流程中自动发现和修复安全漏洞。
- 在 CI 中运行计划、手动或拉取请求扫描。
- 跨多个仓库或项目组件进行批量扫描。
- 管理安全发现、去重、评估严重性并分配负责人。
- 生成和维护 SECURITY.md 策略与威胁模型。
- 将发现导出为 SARIF、JSON 或 CSV,或发布到 Linear 或发现服务。
限制
- 需要 Node.js 22.13.0+(22.x)或 24.x/26.x,以及 Python 3.10+;Python 3.10 还需要 tomli。
- 部分网络安全请求和受保护的发现需要 Trusted Access for Cyber 批准。
- Daybreak Blue 相关功能需要相应访问权限。
- 云连接为可选,本地扫描无需云;云功能需账户可用 Codex Security Cloud。
- 本地 serve 命令和浏览器仪表板已移除。
- 其他提供商支持 OpenAI、Amazon Bedrock、OpenRouter 和 Fireworks AI,需相应凭证和模型。
- 关于收费、价格、具体效果等未在资料中提供。