技術 約4分で読めます

Codex SecurityがSASTレポートを出さない理由

OpenAIはCodex Securityのアーキテクチャについて「なぜSASTレポートを出さないのか」という説明記事を公開した。AI駆動の制約推論(constraint reasoning)によって従来のSASTが抱える誤検知問題を解消するアプローチの詳細が明かされている。

SASTとは何か

SAST(Static Application Security Testing、静的アプリケーションセキュリティテスト)は、ソースコードやバイトコードを実行せずに解析して脆弱性を検出する手法だ。ルールベース・パターンマッチングが中心で、古くから使われている。

主なSASTツールと特徴は以下の通り。

ツール手法主な対象
Semgrepパターンマッチング多言語
CodeQLデータフロー解析多言語(GitHub連携)
Checkmarx構文木解析多言語・エンタープライズ
BanditルールセットPython
SonarQube静的解析+品質指標多言語

SASTの問題点として広く知られているのが誤検知(false positive)の多さだ。パターンに一致するコードを機械的に報告する性質上、実際には悪用不可能なコードパスも大量に報告される。開発者が疲弊して警告を無視するようになる「アラート疲れ」が生じやすい。

Codex SecurityのアプローチはSASTと何が違うか

Codex SecurityはSASTのようなパターンマッチングに依存しない。プロジェクト全体のコンテキストを深く読み込んだ上で、AI駆動の制約推論によって「実際に悪用可能かどうか」を判断する。

処理は3段階で進む。

flowchart TD
    A[リポジトリ全体の取得] --> B[コンテキスト分析<br/>セキュリティ関連の構造把握<br/>脅威モデル生成]
    B --> C[脆弱性特定<br/>実世界の影響で優先順位付け]
    C --> D[サンドボックス検証<br/>再現性・悪用可能性を確認]
    D --> E[修正案の提案<br/>システム動作に整合した実装]

コンテキスト分析では、プロジェクトのセキュリティ関連構造(認証フロー、入力バリデーション、データストアへのアクセスパターン等)を把握し、編集可能な脅威モデルを生成する。

脆弱性特定では、このコンテキストをもとに、単なるパターン一致ではなく実際の攻撃シナリオから見た影響の大きさで優先順位を付ける。

検証フェーズが従来SASTとの最大の差別化点だ。特定した脆弱性をサンドボックス環境で実際に悪用できるか検証する。悪用不可能と判定されたものは報告しない。これが誤検知削減の核心にある。

ベータ期間の実績

OpenAIは120万コミットにわたるベータテストのデータを公開している。

指標数値
クリティカル脆弱性792件
高重度脆弱性10,561件
誤検知削減率全リポジトリで50%以上

SASTは報告件数が多いほど有能に見えるが、開発者にとっては対処できる量に限界がある。Codex Securityは「スキャンした件数」ではなく「確認済みの実在する問題」だけを報告することを設計目標としている。

SASTが不要になるわけではない

ただし、SASTが完全に不要になるという話ではない。SASTは即時フィードバックを得たい場面や、CI/CDの早期段階でパターン既知の問題を素早くブロックする用途では依然有効だ。

Codex Securityが置き換えようとしているのは、SAST出力をそのまま最終報告として扱う運用だ。実際の悪用可能性を検証せずに大量の警告を出力し、開発者がトリアージに追われる状況へのアンチテーゼだ。

制約推論とはどういう仕組みか

AIによる制約推論(constraint reasoning)とは、コードが持つデータフローの制約を形式的に表現し、攻撃者の操作可能な入力がどの制約を満たしてどのコードパスを通過できるかを推論する手法だ。

たとえばSQLインジェクションを例に取ると、SASTは「ユーザー入力が文字列連結でクエリに渡っている」というパターンを検出する。制約推論ベースのアプローチは「そのユーザー入力が実際にAPIを通じて外部から制御可能か」「エスケープやバリデーションが事前に適用されるパスが必ず通るか」まで検証する。検証の結果、攻撃が実現可能なコードパスが存在しないと判定されれば報告しない。

フロンティアモデルの推論能力がこの検証ステップの精度を担保している。ルールベースのSASTが扱えないような複雑な依存関係やコンテキスト依存の条件を、モデルが自然言語レベルの理解で処理できる点が従来手法との違いだ。

提供状況

Codex Securityはリサーチプレビューとして ChatGPT Pro・Enterprise・Business・Edu のユーザーに提供中で、提供開始から1ヶ月間は無料で利用できる。