7月13日、Chris Wysopalが「AI-generated code has made security debt a governance problem」と題した記事を公開した。AIが生成するコードによってセキュリティ債務がガバナンス問題へと変質しつつある実態を、CISOの視点から鋭く論じた内容だ。
AIはコードをマシンスピードで生成する。セキュリティは人間のスピードのまま
AIコード生成ツールの普及により、ソフトウェア開発の生産性は明らかに向上した。だがその裏で、セキュリティ組織が対処すべきリスクの流入速度も同時に加速している。
著者のChris Wysopalは、Veracodeの Chief Security Evangelistであり、1990年代にはハッカー系シンクタンク「The L0pht」で初期の脆弱性研究者として活動し、米議会でソフトウェアセキュリティについて証言した経歴を持つ。そのWysopalが今回指摘するのは、「リスクはマシンスピードで企業に流入しているのに、多くの組織はいまだ人間スピードのプロセスで管理しようとしている」という構造的な問題だ。
従来のアプリケーションセキュリティは「発見の件数」で測られてきた。脆弱性を数え、深刻度を分類し、トレンドを報告する。しかしAI時代に本当に重要な指標は、Wysopalが「リスクベロシティ(risk velocity)」と呼ぶものだ。組織が新たなソフトウェアリスクをどのくらいの速度で生み出し、どのくらいの速度で削減できるか——この両面を把握することが、CISOに求められている。
AIが再現する「既知の失敗パターン」
AIコーディングツールが生成するコードには、トレーニングデータに含まれる不安全なパターンがそのまま混入するリスクがある。具体的には以下のようなものだ。
- 不適切な入力バリデーション
- 安全でない認証フロー
- Insecure Direct Object Reference(IDOR)
- ハードコードされたシークレット
- 脆弱な依存ライブラリの選択
さらに深刻なのが、コンテキストの欠如だ。AIは、認可モデル、テナント境界、データの機密性、本番環境の設定、サービス間の相互作用——こうした「そのシステム固有の事情」を考慮せずにコードを出力する。
加えて、人間側の問題もある。締め切りに追われた開発者は、「なぜ動くのか」を理解しないまま、動くコードを採用しがちだ。コンパイルが通り、テストがパスし、機能がリリースされる。そしてリスクはシステムの奥深くに静かに蓄積する。
ソフトウェアサプライチェーンへの波及
リスクはコードそのものにとどまらない。AIコーディングツールは、古いパッケージや脆弱なライブラリ、あるいは存在しない依存パッケージを推薦することがある。
Veracodeの「2025 GenAI Code Security Report」によれば、AIコーディングツールは約45%の確率で安全でないコードを生成する。存在しないパッケージ名が出力された場合、攻撃者が同名の悪意あるパッケージを登録して待ち構えるシナリオ——いわゆる「依存関係コンフュージョン攻撃」——が現実に起きている。コーディングのショートカットが、サプライチェーン侵害に直結するわけだ。
「Shift Left」だけでは足りない。必要なのは強制力
業界は10年以上かけてセキュリティを開発ライフサイクルの早期に組み込む「Shift Left」を推進してきた。しかし実態として、多くの組織は発見結果を開発者に近づけただけで、所有権・自動化・修正能力をセットで移行できなかった。開発者にはアラートが増え、セキュリティチームは可視性を得たが、リスクの削減速度は変わらなかった。
AIによってコード出力量が増大する今、セキュリティはプロセス末尾のチェックポイントであり続けることはできない。コードが作成・テスト・承認・デプロイされる過程に、継続的なコントロールシステムとして組み込まれる必要がある。
理想は、コーディングアシスタントが脆弱なパターンを導入した瞬間に、インラインで修正案が提示され、ガバナンスの枠組みの中で検証されることだ。ただしWysopalは皮肉な逆説も指摘する。「AIでコードを書く開発者の多くは、AIによる自動修正を人間レビューなしには信頼しない。マシンスピードで生まれた脆弱性に追いつく最善手を、自ら人間スピードに落としてしまっている」。リスクとスピードの許容できるバランスを見つけることが急務だ。
「承認」はガバナンスではない
Wysopalが最も強調するのがこの点だ。CISOがAIコーディングツールを「承認」するだけでは不十分である。ツールの導入を許可したこととリスクを管理したこととは、まったく別の話だ。
ガバナンスとは以下を意味する:
- AIが生成したコードがどこから環境に入ってきたかを追跡する
- 適用されたポリシーとテストを文書化する
- 発見・修正された問題を記録する
- それらの意思決定の証跡を保持する
脆弱なコードが本番に到達したとき、「適切なコントロールが存在し、リスクはポリシーに従って管理されていた」と証明できなければならない。現状、多くの組織はAIツールが何を出力したかは把握できているが、その出力がどのようにセキュアにされ、レビューされ、ガバナンスされてから本番に至ったかを示せない。業界全体がこのギャップを埋めようとしている最中にある。
ボードや経営層が問うべき問いはシンプルだ。「AIが支援したソフトウェアは、デプロイ前にガバナンスされていたと証明できるか?」。この問いに答えられない組織において、セキュリティ債務はすでに経営リスクへと変質している。
詳細はAI-generated code has made security debt a governance problemを参照していただきたい。