Lilith.
⌕
編集イラスト: Armin Ronacher「AIが暴く脆弱性の波は、30年分の悪いソフトウェアへの報い」
Lilithのイラスト · 編集リミックス

PythonのフレームワークFlaskの作者Armin Ronacherは、開発者の気分を一文にまとめた。AIは楽しい。だが私たちがこの30年に作ってきた悪いソフトウェアの罪を、今、宇宙が罰している。最近のPHPの件の数字を見ると、その罰がどこに一番響くかがわかる。穴を見つける速度は上がった。塞ぐ速度は上がっていない。

Xへの一つの投稿が、モデルが古い穴を掘り起こした一週間を言い当てた

Ronacherがこの一文をXに投稿したのは10月22日だ。Simon Willisonは同じ日に自身のブログで引用し、AIを使った脆弱性探しの記事に付けるsecurityとai-security-researchのタグを付けた。Ronacher自身は、具体的に何への反応なのかを書いていない。データに基づく分析ではなく、ひとつの所感だ。

文脈はその前日にWillisonが示していた。PHPプロジェクトは10月21日、攻撃者がサーバー上でコードを実行できる二つの穴について、PHP 8.x系全体の修正版を出した。どちらもCVSSスコアは9.2だ。公開された時系列によれば、Wiz Researchは8月19日、自社ツールWiz AtlasとGemini 4 Argon、GPT-5.6 Solを使って一つ目を見つけた。翌日にはDrupalへの認証なしの攻撃を、さらにその翌日にはWordPressへの攻撃を確認している。

モデルはバグ探しを短くしたが、修正の遅さは変わらない

この時系列は、Ronacherの一文が触れていない非対称を映し出す。発見からDrupalへの実用的な攻撃までは1日。発見から修正版までは63日だった。Wizは8月24日に報告し、PHPチームは9月21日にそれを認め、修正版は10月21日に出た。情報が漏れたため、予定より1日早い公開だった。

古いソフトウェアを運用する誰にとっても、ここが問題の核心だ。モデルは、何年も誰も読んでいないコードを読み、侵入口を見つけられる。だがメンテナーの代わりに修正を書くことも、何百万ものインストール環境で試すことも、企業にアップデートを促すこともしない。30年分の負債は午後のうちに見つかっても、返済は今も人の速度で進む。

セキュリティチームにとっては、時間をめぐる力関係が変わることを意味する。似たモデルを使える者は、メンテナーが塞ぐより先に穴を見つけられる。発見から修正までの空白こそが、全体の中で最も価値があり、最も壊れやすい部分になる。

宇宙は誰も罰しない、ツケを払うのは具体的なメンテナーだ

Ronacherの言い回しは的を射ているが、宿命論的でもある。罰という言葉は、自然災害のような印象を与える。だが悪いソフトウェアを書いたのは具体的な企業やプロジェクトであり、今その修正はしばしば一握りのボランティアにかかっている。PHP、Drupal、WordPressが狙われるのも、ほぼどこでも動いているからで、ほかのウェブより出来が悪いからではない。

二つ目の留保は規模だ。一つの引用と一つの事件だけでは、AIが新たな攻撃の波を起こしたとは言えない。言えるのは、モデルが研究者による深刻なバグの発見を速めたということだ。そうした発見のうちどれだけがメンテナーではなく攻撃者の手に渡っているのかは、公開情報からはまだわからない。

決め手は、発見から修正までの道のりが短くなるかどうか

注目すべきは、大きなオープンソースプロジェクトが報告から修正までの時間を縮め始めるかどうかだ。PHPの場合、報告から公開まで58日かかった。この数字が縮まらなければ、優位は直す側ではなく探す側に残る。

二つ目はお金だ。穴を見つけるモデルを持つ研究所は、資金提供や修正のための道具、防御目的でのモデルへの優先アクセスを通じて、その優位の一部をメンテナーに返せる。三つ目は公開の手順だ。PHPの件での情報漏れは、従来の調整の手順が、モデルが数時間でエクスプロイトを書く事態を想定していないことを示した。

Lilithの判定

モデルは、30年間誰も明かりをつけなかった地下室に入り、スイッチを入れた。カビはずっとそこにあった。今は泥棒にも見えるようになったのに、ペンキの缶を持つメンテナーの数は少しも増えていない。