大家好,我是 Ai 学习的老章
你有没有被 SAST 工具的误报折磨过?写了个 SQL 查询,工具告诉你"可能存在 SQL 注入",但你明明用了参数化绑定。传统 SAST 靠静态规则匹配,它不懂你的业务逻辑,更不懂框架的防护机制,只会机械地匹配 pattern 然后报警
OpenAI 刚开源了一个叫 Codex Security 的工具,思路完全不同——用大模型理解代码语义来判断真实威胁。不是改良规则引擎,是换了个赛道
这东西还在 beta,需要申请 access,但设计思路值得聊聊
它到底做了什么
Codex Security 是一个 CLI 工具和 TypeScript SDK,核心能力形成三步闭环:发现漏洞 → 确认漏洞 → 修复漏洞
和传统 SAST 工具的根本区别:
一张图看懂核心差异:

简单说,传统 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 sarif42 秒扫出 2 个漏洞,覆盖完整。结果目录里有可读的 report.md、结构化的 findings.json、coverage.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可以把安全检查能力分发给你的 AgentPre-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 做漏洞验证和自动修复的开发者
不建议谁急用: 预算敏感的团队、需要完全本地化部署的场景、对数据出境有严格限制的企业
夜雨聆风