生成AI(GenAI)は、開発者が機能するコードをより速く、大規模に生成できるようにすることで、ソフトウェア開発を急速に変えている。
しかし、Veracodeの2026 GenAI Code Security Reportは、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で不合格 |
| コーディング特化型モデルと汎用モデル | 51%対52% | コーディング特化によるセキュリティ上の優位性は見られなかった |
| 大型・中型・小型モデル | 53% / 51% / 51% | モデルサイズの大型化によってセキュリティが大幅に向上することはなかった |
| 推論モデルと非推論モデル | 56%対51% | 推論モデルはセキュリティ面で一定の優位性を示した |
| PythonとJava | 63%対30% | セキュリティ性能は言語によって大きく異なった |
AI生成コードのセキュリティは56%で停滞しているとVeracodeが指摘
Veracodeは、複数のプログラミング言語と脆弱性カテゴリーを対象とする標準化されたコード生成タスクを用い、4回のテストスナップショットにわたって100を超えるAIモデルを評価した。
レポートによると、2026年のセキュリティ合格率の平均は約56%だった。
コード生成タスクの約44%では、検出可能なOWASP Top 10の脆弱性を含むコードが生成された。
これに対し、モデルがコンパイル可能なコードを生成した構文合格率はほぼ100%だった。
機能するAI生成コードが常に安全とは限らない
この差は、機能するソフトウェアと安全なソフトウェアの重要な違いを示している。コンパイルでき、想定どおり動作するコードが、必ずしもデプロイに適しているとは限らない。
Veracodeの調査結果は、LLMが構文をほぼ完全に習得した一方で、セキュリティ性能は最近の世代を通じてほぼ横ばいだったことを示している。
AIコードのセキュリティはモデルによって異なる
モデルごとの性能にも大きな差が見られた。
OpenAIのGPT-5.5は、Veracodeの2026年夏のランキングで68%と最高のセキュリティ合格率を達成し、GPT-5.3-CodexとAnthropicのClaude-Opus-4.8が62%で続いた。
しかし、ランキング評価の対象となった11モデルのうち6モデルは、50%から53%の間にとどまった。
大型AIモデルがより安全なコードを保証するわけではない
コーディング専用に設計されたモデルが、必ずしもより安全とは限らないことも重要な発見だ。
コーディング特化型モデルのセキュリティ合格率は平均51%で、汎用モデルの52%を下回った。
この結果は、コードを効率的に生成するようAIシステムを最適化しても、セキュリティ脆弱性を認識したり回避したりする能力が自動的に向上するわけではないことを示している。
セキュリティではAIモデルのサイズより推論が重要
モデルサイズを大きくしても、セキュリティ上のメリットはほとんどない。
パラメーター数が1000億を超える大型モデルのセキュリティ合格率は平均53%だったのに対し、中型モデルと小型モデルはいずれも約51%だった。
推論モデルの性能はやや高く、非推論モデルの51%に対して平均56%だった。
Veracodeは、追加の推論プロセスが内部コードレビューと同様に機能している可能性を指摘している。
AIコードのセキュリティはプログラミング言語によって異なる
セキュリティ性能は、プログラミング言語や脆弱性の種類によっても大きく異なる。
Pythonのセキュリティ合格率は63%だった一方、Javaは約30%で最も低い言語となった。ただし、Javaは一貫した上昇傾向を示した。
また、Common Weakness Enumeration(CWE)のカテゴリー間でも大きな差が確認された。
モデルはSQLインジェクション(SQLi)と暗号アルゴリズムの脆弱性に対して比較的良好な性能を示し、平均合格率はそれぞれ約83%と87%だった。
これに対し、クロスサイトスクリプティング(XSS)とログインジェクションの平均合格率は、それぞれ約15%と12%にすぎなかった。
AI生成コードのセキュリティリスクを低減する方法
AI生成コードは、機能している、あるいは高度なモデルによって生成されたというだけで安全だと見なしてはならない。
ソフトウェア開発でAI生成コードが一般化するにつれ、コード生成の速度が脆弱性を特定して修正する能力を上回れば、組織がより大きなリスクにさらされる可能性がある。
- AIおよびエージェント型ワークフローにセキュリティ制御を組み込み、安全なコーディング標準を徹底し、安全でないアクションを防止する。
- ソフトウェア構成分析(SCA)とパッケージセキュリティ制御を利用し、脆弱、悪意のある、またはコンプライアンスに違反する依存関係を検出・ブロックする。
- 高リスクのAI生成コードには人によるレビューを義務付け、機能するコードを生成するAIモデルの能力だけに依存しない。
- CI/CDパイプラインにDevSecOpsツールを組み込み、静的・動的アプリケーションセキュリティテスト、シークレットスキャン、脆弱性の修正といったセキュリティチェックを自動化する。
- AIコーディングのガバナンスとアクセス制御を確立し、承認済みモデル、許容される利用方法、安全なコーディング要件、最小権限アクセスを定める。
- テストし、インシデント対応計画を使用し、攻撃シミュレーションツールでAI生成コードの脆弱性を想定したシナリオを実行する。
これらの対策を組み合わせることで、組織はAI生成コードによるリスクを低減できる。
結論
最終的に、Veracodeの2026年の調査結果は、AIがソフトウェア開発を加速できる一方で、速度と機能性だけではセキュリティを保証できないことを示している。
組織はAI生成コードを、レビューされていない他のコードと同様に扱い、本番環境に投入する前にセキュリティテスト、修正、検証を行う必要がある。
AI生成コードの保護は方程式の一部にすぎず、組織はより広範なソフトウェアサプライチェーン全体にわたる脆弱性とリスクにも対処しなければならない。





