トピック

「予防的サービス停止」は日本に定着するのか? PHP脆弱性問題が起こした変化

Webサイトやサーバー構築で一般的に使われているスクリプト言語「PHP」に重大な脆弱性が発見された。

2件の脆弱性があり、いずれもCVSS4.0のスコアでは9.2となっていて、評価は「クリティカル」。致命的な脆弱性として深刻度が高い。

脆弱性の存在は事前に発表されており、パッチの公開時間も10月21日午後11時(日本時間)とされた。この時間に脆弱性情報の詳細が公表されることになり、サイトやサーバーの運営者は即時の対応が求められた。

世界中の多数のサイトで使われているPHPのため、影響を受けるサービスは膨大になる。各国でもサイトを停止するなどの対応に追われ、日本でも同様にサービスを停止する動きが広がった。鉄道事業者が台風を前に計画運休をするように、これからは脆弱性対応でサービスの「計画停止」をする、そんな世の中になるのかもしれない。今回の事例は、そんな潮目の変化を感じさせた。

PHPで何が起きたか

今回のPHPの脆弱性は複雑な経緯を辿った。詳細はPHPを開発するPHP財団自身が発表しており、それによれば、もともとは2024年の外部セキュリティ監査がそのきっかけだったという。この時に発見された1件の問題からは、今回の脆弱性の1つにつながる兆候が発見されていたが、当初は攻撃の経路が発見できなかった。

PHP財団によれば、脆弱性が影響するのは「ほぼすべてのリクエストが通るPHPのメモリ管理とエラー処理の部分に集中」しており、問題の修正の影響が大きく、攻撃経路が発見できないうえに人材不足といった理由で、当時は修正作業の停滞を繰り返したという。PHP財団は「構造的な失敗だった」と認めている。

その後2026年になって、Claude Mythos、OpenAIのDaybreak Redなどのツールを使って検証が行なわれるなど、対応が進められた。そしてセキュリティ企業Califの研究者がリモートコード実行の問題を報告。OpenAIからも8月11日に同じ根本原因が報告されたという。

その後も脆弱性に対して取り組んできたPHP財団のセキュリティチームだったが、この脆弱性情報が日本時間10月21日0時頃からオンラインフォーラムやSNS上で拡散され始めた。技術情報の詳細は漏えいしなかったもののCVSSスコアが最大の10という誤った数字となっており、騒ぎが拡大した。

結果として事前告知が当初予定から前倒しされ、日本時間10月21日午前4時30分に公表された。修正パッチのリリース日も22日23時から21日23時へと変更された。

その後、脆弱性発見企業のCalifが誤って実証動画を公開。21日午前8時頃からは、重要インフラ向けに提供した緩和策のアドバイスも漏えいした可能性もあった。さらに21日16時41分、「Chainguardが公開禁止措置を一方的に破り、修正を含むビルド済みイメージを公開した」という。

これを解析することで攻撃者が脆弱性情報を取得することが可能だったとして、PHPは強く批判。これに関しては相互に反論が繰り返されており、今回はこれ以上は触れないが、いずれにしても、「多くのサイトやサーバーで使われるネットの基幹的なパーツであるPHP」に致命的な脆弱性が存在し、その公開までも紆余曲折があった、というのがPHP側の説明だ。最終的には、修正パッチは予定より少し早い22時30分~22時40分頃にかけて公開された。

PHPセキュリティ問題の流れ(PHP財団の説明を元に作成)

7割のサイトで使われるPHP 日本・世界における緊急対応

こうした動向を受けて、日本では情報処理推進機構(IPA)がPHPのセキュリティリリースの公開予定に対して「事前準備のお願い」を公表。迅速な対応を呼びかけていた。政府の国家サイバー統括室も13時の段階で注意喚起の投稿を行なっているが、世界各国でも同様に国の機関が注意喚起を行なっていた。

IPAの「事前準備のお願い」

21日23時にパッチが公開されるということは、それは攻撃者側も脆弱性情報の詳細を取得できるということを意味する。

これまでも常に言われてきたことだが、脆弱性情報の公開は「攻撃開始の号令」でもある。脆弱性を解析して悪用する攻撃を開発して実行する。それまでにパッチを適用して防御する。そのラリーがこれまでも続いてきて、そうした過去の経緯もあってMicrosoftは毎月第2火曜日(米国時間)に脆弱性情報を公開することを定例化し、システム管理者が準備できるようにしている。

Web技術を調査するW3Techsでは、サーバーサイドプログラミング言語を使うサイトの約7割でPHPが使われていると分析。特に市場シェアの高いWordPressがPHPで構築されていることが大きいとされている。

韓国のセキュリティ企業アンラボによれば、脆弱なPHPのバージョンを使用していると推定されるホストが100万以上にも及び、日本でも15万以上のホストが観測されているという。これらの数字の中で、実際に脆弱性の影響があるサイトなどがどの程度かは定かではないが、世界中で少なくない数が影響を受けることは間違いがない。

影響を受けるサイトなどでは、今回の脆弱性を悪用することでリモートでのコード実行が可能になり、サーバーの乗っ取り、サイトの書き換え、不正プログラムの設置、データベースの個人情報の窃取、サービス停止など、ほぼ「何でもあり」の状況になりえる。

仮に攻撃者がAIを駆使して即座に脆弱性を解析して攻撃ツールを使って一斉に攻撃を開始した場合、被害がどこまで拡大するかは予測ができない。

首相が大至急のお願い。「予防的な計画停止」は定着するか?

こうしたことから、日本のIPAだけでなく、世界各国でも政府機関などから警告が発せられ、幅広く対応が求められていた。そして日本では、高市早苗首相が22時前の段階で「大至急のお願い」としてPHPの脆弱性について投稿もしている。高市首相はその前には、「レベル5氾濫特別警報」が発令された大雨に関する状況を投稿しており、そうした中でわざわざPHPに関して言及したことは、この問題を重視しているという考えを示したものとも取れる。

高市首相の投稿に先んじて、対応を進めた企業も多かった。脆弱性に対する攻撃において、最も危険なのは、脆弱なシステムがインターネットに公開されていることだ。逆にインターネットに公開されていなければ安全性が高まることは確かだ。

そこで、サービスを休止して、パッチの公開を待って適用し、その後再開する、という方法をとった事業者が出てきた。

さらに高市首相はパッチ公開後の10月22日13時に、「高市早苗公式サイト」もサイトを一時停止して対応したと表明。「サイトを一時的に停止することも重要」とのコメントをしている。

日本では、脆弱性対応のためにサービスを停止するという判断は、これまでは難しかったように思う。「安定している環境で、不具合も目に見えないし、特に問題も発生していないので(不具合のある)旧バージョンを使い続ける」ことや、「脆弱性対応でパッチを当ててトラブルが起きたら誰が責任を取るのか」、「メンテナンスが長引いたらお詫びが必要(いわゆる詫び石)」といった具合に、セキュリティは後ろ向きと考えられがちだ。

しかし、同様に「どんな状況でも運行して当然」と思われていた鉄道で、台風の到来を前に予防的に運休する「計画運休」が次第に認知されるようになり、今年も運休が行なわれた。これまでは、運休して結局台風が上陸しなかった場合の批判も出ていたのが、次第に「予防であれば仕方がない」という風潮になってきた。

今回のPHPの脆弱性でも、同様の潮流が生まれようとしているようにも感じる。「予防的な計画停止」が受け入れられる素地が生まれてきているのではないだろうか。

昨今、発表が相次いでいる大量の個人情報漏えい事件の数々では、多くが原因を不正アクセスとしており、こうした攻撃では何らかの脆弱性が悪用される例が多い。脆弱性が発見されたときに、サービスを停止しないで漏えいさせてしまうよりも、「攻撃が発生しなかったがサービス停止は正解」という風潮の方が、より安全なシステムに繋がるだろう。

もちろんさまざまなサービスで「メンテナンス」のような休止期間が設けられていて、一定程度は受容はされている。ただ、今回のように「脆弱性対応で緊急で停止する」という場合、オフピークの深夜に対応できるとは限らず、「停止によって仕事が滞って困る」というユーザーも出てくる可能性はある。その場合に、今回の事例がひとつの典型例として「計画停止」という考え方の認知拡大に繋がっていくかもしれない。

もちろん、むやみに停止すればいいという話ではなく、パッチを適用するにもシステムの検証を行なって安全にサービスを再開する必要がある。鉄道であれば台風一過の影響を調査して安全に運行を再開するような作業だ。

こうしたコストも、高市首相が率先して必要であることをアピール。特にITに疎い経営層には影響力が高いと見られ、潮目の変化を感じさせる出来事だったように感じている。今後、IT業界にもこうした計画停止が根付く、ひとつのきっかけになるのかもしれない。

2005年に某インターネット媒体の編集者からライターに転身。モバイル、カメラ、決済・金融分野で主に活動中。Xは@surblue。