AI・SEO対策

PHP2Shell、パッチの次は改ざんの点検|誰が更新し、検索とAIの土台に何が残ったかを確かめる

日高 駿12分で読めます
PHP2Shell、パッチの次は改ざんの点検|誰が更新し、検索とAIの土台に何が残ったかを確かめる

「PHPは更新した。これで一段落だ」。10月21日に修正版が出たPHP2Shellについて、そう報告を締めくくりたくなる気持ちは分かります。ただ、更新が防ぐのはこれからの侵入です。公開前から攻撃の試みが観測されていた以上、更新より前に置かれたページは、PHPを上げても消えません。

PHP2Shellへの対応は二段で考えます。一段目は、誰がPHPを更新するのかを契約の形から確かめ、修正版になったかを確認すること。二段目は、更新前に入り込んだ改ざんが検索の索引に残っていないかを点検すること。Googleは、AI による概要と AI モードにリンクとして表示される条件に「インデックスに登録」を挙げ、基本として「検索ポリシーを遵守すること」を置いています。改ざんで作られたページは、そのポリシーで言う「ハッキングされたコンテンツ」です。改ざんは、Googleの検索とAI機能が共有する索引に入り込みます。

この記事が扱うのは取込層(検索やAIの索引に何が入るか)。読者として想定するのは、サイトの担当者と、日本語サイトを日本の制作会社やサーバーに預けている海外ブランドの日本の担当者です。脆弱性の技術的な仕組みは、PHPの公式アドバイザリと各社の分析に譲ります。


KEY POINTS

  • 更新が塞ぐのはこれからの侵入で、公開前に置かれたページは残り得る。
  • PHPを更新する人は、レンタルサーバー・VPS・委託先というサイトの置き場所で変わる。
  • 点検する先はサーバーだけでなく、Googleの検索とAI機能が共有する索引の中身。

10月21日に出た四つの修正版と、公開前の攻撃

PHPプロジェクトは10月21日、8.5.12・8.4.27・8.3.36・8.2.35を公開しました。認証なしでリモートからコードを実行され得る脆弱性2件(CVE-2026-109618/CVE-2026-109619)の修正で、どちらもCVSS v4.0で9.2と評価されています。

前日の予告では、公開は10月21日14:00 UTC(日本時間23時)。公式アドバイザリが対象に挙げたのは「all PHP installations serving web requests」、ウェブのリクエストを処理するPHP全般です。PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedが名指しされています。中でもmod_phpは、アプリケーションのコードが動く前に、認証なしのリクエストで攻撃を起こせることが実証済みだといいます。

"There are no complete mitigations, updating is the only safe choice."

PHP「PHP 8.5.12 Released!」ほか各リリース告知(2026年10月21日)

公開前の動きは、PHPの公式発表には出てきません。拾えるのはセキュリティ企業の記事からです。Tenableは、Amazon Threat Intelligenceが10月17日に悪用の試みを観測したと伝えています。SansecはCloudflareの報告として、10月21日07:43 UTC、修正版の公開より前に初期の攻撃があったと書いている。いずれも各社の観測を引いた二次情報である点は押さえておきたい。

ITmediaは、さくらインターネットやXServer、GMOペパボなどのレンタルサーバ各社が緊急メンテナンスを実施したと報じました。高市早苗首相が自身の公式Xで「大至急のお願い」として、修正アップデートへの対応を呼び掛けたとも伝えています。

「誰が更新するのか」は、サイトを置いた場所で決まる

同じ「PHPを更新してください」でも、手を動かす人はサイトの置き場所で変わります。さくらインターネットが10月22日に出した告知は、その線をはっきり引いていました。

さくらのレンタルサーバについて、同社は「当社サービスで提供しているPHPについて必要な修正を適用しています」と書いています。サポートを終了したPHPでも、同社が提供しているバージョンには修正を当てた。その上で、最新のサポート対象バージョンを使うよう勧めています。

さくらのVPSは扱いが違う。サービス提供の部分ではPHPを使っていないため影響はないとし、「お客さまのVPS内でPHPが稼働している場合は最新版へのアップデートをおすすめします」と続けます。OSやソフトウェアを利用者が管理するサービス全般についても、PHPの状況を確認して修正版へ更新するよう勧めていました。

Sansecの記事も同じ線を引いています。自分でサーバーを管理していないなら、ホスティング事業者に今すぐ更新を頼むこと。サイトのコードの中からは直せない、とも。

サイトの置き場所PHPを更新するのは担当者が確かめること
共用のレンタルサーバー事業者(さくらは自社が提供するPHPに修正を適用)事業者の告知。管理画面で選んでいるPHPがサポート対象の系列か
VPS・クラウドのサーバー利用者(OSやソフトを自分で管理する契約)誰がログインして更新するのか。修正版の番号になったか
OSの配布パッケージで入れたPHP配布元が更新パッケージを出し、適用はサーバーの管理者配布元・LTSベンダーの更新パッケージ(PHPの案内に沿って)
制作会社・代理店に保守ごと委託契約の中身次第保守にOS・ミドルウェアの更新が含まれるか。10月21日以降に更新したか

この切り分けが曖昧になりやすい構成を一つ考えてみます。日本に進出した海外ブランドで、本社のサイトはグローバルのクラウドにあり、本社のチームが管理している。日本語サイトは日本の制作会社が作り、日本のレンタルサーバーかVPSに置いた。公開後の保守は月額契約で、中身は記事やバナーの差し替えだけ。この形だと、本社は日本語サイトのPHPのバージョンを知らず、制作会社は「サーバーは契約外」と考えていて、誰もPHPを更新していない、ということが起こり得ます。

確かめる質問は一つで足ります。「日本語サイトのPHPを更新するのは誰で、今のバージョンはいくつか」。答えが一往復で返ってこないなら、そこが最初の穴です。

改ざんは「検索とAI機能の土台」に入り込む

脆弱性を突かれたサイトで起き得ることの一つが、Googleの言う「ハッキングされたコンテンツ」です。自社のドメインで、知らないページが作られ、索引に入る。Googleの検索とAI機能は、その索引という同じ土台に立っています。

Googleのスパムポリシーは、ハッキングされたコンテンツを「サイトのセキュリティ上の脆弱性に付け込まれ、許可なくサイトに配置されたコンテンツ」と定義しています。例として並ぶのは、コード インジェクション、ページ インジェクション、コンテンツ インジェクション、リダイレクト。担当者が見落としやすいのはページ インジェクションです。

「サイトの既存のページにはハッキングされた形跡が見られなくても、このように新たに作成されたページによって、サイトにアクセスしたユーザーや検索結果におけるサイトのパフォーマンスに悪影響が及ぶおそれがあります。」

Google 検索セントラル「Google ウェブ検索のスパムに関するポリシー」

トップページを開いて「何も変わっていない」と確かめても、安心材料にはならないということです。リダイレクトについても同じ文書は、Google検索の結果からクリックしたときだけ不審なページに飛ばし、同じURLをブラウザで直接開くと飛ばない場合がある、と書いています。ハッカーが所有者に見つからないようクローキング(検索エンジンと人に別の内容を見せる手口)を使うのも珍しくないと、同じ文書は書いています。

ここからがAI機能の話になります。Googleの「AI 機能とウェブサイト」は、AI による概要や AI モードでリンクとして表示される条件を、こう書いています。

「AI による概要や AI モードでサポートリンクとしてページが表示されるには、ページがインデックスに登録されており、Google 検索でスニペットが表示され、検索の技術的要件を満たしている必要があります。」

Google 検索セントラル「AI 機能とウェブサイト」(最終更新 2025-12-31)

同じ文書は、AI 機能にも検索の基本のベストプラクティスが当てはまるとし、その一つに「検索ポリシーを遵守すること」を挙げています。AI による概要や AI モードに表示されるための追加の要件はない、とも書いている。GoogleのAI機能のための別の入口があるわけではなく、通常の検索と同じ索引とポリシーの上に乗っているのです。

念のため書き添えると、改ざんページがAIの答えに引用される、とGoogleが書いているわけではありません。Googleはむしろ、ハッキングされたコンテンツが検索結果に含まれないよう最善を尽くしている、と説明しています。サイトがセキュリティの問題の影響を受けていれば、検索結果に警告ラベルが付いたり、ブラウザに警告ページが出たりもする。原文から言えるのは、改ざんページはポリシー違反の側にあり、検索とAI機能に共通の土台の上で、自社サイトのパフォーマンスに悪影響を及ぼすおそれがある、というところまでです。

問題の本質は、サーバーの穴そのものより、自社のドメインと自社の名前の下に、何が索引されているかを自分で把握できているかどうかにある。PHPの更新が片付けるのは前者だけです。

日本語サイトで知られた手口「日本語キーワードによるハッキング」

web.devには「日本語キーワードによるハッキングを解決する」というGoogleのガイドがあります。最終更新は2015年の古い文書ですが、点検の手掛かりは今も多い。ランダムなディレクトリ名で、自動生成された日本語テキストのページを作る。偽ブランド品を売るストアへのアフィリエイトリンクで稼ぐ。ハッカー自身をSearch Consoleのプロパティ所有者に加え、サイトマップなどの設定を操作する。リンクを踏むと404を返して「もう消えた」と思わせるのも、クローキングによるものだとしています。

この記事で参照した資料の範囲では、PHP2Shellでこの手口が使われたという報告は出ていません。検索の側から改ざんを探す手順としては、今もそのまま使える。

点検は公開日ではなく10月17日から始める

点検の起点は修正版の公開日ではありません。Tenableによれば、Amazonは調査を少なくとも10月17日から始めるよう勧めています。更新を済ませたサイトでも、この日以降の変化を見ます。

確かめることどこで怪しいサイン
PHPのバージョンサーバーの管理画面、または更新担当者への確認8.5.12/8.4.27/8.3.36/8.2.35より前。8.1以前で配布元の修正もない
セキュリティの問題Search Console「セキュリティの問題」「ハッキングされたコンテンツ」などの検出
所有者・ユーザーSearch Console の所有権の確認の詳細見覚えのない所有者や確認済みユーザー
索引の中身Google で「site:自社ドメイン」。出なければ別の検索エンジンでも見覚えのないディレクトリ、意味の通らない日本語の題名
クローキングSearch Console の URL 検査人には404、Googleには別の中身
条件付きのリダイレクトcURL や Wget で、リファラーやユーザー エージェントを指定して取得検索経由のときだけ外部へ飛ぶ
ファイル.htaccess、index.php・wp-load.php・404.php・view.php、10月17日以降に更新日時が変わったファイル覚えのない書き換えルール、難読化されたコード
サイトマップSearch Console とサーバー上のサイトマップ追加した覚えのないサイトマップ、不審なURL

何か見つかったら、web.devの手順は、消す前にサイト全体のバックアップを取ることから始めています。片付けたら、Search Consoleの「セキュリティの問題」から審査をリクエストする。Googleのヘルプは、一部のページだけ直しても検索結果は変わらないとして、サイト全体での修正を求めています。審査の完了には、数日から数週間を要することがあります。

索引の点検とは別に、自社名で実際に検索し、AI モードなどで自社について質問してみて、見覚えのないURLやページが出てこないかも見ておきたいところです。検索結果やAIの答えに何が出ているかは、聞いて確かめるまで分かりません。

予防は「更新」と「年末」の二本立てで

予防の中心は更新です。すぐ更新できない場合の措置もPHPは示していますが、その措置では安全にならないと本人たちが書いています。

  • サポート中の系列は修正版へ:OSの配布パッケージで入れたPHPは、配布元・LTSベンダーの更新パッケージを確認します。Linuxディストリビューションには事前にパッチが渡されていました。
  • 8.1以前は「直った」と思い込まない:PHPプロジェクトからの更新はありません。PHPのセキュリティチームは7.4・8.0・8.1向けに最小限のソースのバックポートを出しましたが、公式の案内は、配布元・LTSベンダーの修正を確かめるか、サポート中の版へ移ること。Tenableの表では、5.4〜7.3にPHPプロジェクトからの修正はありません。
  • 8.2は年末で終わる:PHP 8.2は2026年12月31日にサポートが終了し、以後はセキュリティ修正が出ません。今回8.2.35に上げたサイトも、移行先を年内に決めておきます。
  • すぐ更新できないときの臨時措置:公式アドバイザリは session.upload_progress.enabled=0(php.ini など、リクエストの解析前に効く場所で設定し、全ワーカーを再起動。ini_set() や .user.ini には頼らない)、memory_limit=-1、post_max_size を低くする、などを挙げています。ただし「only an update is a complete solution」。session.upload_progress の設定も、確認済みの経路を塞ぐだけで、他の派生は塞がないと明記されています。

サイトの担当者が今週やること

更新はサーバーの穴を、点検は索引の中の自社を片付ける。担当も道具も違う二つの作業です。

  1. 「誰が、いつ、どの版に更新したか」を一行で確かめる:置き場所(レンタルサーバー/VPS・クラウド/委託)、更新した人、日時、バージョン番号。日本語サイトを日本の制作会社に預けている海外ブランドは、本社への報告にこの一行を入れてください。
  2. 上の点検表を、Search Consoleの三か所から順に:「セキュリティの問題」、所有者とユーザー、サイトマップの順で見ていきます。

参考資料

関連記事

#AI検索最適化#LLMO#PHP#セキュリティ#Search Console
日高 駿

日高 駿

株式会社MenuMenu 代表取締役

ソフトウェアエンジニアであり、UI・UXデザイナー。2012年からシリコンバレーと韓国でプロダクトをつくってきました。SEO・MEO・AEOの専門家として、訪日観光客と日本のローカルビジネスをつなぐMenuMenuを自ら設計・開発しています。

プロフィールを見る →
共有

Next

「見つかっているか」を、数字で確かめませんか。

AIの答え、検索、地図。どこで見つかっていて、どこで見つかっていないのか。まずはサイトを点検し、現状を数字にしてから次の一手を決められます。