EP06. “安全扫描功能”
🔒 登录后可标记已读- Codex 除了帮你写代码,还有一个专门的「安全代理」——帮你的代码库找漏洞、写报告、甚至直接提修补方案
- 这个功能跟 EP02 讲的权限模式(Sandbox/Permissions)不是同一件事:权限模式管的是「Codex 能不能碰这些文件」,安全扫描做的是「主动去找代码里的漏洞」,一个是防御、一个是侦查
- 讲四种用法:桌面 App 里的 Plugin、命令行的 CLI、程序化整合的 SDK、还在研究预览阶段的 Cloud
- 顺带提一下 Cyber Safety——OpenAI 给授权的资安工作者用的进阶模型访问权限
- 前置知识:先看过 EP01(怎么开始用 Codex)、EP02(权限概念)
重点内容
这个功能是做什么的
Codex Security 是一个「应用安全代理」,帮安全团队和工程团队找到、确认、修复代码里的漏洞。跟一般的「叫 Codex 帮我看看这段代码安不安全」不一样,它是一套系统化的扫描流程,扫完会产出结构化的报告文件,不是几句话带过。
四种使用方式
| 方式 | 适合场景 | 备注 |
|---|---|---|
| Plugin(桌面 App 插件) | 交互式审查,想在图形界面里看扫描结果 | 有可视化工作台(Scans / Findings / Repositories 分页) |
| CLI | 本地跑扫描、批量扫描、接进 CI 流程 | npx @openai/codex-security,免额外安装 |
| TypeScript SDK | 想把扫描能力写进自己的应用/工具里 | 程序化接口 |
| Cloud | 已连接的 GitHub 仓库自动扫描 | 研究预览阶段,还在发展中 |
用 Plugin 跑第一次扫描
- 打开 Codex 桌面 App → Plugins → 搜索「Codex Security」→ 启用
- 侧边栏打开 Security
- 选要扫描的仓库 → 选范围(整个仓库或单一文件夹)→ 选模型和推理强度 → 可选填「额外上下文」讲清楚要特别注意的威胁类型或敏感区域 → 启动扫描
📌 官方建议用 gpt-5.6-sol 模型配 xhigh(最高)推理强度,扫描质量最好——但推理强度越高跑得越慢,token 消耗也越多,日常快速检查可以先用较低强度。
扫完之后在工作台检查发现(Findings)、覆盖范围(Coverage)、扫描报告(Report)。历史记录在 Scans / Findings / Repositories 三个分页里都查得到。
用 CLI 跑扫描
环境要求:Node.js ≥ 22.13.0、Python ≥ 3.10
登录:
npx @openai/codex-security login # 本地
npx @openai/codex-security login --device-auth # 远程机器
export OPENAI_API_KEY="<your-api-key>" # CI 环境改用 API key
常用指令:
| 用途 | 指令 |
|---|---|
| 基础扫描 | npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" |
| 指定模型/推理强度 | npx @openai/codex-security scan "$REPOSITORY" --model gpt-5.6-terra --effort high |
| 只审查改动的部分 | npx @openai/codex-security scan "$REPOSITORY" --diff origin/main --head HEAD |
| 深度扫描 | npx @openai/codex-security scan "$REPOSITORY" --mode deep |
| 批量扫描(多个仓库) | npx @openai/codex-security bulk-scan repositories.csv --output-dir /path/to/results --workers 4 |
| 扫完直接生成修补 | npx @openai/codex-security scan "$REPOSITORY" --patch --patch-severity high --json |
| 设定花费上限 | npx @openai/codex-security scan "$REPOSITORY" --max-cost 5 |
| 看历史扫描 | npx @openai/codex-security scans list "$REPOSITORY" |
| 看历史发现 | npx @openai/codex-security findings list "$REPOSITORY" |
💡 --diff 这个参数很实用:不用每次都扫整个仓库,只审查这次改动跟 base 分支的差异,适合接进 PR 检查流程。
扫描结果长什么样
扫完会产出一份结构化的报告,不是单一文件:
report.md:主要给人看的报告入口findings/目录:每个漏洞的详细报告,含概念验证(PoC)hardening/目录:加固建议和相关提案scan-manifest.json、findings.json、coverage.json:给程序/其他系统读取的结构化数据
Cyber Safety:给授权资安工作者的进阶模型
OpenAI 有一个叫 Daybreak 的防御性网络安全计划,给经过审核的用户用更强的模型做资安工作:
- GPT-Daybreak-Blue:给大多数「防守方」工作用,包括找漏洞、代码审查、威胁建模、恶意软件分析、验证修复
- GPT-Daybreak-Red:更进阶的资安模型,要另外单独申请批准,用于漏洞复现、渗透测试、红队演练——⚠️ 官方讲得很清楚,这不是日常资安工作的预设选项
申请方式:个人透过 ChatGPT 申请,组织提交企业表单,申请入口是 OpenAI 官方的 Trusted Access for Cyber。拿到 Blue 权限不会自动给你 Red 权限,两个要分开申请。
⚠️ 使用限制:只能用在你自己拥有、或者明确被授权测试的系统上;不能扩展给外部用户、第三方或商用服务;仍然要遵守 OpenAI 使用政策;拿到 Trusted Access 不代表自动有零数据保留政策,这点另外要留意。
常见错误
- ❌ 把「安全扫描」和「权限模式/Sandbox」搞混——权限模式管的是 Codex 能不能碰你的文件,安全扫描是主动帮你找代码漏洞,两件不同的事
- ❌ CI 流程里用 CLI 扫描却忘记设
--max-cost——没设上限的话,遇到大仓库/高推理强度设置,花费可能超出预期 - ❌ 每次扫描都扫整个仓库——PR 检查这类高频场景改用
--diff只审查改动部分,省时间也省 token - ❌ 以为申请到 Daybreak Blue 就能顺便做渗透测试——Red 权限要另外单独申请,Blue 不会自动升级
- 💡 CI/GitLab CI 环境跑扫描要用 API key 登录,不是本地那套
login流程,环境变量记得设对
Sources
官方文档:
- Codex Security Administration — https://learn.chatgpt.com/codex/security-administration
- Codex Security overview — https://learn.chatgpt.com/codex/security
- Security Plugin quickstart — https://learn.chatgpt.com/codex/security/plugin
- Security CLI quickstart — https://learn.chatgpt.com/codex/security/cli
- Cyber Safety — https://learn.chatgpt.com/codex/cyber-safety