10月3日、Renato Losioが「AI Agents Are Disrupting Open Source Security Disclosure」と題した記事を公開した。AIエージェントが公開情報から脆弱性のエクスプロイトを自動生成することで、オープンソースの脆弱性開示プロセスが機能不全に陥りつつあるという。修正PRを開いただけで攻撃が始まる——その衝撃的な実例から話は始まる。
PRを開いた「数分後」にプローブが飛んできた
ケンブリッジ大学コンピュータサイエンス教授であり、OCamlコンパイラのコアメンテナーでもあるAnil Madhavapeddyが、自身のブログに投稿した記事が発端だ。
Madhavapeddyはパストラバーサル脆弱性(ディレクトリトラバーサルとも呼ぶ。../などを使ってアクセス制限外のファイルを読み取る攻撃手法)を修正した際の経験をこう記している:
パッチ自体は単純なもので、通常であれば「非公開で修正し、影響を受けるユーザーに通知してから公開アドバイザリを出す」という手順を踏むはずだった。ところが今回は、修正PRを開いた直後、わずか数分後に、まさにそのバグパターンを狙ったプローブが自分のウェブサーバーのログに現れたのだ。
修正PRを開いただけで攻撃が始まった。これが今起きていることの本質だ。
なぜ「エンバーゴ」が機能しなくなったのか
従来の脆弱性開示プロセスは「エンバーゴ」、つまり技術的な詳細を一定期間秘匿することで成り立っていた。修正パッチが行き渡るまでの時間を稼ぐ仕組みだ。
この前提を崩すのがAIエージェントの能力向上だ。2024年のarXiv論文では、GPT-4エージェントがCVE(共通脆弱性識別子)の説明文を与えられた場合、15件のベンチマーク脆弱性のうち87%を実際にエクスプロイトできたと報告されている。CVEの説明なしでは同じ条件でわずか7%だった。
つまり、「CVEが発行された」「変なコミットがある」「メーリングリストで奇妙な質問が出た」——そういった断片的な公開情報だけで、AIエージェントは脆弱性を特定し攻撃コードを生成できる。Madhavapeddyはこの構造的変化を「bugonomics」という概念を引用して説明している。bugonomicsとは、バグの発見・開示・悪用をめぐる経済的インセンティブや時間的競争関係を分析する概念であり、AIエージェントの台頭によってその均衡が防御側に著しく不利な形で崩れつつあると論じるものだ。Madhavapeddyはこう述べている:
セキュリティプロセスをある意味で逆転させる必要があると思う。問題のクラスを検索する人間が1人いるだけで(メーリングリストの質問でも、孤立したブランチへの奇妙なコミットでも、コンテキストの漏れでも)、別の誰かのエージェントが反応してエクスプロイトコードを生成するには十分なのだから。これは本当にまずい。
オープンソースの根幹を揺るがす問題
Chainguardのデベロッパーリレーションズ担当Adrian Mouatは、この状況がOSSメンテナーを極めて難しい立場に追い込むと指摘する:
問題を修正するためにPRを開くだけで、プロジェクトとユーザーを危険にさらすことになる。攻撃者は更新リリースが出る前にエクスプロイトを作成して使い始められる。ユーザーはリスクにさらされても何もできない。プロジェクトがソースコードより先にバイナリリリースを公開することを強いられるかもしれない。だがそれはオープンソースの根本を壊す。
この最後の一文は重要な逆説を含んでいる。OSSの根幹にある「ソースコードの透明性」こそが、AIエージェントによる脆弱性の早期察知を可能にする。バイナリだけを先行リリースすれば攻撃の手がかりを減らせるが、それはソースの公開という原則を自ら放棄することを意味する。透明性を守れば危険にさらされ、安全を守れば透明性を失う——その板挟みに、現在のOSSメンテナーは立たされている。
rcloneの作者であるNick Craig-WoodはHacker Newsのスレッドで、自身の体験数字を明かした:
rcloneプロジェクトの最初の10年間で受け取ったセキュリティ開示は約20件だった。それが先月だけで40件以上になった。AIツールでトリアージと修正案作成を補助してもなお、膨大な時間を取られている。
メンテナーができる3つの対応策
Madhavapeddyは完全なパッチが揃う前の緩和策として3つのアプローチを挙げている:
- 非公開での脆弱性議論:公開PRを避け、クローズドな場で修正を進める。GitHubのプライベートセキュリティアドバイザリ機能などを活用することで、修正内容を外部に漏らさずコラボレーションできる
- 継続的リリースの高速化:パッチをできるだけ素早く配布できるリリースパイプラインの整備。CI/CDの自動化による「修正からリリースまでの時間」の圧縮が、エンバーゴに代わる現実的な防衛手段となりつつある
- プロトコルレベルの即時対応:短命なクレデンシャル、失効可能なケイパビリティ、プロトコル制御などを用いて、全クライアントのアップグレードを待たずに脆弱な操作を無効化・制限できるアーキテクチャの導入
3番目はアーキテクチャレベルの変更を要するため、既存システムへの適用コストは高い。しかし、パッチ配布が完了するまでの数日〜数週間を「脆弱なまま待つ」しかない現状に対して、プロトコル側でリスクを制御できるという考え方は、長期的な設計方針として注目に値する。
業界全体の動き
この問題に向き合っているのはMadhavapeddyとCraig-Woodだけではない。仮想化ソフトウェアのQEMUは、脆弱性報告から修正公開までのプロセスを公式ドキュメントで整備しているプロジェクトの一つだが、自動化された脆弱性探索の高速化を受けて、すでに脆弱性エンバーゴの期間を短縮する方針を打ち出している。エンバーゴを長く保つことが「安全」だという従来の発想が、むしろリスクに転じる局面が生まれていることの証左だ。
AIによる脆弱性探索の高速化は止まらない。「秘密にしている間に配布が追いつく」という従来の前提が崩れた以上、OSSのセキュリティプロセス全体の再設計が迫られている。
詳細はAI Agents Are Disrupting Open Source Security Disclosureを参照していただきたい。