Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Two and a Half Million Hosts Still Advertise PHP 7.4

2026年10月28日に「Dev.to」が公開したITニュース「Two and a Half Million Hosts Still Advertise PHP 7.4」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

約250万台のサーバーがいまだにサポート終了済みのPHP 7.4を公開している。これはセキュリティ修正が提供されないため、深刻な脆弱性を抱え、攻撃の標的となるリスクが高い。自分のシステムで古いPHPバージョンがないか確認し、早急に対策を講じることが重要だ。

ITニュース解説

最近のインターネット上の調査で、いまだに多くのウェブサーバーが古いバージョンのPHP 7.4を使用していることが明らかになった。これはシステムエンジニアを目指す皆さんにとって、特にセキュリティの重要性を理解する上で非常に重要な情報だ。PHPは多くのウェブサイトやアプリケーションで使われているプログラミング言語であり、そのバージョン管理とセキュリティ対策は、ウェブサービスを安全に提供するために欠かせない。

2026年10月に「PHP2Shell」と呼ばれるPHPの脆弱性が公開されて以来、IT業界では「PHPが動作しているサーバーがどれくらいあるか」という問いよりも、「修正プログラムが提供されない、古いバージョンのPHPが動作しているサーバーがどれくらいあるか」という問いの方がはるかに重要視されるようになった。なぜなら、修正されない脆弱性は、攻撃者にとって格好の標的となり、サーバーが不正アクセスや情報漏洩のリスクに常に晒されることになるからだ。

この調査では、インターネット上のデバイス情報を収集・分析する「ZoomEye」というサービスが利用された。2026年10月28日時点のデータによると、PHPを使用していると認識されるサーバーは全体で1億1千万件以上に上る。その中でも、HTTPレスポンスヘッダーと呼ばれる、ウェブサイトがブラウザに応答を返す際に付加される情報の中に「X-Powered-By: PHP」という記述が含まれているサーバーは約4600万件あった。この「X-Powered-By」ヘッダーは、そのサーバーがどのような技術で動いているかを示す情報であり、ウェブ開発者やシステム管理者にとっては便利だが、セキュリティの観点からは公開を避けるべきだとされてきた。

特に注目すべきは、このヘッダーで具体的なPHPのバージョンを公開しているサーバーの数だ。PHP 7.4を公開しているサーバーは約265万件、PHP 8.1は約53万件、PHP 8.2は約80万件という結果が出ている。ここで重要なのは、PHP 7.4と8.1はすでに「End-of-Life(EOL)」、つまりサポートが終了したバージョンであるということだ。サポートが終了すると、セキュリティ上の新たな脆弱性が見つかっても、公式には修正プログラムが提供されなくなる。一方、PHP 8.2は現時点でサポートされており、セキュリティ修正も提供されている最新のバージョンの一つだ。

しかし、調査結果は直感に反して、サポートが終了しているPHP 7.4が、サポートされているPHP 8.2よりも3倍以上、PHP 8.1よりも5倍以上も多く利用されているという衝撃的な事実を示している。これは、多くのウェブサーバーがセキュリティリスクを抱えたまま運用されている可能性を強く示唆している。

「X-Powered-By」ヘッダーはウェブサーバーの設定で表示するかどうかを決められる。長年にわたり、セキュリティ対策を強化する「hardening」のガイドラインでは、このヘッダーを削除することが推奨されてきた。そのため、今回検出された数値は、あくまでバージョン情報を公開しているサーバーの「最小値」であり、実際にはもっと多くの古いバージョンのPHPが稼働していると考えられる。また、このヘッダーを削除せず公開しているサーバーは、平均的にセキュリティ対策が十分に施されていない傾向にあると推測できる。つまり、PHP 7.4の利用状況は、検出された数値以上に深刻な問題である可能性が高い。

PHP 7.4を使用しているサーバーは、単に「パッチの適用が遅れている」状態ではない。PHP 7.x系以下のバージョンは、PHP2Shellのような重要な脆弱性に対する修正プログラムがそもそも提供されない「サポート終了ブランチ」に位置している。PHP 8.1以前のバージョンには、ソースコードレベルでの修正は一部提供されたが、すぐに利用できる公式の実行ファイル(バイナリ)は提供されなかった。したがって、PHP 7.4を広告しているサーバーは、もはや「最新の状態に保つ」という概念が存在しない環境で運用されているということだ。

この問題は、個人だけでなく組織にとっても大きな懸念事項となる。ウェブサイトの数と、それを運用する組織の数は必ずしも一致しない。例えば、一つのホスティングプロバイダーが提供する共有プラットフォームでは、何十万ものドメインが同じ基盤とPHP実行環境で動作していることがある。ZoomEyeの「app="PHP"」が1億件を超えるのに対し、「X-Powered-By: PHP」が4600万件であるのは、前者が「ウェブサービスが存在する場所」を指し、後者が「具体的な実行環境を公開している場所」を指すため、互いに異なる側面を示している。

企業や組織の資産管理者にとって、本当に重要なのは、自分たちの組織が管理しているサーバーで、どのバージョンのPHPがどれくらい動作しているかを把握することだ。多くの組織では、買収したシステム、開発者が一時的に作ったサイドプロジェクト、ベンダー提供のアプライアンス、あるいは忘れ去られた社内ツールなどによって、予想以上に多くの古いバージョンのPHPが稼働していることを発見する。問題なのは、今回示された265万件という数字そのものよりも、自分たちの組織内で「誰がアップグレードの責任を負っているのかわからない」古いバージョンがどれだけ存在するかということだ。

もしサポート終了したPHPホストをすぐにアップグレードできない場合、現実的な選択肢は限られており、いずれも簡単ではない。一つは、そのサーバーをインターネットから完全に切り離し、外部からアクセスできないようにすること。二つ目は、サーバーの前に「プロキシ」と呼ばれる仲介サーバーを設置し、すべての通信をそこで検査して不審なアクセスを遮断すること。そして三つ目は、そのサービス自体を停止し、古いサーバーを完全に廃棄することだ。

一部のプラットフォームでは、ベンダーが独自の修正プログラム(バックポート)を提供しているケースもある。例えば、cPanelやCloudLinuxといったホスティング管理ソフトウェアは、自社のPHPパッケージに対して修正を提供し、多くの共有ホスティング環境をカバーしている。しかし、これらは2019年に誰かがセットアップしたようなカスタムビルドの仮想マシンなどには適用されない。

また、攻撃の検出についても再確認しておくべきだ。PHP2Shellのような脆弱性を悪用した攻撃は、アプリケーションレベルではほとんど痕跡を残さないことがある。例えば、プログラム自体は動作し続け、ウェブサーバーは正常な応答(HTTP 200)を返しながらも、ウェブサーバーのログには「メモリ制限超過による致命的なエラー」といった、一見するとシステムエラーに見えるようなメッセージしか残さない場合がある。このようなログの異常を監視し、アラートを発する仕組みがなければ、この種の攻撃に気づくことは非常に難しい。

この状況は、PHPに限らず、あらゆる種類のソフトウェアや実行環境に共通する教訓を示している。つまり、HTTPレスポンスなどで、自身が使用しているバージョン情報を公開することは、攻撃者に対して「どこから攻撃を始めればよいか」を教えているようなものだ。かつては、これは「情報開示」として軽微なセキュリティリスクと見なされ、単に「セキュリティ対策チェックリストの項目の一つ」程度の扱いだった。しかし現代では、事前認証を必要としないような重大な脆弱性が公開されてから、わずか数時間のうちに攻撃に悪用される状況が現実となっている。このような時代において、バージョン情報を示すバナーは、攻撃の標的を選ぶ上で非常に価値のある「標的情報」となる。

もちろん、ヘッダーからバージョン情報を削除しただけで、システムが完全に安全になるわけではない。しかし、自分たちのシステム全体でどのバージョンのPHPやその他のソフトウェアが使われているかを正確に把握していないことは、セキュリティインシデントが発生した際の対応を遅らせる原因となる。そして、現代において対応が遅れることは、経済的な損失やブランドイメージの低下など、はるかに大きな代償を伴う「コストの高い状態」だということを理解する必要がある。

関連コンテンツ

関連IT用語