eSecurity Planet のコンテンツおよび製品に関する推奨事項は、編集上の独立性を保っています。読者が当社パートナーへのリンクをクリックすると、当社が収益を得る場合があります。 詳細はこちら
生成AI(GenAI)は、開発者がより速く、より大規模に機能的なコードを生成できるようにすることで、ソフトウェア開発を急速に変えてきました。
しかし、Veracodeの「2026年GenAIコードセキュリティレポート」では、AIのコーディング能力の向上とセキュリティの向上との間に乖離があることが明らかになりました。
現代の大規模言語モデル(LLM)は構文的にほぼ完璧なコードを生成できるようになった一方で、安全なコードを生成する能力はこの1年でほとんど向上していません。
この結果は、AI支援開発を導入する組織は、生成されたコードを適切なセキュリティテストを経るまでは信頼できないものとして扱う必要があることを示唆しています。
Veracodeレポートの要点
- AI生成コードのセキュリティは依然として停滞。Veracodeによると、構文面でほぼ完璧な性能を示す一方で、平均セキュリティ合格率は約56%にとどまっています。
- より高度なAIモデルが必ずしも安全とは限らない。コーディング専用モデルは汎用モデルとほぼ同等の性能にとどまり、大規模モデルもセキュリティ面での優位性はほとんど見られませんでした。
- セキュリティ性能はAIモデルによって大きく異なる。GPT-5.5が68%でトップに立った一方、テスト対象11モデルのうち6モデルは50%から53%の範囲にとどまりました。
- プログラミング言語や脆弱性の種類によってAIコードの安全性は変動。Pythonの成績はJavaを上回り、脆弱性カテゴリ間でも結果は大きくばらつきました。
- AI生成コードには依然としてセキュリティテストと修正が必要。本番環境に展開する前に対応が求められます。
Veracode「2026年AIコードセキュリティ」調査結果の概要
| 調査項目 | 2026年の結果 | 意味するところ |
| AI生成コード全体のセキュリティ合格率 | 56% | セキュリティテストの約44%が不合格 |
| 構文合格率 | 約100% | 機能するコードが必ずしも安全なコードとは限らない |
| 最高性能のモデル | GPT-5.5:68% | トップのモデルでもセキュリティタスクの約3分の1で不合格 |
| コーディング特化モデル vs 汎用モデル | 51% vs 52% | コーディング特化がセキュリティ面での優位性をもたらすわけではない |
| 大規模 vs 中規模 vs 小規模モデル | 53%/51%/51% | モデルサイズの大きさはセキュリティの大幅な向上にはつながらない |
| 推論モデル vs 非推論モデル | 56% vs 51% | 推論モデルはわずかながらセキュリティ面で優位 |
| Python vs Java | 63% vs 30% | セキュリティ性能は言語によって大きく異なる |
Veracode、AI生成コードのセキュリティは56%で頭打ちと指摘
Veracodeは、複数のプログラミング言語と脆弱性カテゴリにまたがる標準化されたコード生成タスクを用い、4回の測定スナップショットにわたって100を超えるAIモデルを評価しました。
その結果、2026年の平均セキュリティ合格率は約56%であることが判明しました。
コード生成タスクの約44%で、検出可能なOWASP Top 10の脆弱性を含むコードが生成されていました。
これに対し、コンパイル可能なコードを生成する構文合格率は、ほぼ100%に達していました。
機能するAI生成コードが常に安全とは限らない
この差は、機能するソフトウェアと安全なソフトウェアの重要な違いを示しています。つまり、コンパイルされ期待どおりに動作するコードが、必ずしも展開して安全とは限らないということです。
Veracodeの調査結果は、LLMが構文面ではほぼ完成の域に達している一方で、セキュリティ性能は近年の世代を通じて比較的横ばいのままであることを示しています。
AIコードのセキュリティ性能はモデルによって差がある
個々のモデルの性能にも、かなりのばらつきが見られます。
Veracodeの「2026年夏版リーダーボード」では、OpenAIのGPT-5.5が68%で最高のセキュリティ合格率を達成し、GPT-5.3-CodexとAnthropicのClaude-Opus-4.8が62%で続きました。
しかし、リーダーボードで評価された11モデルのうち6モデルは、50%から53%の範囲にとどまりました。
大規模なAIモデルだからといって、より安全なコードが保証されるわけではない
重要な発見の一つは、コーディング専用に設計されたモデルが必ずしもより安全とは限らないという点です。
コーディング特化型モデルの平均セキュリティ合格率は51%で、汎用モデルの52%と大差ありませんでした。
これは、AIシステムを効率的なコード生成に最適化しても、セキュリティ脆弱性を認識・回避する能力が自動的に向上するわけではないことを示唆しています。
セキュリティにおいてはモデルサイズより推論能力が重要
モデルサイズを大きくしても、セキュリティ面での優位性はほとんど得られません。
パラメータ数が1000億を超える大規模モデルの平均セキュリティ合格率は53%だったのに対し、中規模モデルと小規模モデルはいずれも約51%でした。
推論モデルはやや優れた成績を示し、平均56%だったのに対し、非推論モデルは51%にとどまりました。
Veracodeは、追加の推論プロセスが内部的なコードレビュー工程と似たような機能を果たしている可能性があると指摘しています。
AIコードのセキュリティ性能はプログラミング言語によっても異なる
セキュリティ性能は、プログラミング言語や脆弱性の種類によっても大きく異なります。
Pythonのセキュリティ合格率は63%に達した一方、Javaは約30%と最も低い水準にとどまりました。ただし、Javaについては一貫した上昇傾向も見られました。
このレポートでは、CWE(Common Weakness Enumeration)のカテゴリ間でも大きな差があることが分かりました。
SQLインジェクション(SQLi)や暗号アルゴリズムに関する脆弱性については比較的良好な成績を示し、平均合格率はそれぞれ約83%、87%でした。
対照的に、クロスサイトスクリプティング(XSS)とログインジェクションの平均合格率は、それぞれわずか約15%、12%にとどまりました。
AI生成コードのセキュリティリスクを低減する方法
今回の調査結果は、AI生成コードが機能しているから、あるいは高度なモデルによって生成されたからといって、安全であると決めつけるべきではないことを示しています。
ソフトウェア開発においてAI生成コードの利用が拡大するにつれ、コード生成の速度が脆弱性の特定・修正能力を上回った場合、組織はより大きなリスクにさらされる可能性があります。
- AIおよびエージェント型ワークフローにセキュリティ管理を組み込むことで、安全なコーディング標準を徹底し、危険な操作を防止する。
- ソフトウェア構成分析(SCA)およびパッケージセキュリティ管理を活用することで、脆弱・悪意のある・非準拠な依存関係を検出またはブロックする。
- リスクの高いAI生成コードには人間によるレビューを義務付ける。AIモデルが機能するコードを生成できるかどうかだけに頼らないようにする。
- DevSecOpsツールをCI/CDパイプラインに統合することで、静的・動的アプリケーションセキュリティテスト、シークレットスキャン、脆弱性修正などのセキュリティチェックを自動化する。
- AIコーディングのガバナンスとアクセス制御を確立する。承認済みモデル、許容される利用範囲、安全なコーディング要件、最小権限アクセスを定義する。
- インシデント対応計画をテストし、AI生成コードの脆弱性に関するシナリオで攻撃シミュレーションツールを活用する。
これらの対策を組み合わせることで、組織はAI生成コードに起因するリスクを低減できます。
結論
結局のところ、Veracodeの2026年の調査結果は、AIがソフトウェア開発を加速させる一方で、速度や機能性がセキュリティを保証するものではないことを示しています。
組織はAI生成コードを、未レビューの他のコードと同様に扱い、本番環境に投入する前にセキュリティテスト、修正、検証を行う必要があります。
AI生成コードの安全確保は問題の一部にすぎず、組織はより広範なソフトウェアサプライチェーン全体にわたる脆弱性やリスクにも対処する必要があります。