OpenAI Codex SecurityがSASTレポートを採用しない理由
出典:OpenAI公式
詳細を読む
OpenAIは自社のコードセキュリティ製品「Codex Security」において、従来の静的解析(SAST)レポートを起点としない設計を採用しました。代わりにリポジトリのアーキテクチャ、信頼境界、意図された動作から分析を開始し、人間に報告する前に検証を行う方針です。
SASTは入力源から危険なシンクまでのデータフロー追跡に優れますが、実際のコードベースでは間接呼び出しやリフレクション、フレームワーク固有の制御フローにより近似処理が必要になります。より根本的な問題は、サニタイザーが存在しても、その制約が変換チェーン全体で維持されるかを判定できない点にあります。
具体例として、JSONペイロードから取得したリダイレクトURLに対し正規表現チェック後にURLデコードを行うパターンがあります。CVE-2024-29041ではExpressにおいて、不正なURLがデコード・解釈の過程で許可リストを迂回できる脆弱性が発見されました。データフローは明白でも、変換後に検証が有効かが真の問題でした。
Codex Securityはコードパスをセキュリティ研究者のように読み、検証と実装の不一致を探します。最小のテスト可能な単位に分解してマイクロファザーを生成し、Python環境のz3ソルバーで制約充足問題として形式化することも可能です。サンドボックス環境でエンドツーエンドのPoCを実行し、疑惑と確証を区別します。
SASTレポートを起点としない理由は3つあります。第一に、既存の検出結果が探索範囲の早期収束を招きます。第二に、SASTが内包する暗黙の前提が推論を歪め、調査ではなく確認作業に陥ります。第三に、エージェント自身の発見能力の評価が困難になり、システム改善の妨げとなります。