VeracodeのAIコード調査結果45%が実際に意味すること

Veracodeの2025年版GenAIコードセキュリティレポートでは、テストされたコード生成タスクの45%が既知のセキュリティ上の欠陥を含んでいました。この調査は4つの言語にわたる80のタスクを使用し、100以上のモデルで脆弱性クラスを選定したものであり、AIが生成するすべてのコードの実測欠陥率ではありません。出典: https://www.veracode.com/wp-content/uploads/2025_GenAI_Code_Security_Report_Final.pdf
このベンチマークは特定のプロンプトと脆弱性クラスをテストしたものです。プロの開発者が運用するコードベースを測定したものでも、普遍的なセキュリティの上限を証明するものでもありません。この調査結果は、独立したセキュリティチェックを優先するための参考情報として活用してください。自チームの欠陥率の予測には使用しないでください。
他の調査では異なるサンプルや定義が使用されており、異なる数値が報告されています。それらの比率をVeracodeの45%という結果と、同一の母集団から得られたものとして組み合わせて使用しないでください。認可、入力処理、シークレット、セッション管理など、自分のアプリケーションに関連するリスクをテストしましょう。
セキュリティの失敗は実際の影響をもたらす可能性がありますが、調査結果は自己申告に基づくものであり、特定のアプリケーションがどの程度の頻度で影響を受けるかを示すものではありません。確認された調査結果と修復にかかった時間を、自社環境内で記録しましょう。
AIが安全でないコードを生成する理由
AIコーディングモデルは、プロンプトにアプリケーション固有の制御が省略されている場合や、出力がレビューなしに受け入れられた場合に、セキュリティ上の問題がある実装を生成することがあります。学習データに関する説明だけでは、特定の欠陥が発生した原因を特定することはできません。
具体的なパターン:
- 入力バリデーションが欠如しているか、アプリケーションのデータルールと一致していない可能性がある
- 認可チェックが、アプリケーションのロールやオブジェクトの所有権を適切に適用していない可能性がある
- 生成された設定コードやサンプルコードにシークレットが露出する可能性がある
- レビューされていない場合、エラーレスポンスが内部の詳細情報を漏洩する可能性がある
対策:すべてのPRに対する自動セキュリティテスト
明確な要件定義は有効ですが、プロンプトだけではセキュリティを保証できません。変更内容をレビューし、関連する静的解析や依存関係チェックを実行し、リスクの高い変更ごとに認可および入力境界をテストしましょう。
TestSpriteは設定されたUIおよびAPIフローの実行をサポートしており、一部のネガティブケースも含みます。テストスイートがカバーしていないリスクに対しては、専用のセキュリティテストと人によるレビューが引き続き必要です。マージ前に失敗内容を確認してください。
Veracodeの調査結果を、生成されたコードを独立した形で検証する理由として活用しましょう。チェックで発見された脆弱性と、見逃された脆弱性を追跡し、カバレッジを継続的に改善していきましょう。
TestSpriteを無料で試す →