従来のコードセキュリティスキャンの問題

静的アプリケーションセキュリティテスト(SAST)は、過去20年以上にわたり、自動化されたコードセキュリティ分析の支配的なパラダイムとなっています。このアプローチは概念的にシンプルです:ソースコードを実行せずに分析し、既知の脆弱性シグネチャと一致するパターンを探すことです。ユーザー入力から組み立てられたSQLクエリ、境界チェックなしのメモリ割り当て、弱いパラメータで使用される暗号化関数—SASTツールはこれらのパターンを任意のサイズのコードベース全体で素早くフラグできます。

問題は誤検知率です。成熟した企業コードベースは、定期的に数千の項目が表示されたSASTレポートを受け取ります。その大部分は、悪用不可能なコードパターン、軽減された脆弱性、またはフラグされたAPIの正当な使用のいずれかを表します。セキュリティエンジニアはこれらのレポートのトリアージに膨大な時間を費やします。シグナルとノイズの比率が悪いため、多くの組織はSASTツールをスケジュールに従って実行していますが、その出力の大部分を無視するための制度的許容度を開発しています。

これはOpenAIがCodex Securityで解決したいと言っている問題です—そして製品の一部としてSASTレポートを含めないことにした理由です。

制約推論の代替手段

Codex Securityは、OpenAIがAI駆動型の制約推論と検証として説明する異なる方法論を使用しています。脆弱性シグネチャに対するパターンマッチングの代わりに、システムは脆弱性が表示される特定の文脈で実際に悪用可能かどうかを推論しようとします。

この区別は実践において非常に重要です。SASTツールは、特定の文字列フォーマッティング関数のあらゆるインスタンスを潜在的なフォーマット文字列脆弱性としてフラグする可能性があります。その関数への入力が実際に攻撃者の影響を受けることができるかどうかに関係なく。Codex Securityはデータフローを追跡し、信頼境界を理解し、現実的なアクセス権を持つ攻撃者が実際に問題のあるコードパスをトリガーできるかどうかを評価しようとします。

このアプローチは、学術的セキュリティ研究で使用される形式検証と制約充足方法から借用していますが、形式的方法が歴史的にスケールするのに苦労してきた実世界のコードベースの曖昧性と複雑性を処理するためにAI推論を適用します。

より少ない調査結果、より高い信頼

このアプローチに固有のトレードオフは、Codex Securityがsastが見つけた脆弱性を見落とす可能性があることです。OpenAIはこの制限について透過的です。システムは再現率よりも精度を優先するように設計されています:フラグされた脆弱性は実際かつ悪用可能であることを意図しています。たとえシステムが識別しないコードベース内に本物の脆弱性があったとしても。

低品質のSAST出力に溺れているセキュリティチームにとって、このトレードオフは魅力的かもしれません。信頼性の高い、実行可能な調査結果の小規模なセットは一貫して修復され、セキュリティ姿勢の測定可能な改善を生み出します。大部分が誤検知である大規模な調査結果セットは分析麻痺を生じさせ、実際には何も修正されないことになります。

OpenAIは、調査結果が信頼できる場合、開発者体験も大幅に向上することを主張しています。セキュリティツール調査結果の80%がノイズであることを学んだ開発者は、セキュリティ警告を無視することに慣れます。ほぼいつも正しいツールは異なる動作を訓練します:各調査結果を真剣に受け止めて修正してください。

検証パイプライン

Codex Securityは、AIを使用して概念実証テストケースを生成して、サンドボックス環境で脆弱性を実際にトリガーしようとする検証ステップで、初期制約推論を組み合わせています。脆弱性の悪用方法についてのシステムモデルが動作する悪用—コードパスが実行されることを単に示す無害なものでも—に変わることができた場合、調査結果への信頼が大幅に増加します。

この検証ステップは、静的パターンマッチングと比較して計算コストがかかり、このアプローチがセキュリティツール間で普遍的ではない理由の1つです。しかし、それは重要な品質ゲートを表しています。制約推論フェーズと悪用検証フェーズの両方を生き残った脆弱性は、実行ベースの検証を受けていないSAST調査結果よりも、実際のセキュリティリスクを表す可能性がはるかに高くなります。

セキュリティツール環境での位置付け

Codex Securityは、すべてのセキュリティツールの代替として位置付けられていません。OpenAIはそれをファジング、ペネトレーションテスト、および手動コードレビューに補完的として説明しています。ピッチは、自動化されたコード分析の特定の仕事に対して、推論ベースのアプローチがシグネチャベースのアプローチよりも良い結果を提供でき、AI推論が信頼できるほど成熟しているコードベースと脆弱性クラスに対して提供できることです。

製品は、AI支援セキュリティツール全体のより広い傾向を続けており、構文だけでなくコードセマンティクスを理解するシステムへ向かっています。大規模なコードコーパスで訓練されたAIモデルが、プログラム動作について推論する能力がますます向上するにつれて、自動化されたツールが確実に見つけられることと、熟練した人間のセキュリティ研究者が見つけられることの間のギャップが狭まっています—ただし、それはまだ閉じられていません。

この記事はOpenAIのレポートに基づいています。元の記事を読む.

Originally published on openai.com