OpenAI、Codex Security が SAST レポートから始めない理由を説明

OpenAIは2026年3月16日、Codex Security の設計思想を説明する投稿を公開し、この製品が static application security testing(SAST) レポートを起点に triage を行う方式ではないと明らかにした。説明によれば、Codex Security は repository そのものを読み、architecture や trust boundary、コードが意図している振る舞いを把握したうえで、見つけた仮説を検証してから人間の reviewer に渡す agent として作られている。目的は大量の可能性を並べることではなく、より信頼度の高い finding を出して AppSec の triage コストを下げることにある。

OpenAIの中心的な主張は、実務上重要な脆弱性の多くが単純な source-to-sink 問題ではないという点だ。投稿では、コード上は security check が存在していても、その check がシステムの前提とする性質を本当に保証していないケースが強調されている。例として示されたのは、web application が redirect_url を allowlist regex で検証したあと URL-decode し、redirect handler に渡すパターンだ。データフロー自体は見えやすいが、本当に難しいのは normalization や parsing の後でも最初の検証が有効な制約として残っているかどうかだと OpenAI は説明する。さらに同社は、この種の現実例として Express の CVE-2024-29041 を挙げている。

そのため Codex Security は、behavior から入り、その後に検証する構造を採っている。OpenAIによれば、システムは repository 全体の文脈で関連する code path を読み、疑わしいロジックを小さな testable slice に切り出し、必要に応じて micro-fuzzer を書く。複雑な constraint 問題では Python 環境の z3-solver のような道具も使えるようにしており、可能な場合は sandboxed validation 環境で仮説を実行して「問題かもしれない」と「実際に再現する問題だ」を分ける。OpenAIは、疑わしさを確証へ変える工程こそ現代の AppSec で最もコストが高く、Codex Security はそこを最適化したいと述べている。

OpenAIは、この方針が SAST 自体の否定ではないことも明確にしている。SAST は secure coding standard の徹底や、予測しやすい source-to-sink 系の bug、既知パターンの大規模検出に依然として有効で、defense-in-depth の一部だという立場だ。とはいえ、Codex Security を SAST report から始めると探索範囲を早く狭めすぎたり、sanitization や validation、trust boundary に関する既存ツールの前提を引き継いだりしやすく、agent が自力で見つけたことを評価しにくくなるという。今回の説明は、Codex Security を既存 scanner の高速 wrapper ではなく、複雑で文脈依存の脆弱性を repository 文脈で reasoning し、検証する layer として位置づけたものだ。