powered by TechFeed
表示モード
主要ニュース

AIがPHPの脆弱性を2週間で「シェル奪取可能」に格上げ — NASAやWikipediaも対象、40年分の技術的負債が一斉に狙われる時代へ

11月2日、IEEE Spectrumが「PHP2Shell and AI Put Half the Internet on Edge」と題した記事を公開した。PHPの脆弱性「PHP2Shell」をAIが発見したことを契機に、40年分の技術的負債がAI時代において急速に顕在化しつつある現状について詳しく紹介されている。

11月2日、IEEE Spectrumが「PHP2Shell and AI Put Half the Internet on Edge」と題した記事を公開した。PHPの脆弱性「PHP2Shell」をAIが発見したことを契機に、40年分の技術的負債がAI時代において急速に顕在化しつつある現状について詳しく紹介されている。


インターネットの半分を揺るがした脆弱性

10月下旬、「PHP2Shell」と呼ばれる脆弱性が公表された。影響を受けたのは、NASAのサイト、Wikipedia、ホワイトハウスのサイト、そしてWordPressやDrupalで動くすべてのサイトだ。攻撃に成功すれば、ホストサーバー上での任意コード実行(RCE)と機密データの読み取りが可能になる。

幸い、今回は悪意ある攻撃者が悪用する前に、セキュリティ研究者がPHP Foundationへ報告し、パッチが公開された。実害は回避されたとみられる。

問題のバグ自体は2024年にすでにPHP Foundationへ報告されていた。PHPは1994年に「Personal Home Page」の略として誕生したプログラミング言語で、今も多くのレガシーサイトを支えている。このバグは「アウト・オブ・メモリーエラー」(システムが必要なメモリを確保できない状態。通常はプロセスの強制終了で終わる)を引き起こすもので、通常はプログラムのクラッシュで終わる。危険ではあるが、致命的ではない—そう判断されたまま、放置されていた。なお、CVE番号やCVSS評価スコアは記事執筆時点では元記事に記載がなく、今後の公開情報を要確認だ。

AIが「痛みを伴う推論」を代替する

状況が変わったのは、セキュリティ企業CalifがOpenAIの支援のもとPHPの独立監査に乗り出したことがきっかけだ。Califの研究者はAIツールを活用し、わずか2週間でこのバグを任意コード実行に繋げる手法を発見した。アウト・オブ・メモリーエラーを単なるクラッシュではなく、攻撃の起点として利用できることを示したのだ。

なお、「PHP2Shell」という脆弱性名は、PHPのメモリエラーを起点にシェル(shell)奪取まで到達する攻撃チェーンを端的に表したもので、発見チームが命名した。

コロンビア大学のコンピュータサイエンス准教授Suman Janaは、この手法の本質をこう説明する。

「ロケット科学ではない。ただ、非常に具体的な推論を大量にこなす必要があり、それが苦痛なのだ。AIはその点で非常にうまくやっている」

具体的には、サーバー上で動くプログラムのメモリ上の特定のアドレスへジャンプし、どのビットをどの順番で上書きすればシステムを制御できるかを導き出す—という作業だ。人間には膨大な時間と集中力を要するこの「地道な推論」をAIが高速化した。

ただし、Janaは過大評価を戒める。「AIだけでできるとは言っていない。明らかにそうではない。ただ、上位0.1%の専門家が以前より多くのことをこなせるようになり、0.1%に届かない層も細部を全部理解せずに同じ領域に踏み込めるようになっている」。

この変化が意味するのは、高度な攻撃の「民主化」だ。従来は一握りのエリート研究者だけが到達できた領域に、AIを道具として使う中級者が入り込めるようになりつつある。攻撃者側にとっても同じことが言える。

攻撃と防御の非対称性

脆弱性が開示された後、4人のエンジニアが2か月かけてパッチを開発した。Janaはここに根本的な非対称性があると指摘する。

「バグを見つけるより修正する方が難しい。攻撃のあらゆる経路を塞いだうえで、既存の機能を壊さないことを保証しなければならないからだ。」

発見に2週間、修正に2か月—この対比が、AIがセキュリティの攻守バランスをどちらに傾けているかを如実に示している。

この非対称性はオープンソースソフトウェアの持続的な課題でもある。PHPのように広く使われながら明確な収益源を持たないプロジェクトのメンテナンスは、AI以前から難題だったが、AIハッキングツールの登場でその緊急度は増している。

Janaは、この問題への対策としてフォーマル検証(形式検証)ツールの進歩に期待を寄せる。形式検証とは、数学的な手法によってプログラムの正しさを証明するアプローチで、テストベースの品質保証とは根本的に異なる。2024年10月22日にAnthropicが公開した新しい取り組みもその一つだ。「パッチはLLMが生成し、そのパッチが正しいという証明もLLMが生成する。LLMが担わないのは証明チェッカーだけ。LLMは幻覚を起こすので、何か形式的なものが必要だ」とJanaは言う。

一方、ジョンズ・ホプキンス大学情報セキュリティ研究所の准教授Matthew Greenは悲観的だ。「本当に深刻な事態が起きない限り、誰もこの問題を本気で解決しない。PHP2Shellはその閾値に届かなかった。2027年初頭あたりに、一般の人が怒るような何かが起きたとき、はじめて大規模な対応が始まるだろう」。

Greenはその一方で、ユーザーへの現実的なアドバイスも忘れない。「スマートフォンがセキュリティアップデートを通知してきたら、来週まで待つな。すぐに入れろ。」

「最初の一件」に過ぎない

セキュリティスタートアップTolmoのAIセキュリティリサーチリードであるMatt Suicheは、今回の件の本質をこう表現する。

「今起きていることは、過去40年間に人間が書いたレガシーソフトウェアが次々と露わになっていることだ。技術的負債を返済する時が来た。」

JanaもGreenも、PHP2Shellが最後ではないと見る。「間違いなく最後ではない。あとは誰が先に見つけるか、だ。今回のように、ホワイトハットハッカーが先に見つけることを願う」(Jana)。

今回はCalifの研究者が善意で動き、パッチ公開まで情報を管理した。しかし次の発見者が同じ姿勢を持つとは限らない。PHPに限らず、世界中のインフラを支える数十年来のコードベースが同じリスクを抱えている。PHP2Shellは、その問題の輪郭を初めて可視化した一件として記憶されるだろう。


詳細はPHP2Shell and AI Put Half the Internet on Edgeを参照していただきたい。