📌 项目地址:openai/codex-security | ⭐ 11,562 颗星 | 🔧 TypeScript
传统代码扫描器的工作方式是:报一堆问题,然后走人。Semgrep、CodeQL 这类工具找到可疑代码后给你一个规则 ID,剩下的调查、判断真伪、写补丁,全靠人。OpenAI 开源的 Codex Security 想把这条链走完:找到漏洞,验证它是不是真的,生成补丁,再验证补丁有没有修好。凭据是这个流程里的模型能力,也就是 Codex 对代码的理解,所以“验证”不是走形式,报告里会附上源码证据和排除项说明。
项目目前在 GitHub 上有一万多 star。它有三种用法:在 Codex 会话里直接跑安全工作流、在终端用 CLI 扫描仓库、在 CI 里通过 TypeScript SDK 或 GitHub Action 自动化。
功能上有什么不一样
扫描本身支持整个仓库、指定路径,或者只扫 Git 变更。Deep 模式会重复跑 Standard 扫描,把多次结果去重后返回,相当于多验一遍来压误报。
后面几步是我觉得最有价值的部分:
- 验证候选发现,生成补丁,验证已有修复
- 起草 SECURITY.md 策略文档,保存威胁模型供后续审查
- 按你自己的严重度标准(rubric)评估 findings,识别重复项,根据源码和 Git 历史建议负责人
- 导入第三方扫描器的结果,保存到本地或发布到 Codex Security Cloud
- findings 可以直接进 Linear、Jira、GitHub 追踪,也能导出 SARIF、JSON、CSV
注意最后两点:它不打算替代你现有的工具链。已有的 Semgrep 报告可以导进来复用,扫描结果能以 SARIF 格式出去,接回现有 CI 和缺陷追踪流程。
上手步骤
环境要求比较具体:Node.js 22.13.0 以上(仅限 22.x),或者 24.x / 26.x;Python 3.10 以上,如果用 3.10 还要装 tomli。
全局安装并登录:
npm install --global @openai/codex-security
cs login
在仓库目录下跑第一次扫描:
cs scan .
扫描完成后,终端会显示一个 REPORT 路径,打开那个 Markdown 文件就是报告。之后想再找这次扫描,在同一个仓库目录下运行 cs scans show。
几个容易踩的坑:
cs是短命令,如果和其他工具重名,用全名codex-security。npm 报 EEXIST 或者不想全局安装时,用npx @openai/codex-security代替cs。- CI 里设
OPENAI_API_KEY或CODEX_API_KEY环境变量就行,不用交互登录。无头机器参考官方文档的 device or SSH login 部分。
在 Codex 会话里用的话,装好插件后直接说:
Run a Codex Security scan on this repository, focusing on authentication and authorization. Return the saved report, source evidence, and coverage limits.
完成后可以接着让它出补丁,或者验证某个已有的修复。
拿报告别只看 findings
README 专门强调了一件事:报告里的 exclusions(排除项)要认真读,否则容易高估扫描覆盖面。哪些文件没扫到、为什么排除,都写在那里。官方文档里有一节叫”Understand scan scope and follow-up work”,建议先看。
用之前想清楚两件事
第一,这不是本地工具。扫描跑在 Codex 的模型能力上,需要 OpenAI 账号和 API 访问,成本要自己评估,尤其是 Deep 模式会重复扫描。第二,许可证和数据边界(比如发布到 Codex Security Cloud 时报告去了哪)README 没写细,企业用户用之前去仓库确认一遍。
我的建议是先在一个非生产仓库试跑 Standard 扫描,看看报告质量和 exclusions 的解释是否说得通,再决定要不要进 CI。