乐于分享
好东西不私藏

OpenAI开源,代码安全扫描器

OpenAI开源,代码安全扫描器

大家好,我是 Ai 学习的老章

你有没有被 SAST 工具的误报折磨过?写了个 SQL 查询,工具告诉你"可能存在 SQL 注入",但你明明用了参数化绑定。传统 SAST 靠静态规则匹配,它不懂你的业务逻辑,更不懂框架的防护机制,只会机械地匹配 pattern 然后报警

OpenAI 刚开源了一个叫 Codex Security 的工具,思路完全不同——用大模型理解代码语义来判断真实威胁。不是改良规则引擎,是换了个赛道

这东西还在 beta,需要申请 access,但设计思路值得聊聊

它到底做了什么

Codex Security 是一个 CLI 工具和 TypeScript SDK,核心能力形成三步闭环:发现漏洞 → 确认漏洞 → 修复漏洞

和传统 SAST 工具的根本区别:

维度
传统 SAST(Semgrep/CodeQL/SonarQube)
Codex Security
检测方式
静态规则/pattern 匹配
LLM 语义理解
上下文感知
无,只看代码本身
支持喂入架构文档、威胁模型
误报处理
人工标记 false positive
AI 验证(validate 命令)
修复能力
多数只报告,不修复
自动生成修复补丁(patch 命令)
漏洞追踪
需要外部工具
内置扫描历史对比
部署方式
本地/自托管
依赖 OpenAI 云端模型

一张图看懂核心差异:

简单说,传统 SAST 是"用规则找嫌疑代码",Codex Security 是"用 AI 理解代码逻辑后判断是不是真漏洞"。前者像金属探测器,后者像有经验的审计员

当然,代价是——你得联网用 OpenAI 的模型,而且按 token 计费

快速上手

环境要求 Node.js 22+ 和 Python 3.10+

# 安装npm install @openai/codex-security# 登录(本地用 ChatGPT 账号)npx codex-security login# 扫描当前仓库npx codex-security scan .

认证两种方式:ChatGPT 账号适合本地交互,OpenAI API Key 适合 CI 自动化。远程机器还支持 device auth

扫描完的输出长这样:

codex-security: Findings: 2 (1 high, 1 medium). Coverage: complete.codex-security: Elapsed: 42s. Workers: 3/6.codex-security: Results: /path/to/codex-security-resultscodex-security: Next: codex-security export /path/to/codex-security-results --export-format sarif

42 秒扫出 2 个漏洞,覆盖完整。结果目录里有可读的 report.md、结构化的 findings.jsoncoverage.json,还能导出 SARIF 直接喂给 GitHub Code Scanning

几个实用的扫描模式:

# 只扫 PR 改动(增量扫描,CI 最常用)npx codex-security scan . --diff origin/main --head HEAD# 只扫特定路径(monorepo 精准打击)npx codex-security scan . --path services/billing --path packages/auth# 深度扫描(更全面但更慢更贵)npx codex-security scan . --mode deep

更多参数和批量扫描、Docker 部署等细节,官方文档写得很清楚,我就不搬运了,链接放文末

真正亮眼的三个设计

第一个:知识库上下文

这是最让我兴奋的功能。你可以把架构文档、威胁模型、安全策略喂给它当扫描上下文:

npx codex-security scan . \  --knowledge-base /path/to/architecture.md \  --knowledge-base /path/to/security-policies

支持 .md.txt.pdf.docx 格式

这意味着什么?传统 SAST 工具只看代码,它不知道你的 API 网关已经做了认证,不知道那个 SQL 查询的参数来自框架的逃逸层。Codex Security 可以结合你的系统架构来判断漏洞的真实可达性——理论上能大幅降低误报

这个设计思路我觉得是对的:安全审计不应该是脱离上下文的代码扫描,应该是结合系统架构的风险评估

第二个:validate + patch 闭环

# 验证某个漏洞是否真实存在npx codex-security validate findings.json "Possible SQL injection in src/query.ts:42"# 自动生成修复补丁npx codex-security patch findings.json "Missing authorization check in src/routes.ts:18"

validate 可以在修复后复查漏洞是否真的消除了——注意,scan 对比不能证明漏洞已修复,必须用 validate。patch 直接生成修复代码

完整闭环如下图所示:

scan 发现 → validate 确认 → patch 修复 → validate 验证,形成完整闭环。传统 SAST 通常只做到第一步,后面全靠人

第三个:扫描历史与对比

每次扫描都会保存,可以对比两次扫描的发现差异:

# 匹配同源漏洞npx codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_ID# 对比:哪些是新的、哪些修复了、哪些重新出现了npx codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

漏洞状态分为 new、persisting、reopened、resolved、unknown。这让安全团队能追踪漏洞的生命周期,而不只是拿到一份静态报告

CI 集成的安全设计

官方提供了完整的 GitHub Actions workflow,几个安全细节值得所有做 CI 集成的团队学习:

安装顺序有讲究——在 checkout 仓库之前先安装 codex-security,用绝对路径执行。为什么?防止仓库里的恶意脚本篡改扫描工具,接触到扫描凭证

凭证隔离——persist-credentials: false 防止仓库 token 泄漏到 Git 配置里

Action 锁版本——每个 GitHub Action 都 pin 到具体 commit SHA,不用 tag。防止上游 tag 被篡改后改变 workflow 行为

跳过 fork 和 Dependabot——这些 workflow 拿不到正常的 Actions secrets,避免凭证暴露

severity 策略用 --fail-on-severity 控制,支持 critical/high/medium/low 四档。建议先以 report-only 模式跑一段时间,观察扫描质量和运行时间,再加 severity 策略

还有一些值得一提的

  • 费用控制--max-cost 5 可以设置 USD 上限,扫描花费超过 5 美元就停。不是硬性 cap,进行中的请求会完成,但给了你控制成本的旋钮
  • MCP 集成npx codex-security mcp add 可以注册为 MCP 服务器,但只暴露只读的 info 命令。扫描、导出、认证、修复这些敏感操作仍然只能通过 CLI 执行——安全边界设计得很克制
  • Skills 同步npx codex-security skills add 可以把安全检查能力分发给你的 Agent
  • Pre-commit 钩子npx codex-security install-hook 一键安装 Git 提交前检查,发现高危漏洞就阻断提交

总结

Codex Security 是 OpenAI 用大模型做代码安全审计的一次认真尝试

它的价值在于范式转变: 从"规则匹配嫌疑代码"到"AI 语义理解判断真实威胁"。知识库上下文让扫描懂你的架构,validate/patch 形成发现-确认-修复闭环,扫描历史追踪漏洞生命周期——这些都是传统 SAST 工具做不到的

但也要清醒:

  • beta 阶段,需要申请 access,不是想用就能用
  • 依赖 OpenAI 云端模型,没有本地化部署选项,数据要发到 OpenAI
  • 按 token 计费,大规模扫描的成本需要评估(虽然有 --max-cost 控制)
  • 交互式仓库发现只支持 GitHub,其他平台需要手动准备 CSV
  • 没有真实实测数据,误报率到底比 Semgrep 低多少,还需要验证

适合谁: 有 OpenAI API 预算的团队想在 CI 里加一道 AI 安全审计、monorepo 场景需要精准扫描、想用 AI 做漏洞验证和自动修复的开发者

不建议谁急用: 预算敏感的团队、需要完全本地化部署的场景、对数据出境有严格限制的企业