AI 生成コードのセキュリティリスク:データ、メカニズム、ガバナンス
AI はすでにあなたの会社のコードのかなりの割合を書いている——予測ではなく現在形だ。本当の問いは、そのコードのセキュリティ水準である。実証研究の答えは楽観を許さない。
データは何を語るか
- 早くも 2021 年、ニューヨーク大学の研究「Asleep at the Keyboard」は、高リスクシナリオにおいて GitHub Copilot が生成したプログラムの約 40% に悪用可能な脆弱性が含まれることを示した。
- Veracode の 2025 年ベンチマーク——100 超のモデル、80 のコーディングタスク——では、約 45% のタスクで AI が OWASP Top 10 級の欠陥を持ち込んだ。モデルが「動くコード」を書く能力は向上しても、この比率は目立って改善していない。
- スタンフォード大学の対照実験はさらに危険な層を明らかにした。AI アシスタントを使った開発者はより安全でないコードを書きながら、自分のコードの安全性への自信はむしろ高かった。
欠陥率は質的に変わらないまま、コード生産量は桁違いに増えている。固定の脆弱性率に爆発する分母を掛ければ、欠陥の絶対数は洪水になる。
4 つのリスクメカニズム
汚染された学習データ。モデルは膨大な公開コードから学ぶ——その中の古いイディオム、非推奨 API、典型的な脆弱性パターンも一緒に。
コンテキストの欠如。モデルにはあなたの脅威モデルが見えない。この入力はユーザー制御か?このエンドポイントは公開されているか?文脈がなければ楽観シナリオがデフォルトになる。
セキュリティ制約のないプロンプト。開発者の指示はほぼ常に「この機能を実装して」であり「安全に実装して」ではない。明示的に求めない限りモデルは堅牢化しない——研究が繰り返し示す事実だ。
幻覚依存(slopsquatting)。モデルは存在しないパッケージ名を無視できない頻度で捏造する。攻撃者はその名前を先回りして登録し、待ち構えるだけでよい。AI 時代のタイポスクワッティングであり、詳しくはサプライチェーン攻撃の進化を参照。
ガバナンス:検知を「生産の瞬間」へ
- リアルタイム検知:コードが書かれた瞬間に分析する——書き手が人間でも AI でも。ルール照合ではなくビジネスセマンティクスとデータフローを理解するエンジンが必要だ。さもなければ AI の生産速度に誤検知がチームを溺れさせる。Sectrend CleanCode Security Agent は誤検知率 15% 未満、増分スキャン 60 秒未満——まさにこのリズムのために設計されている。
- 修復のクローズドループ:検知・トリアージ・修復を同一ターンに収束させ、AI が持ち込んだ問題はその場で AI に修復させる。バックログに積まない。
- 依存関係のアドミッション:AI が提案するすべての依存関係に存在確認とレピュテーション検証を行い、幻覚パッケージと偽装パッケージを遮断する。
- CI ゲートによる最終防衛:リアルタイム検知をすり抜けたコードをマージ前に止める関門をパイプラインに残す。
エンジニアリング組織のための 3 つの指標
計測なきガバナンスはポーズにすぎない。ダッシュボードに載せるべき 3 指標——AI コード比率とその欠陥密度を分けて測る(AI がどれだけ書いたかに加え、その部分が千行あたり何件の欠陥を持ち込むかを別々の曲線で見る)、検知レイテンシ(コードが書かれてから問題発見までの時間。日から秒への圧縮が修復コストを桁で変える)、同一ターン修復率(検出された問題のうち同じ開発ターン内で解決された割合。スキャンツールとセキュリティ能力を分ける唯一の指標)。
セキュリティチームの役割も変わる。行を審査する門番から、ルールとコンテキストの供給者へ——組織の脅威モデル、セキュアコーディング規約、承認済みコンポーネントのホワイトリストを AI の作業コンテキストとパイプラインのゲートに符号化する。蛇口を一つ見張る時代は終わった。これからは浄水場全体を運営するのだ。
