緊急PHPに致命的な脆弱性(CVSS 9.2)。Amazon Linux 2 のphp8.2(Extras)にも修正最新情報 ›
無料で相談する

WordPressが乗っ取り・改ざんされたときの復旧手順|最初の1時間でやることと、元に戻すまでの流れ

公開:10/22 08:34更新 (日本時間)Webセキュリティ診断センター 編集部約14分で読めます
WordPressが乗っ取り・改ざんされたときの復旧手順|最初の1時間でやることと、元に戻すまでの流れ
#WordPress#改ざん#不正アクセス#php2shell
この記事の要点
  • 乗っ取りや改ざんに気づいたら、最初の1時間は止める・残す・連絡するの3つに絞ります。ファイルを消したり、サイトを直したりするのはそのあとです。
  • 直すときは、怪しいファイルを1つずつ消すのではなく、公式から入れ直したWordPressに、乗っ取られる前のデータを戻す形で作り直します。パスワードと鍵は全部変えます。
  • 個人データが漏れたおそれがあれば、個人情報保護委員会への報告が必要になる場合があります。速報は概ね3〜5日以内が目安です。
  • Googleの警告は、サイト全体を直したうえで Search Console から審査をリクエストします。審査には数日から数週間かかります。

この記事は、自社の WordPress サイトが乗っ取られた、または改ざんされたと気づいた会社の方に向けて、復旧までの順番をまとめたものです。PHP の脆弱性「php2shell」をきっかけにした被害でも、それ以外の原因でも、進め方は大きく変わりません。

「本当に入り込まれているのか」をまだ確かめていない段階なら、先に「サイトが乗っ取られていないか確かめる方法」で痕跡を確認してください。この記事は、乗っ取りや改ざんが分かったあとの話です。

全体の流れ

復旧は次の7つの段階で進めます。大事なのは順番です。慌てて先にファイルを消したりサイトを直したりすると、「いつ・どこから・何をされたか」が分からなくなり、個人情報が漏れたかどうかも判断できなくなります。

乗っ取り・改ざんに気づいてからの流れ。最初の1時間で止める・残す・連絡する、当日から数日で原因を調べる、復旧作業で作り直しと土台の更新、公開のあとにGoogleの警告解除と再発防止
図1 乗っ取り・改ざんに気づいてからの流れ

IPA の「中小企業のためのセキュリティインシデント対応の手引き」も、対応を「検知・初動対応」「報告・公表」「復旧・再発防止」の3段階に分けています[IPA]。この記事の①②が初動と報告、③〜⑦が復旧と再発防止にあたります。

① まず止める・証拠を残す

サイトの公開を止める

改ざんされたページを開いた人が、偽のサイトに飛ばされたり、ウイルスを仕込まれたりするおそれがあります。被害を広げないため、まず公開を止めます。方法はいくつかあります。

WordPress の「メンテナンスモード」系のプラグインで表示だけを切り替える方法は、おすすめしません。WordPress 自体が乗っ取られている場合、その WordPress の上で動く仕組みでは、裏口のファイルへのアクセスを止められないためです。

まだ消さない。丸ごとコピーを取る

怪しいファイルを見つけても、すぐには消さないでください。WordPress.org の公式ドキュメントも、掃除に入る前に、感染したままの状態でもう一度スナップショット(その時点の丸ごとのコピー)を取るよう勧めています[WordPress.org]。コピーするのは次の3つです。

コピーするもの中身取り方の例
ファイル一式WordPress のフォルダ全体(wp-content、.htaccess、wp-config.php を含む)サーバー管理画面のバックアップ機能、SFTP でのダウンロード
データベース記事、固定ページ、ユーザー、設定、問い合わせの保存データサーバー管理画面や phpMyAdmin のエクスポート
ログWeb サーバーのアクセスログ・エラーログ、FTP / SSH のログサーバー管理画面からダウンロード。保存期間が短いことがあるので最優先

コピーはサーバーとは別の場所に保存し、「感染している可能性あり」と分かる名前を付けておきます。このコピーは調査の材料であり、復旧にそのまま使うものではありません。

気づいたことを記録する

WordPress.org の公式ドキュメントでは、乗っ取りに気づいたあとの最初の手順が記録です[WordPress.org]。次のことをメモに残します。

このメモは、サーバー会社や専門業者に相談するとき、届出をするときにそのまま使えます。

② 連絡する(サーバー会社・制作会社・届出先)

サーバー会社と制作会社

共用のレンタルサーバーでは、被害が自社のサイトだけで済んでいないこともあります。WordPress.org の公式ドキュメントも、サーバー会社に確認するよう勧めています[WordPress.org]。サーバー会社には、気づいた日時と症状を伝え、公開の止め方、ログの取り出し方、サーバー側で把握していることを聞きます。

サイトを制作会社や保守会社に任せている場合は、そちらにも連絡します。管理者アカウントやサーバーの接続情報を誰が持っているかを確かめるためです。JPCERT/CC は、Web サイトの更新に使っている PC がウイルスに感染していないかも確認項目に挙げ、管理を外部に任せているなら委託先にも確認を頼むよう書いています[JPCERT/CC]。

公的な相談・届出先

窓口どんなときに受付方法
IPA「不正アクセス特別相談窓口(事業者向け)」不正アクセスの被害を受けている、またはその可能性がある企業・組織の相談。状況を聞いたうえで、応急処置の案や、インシデント対応を行う専門業者の一覧を紹介してくれます電話 03-6759-5760(平日 9:30〜17:30、12:00〜13:00 を除く)、メール
IPA「コンピュータ不正アクセス届出」不正アクセスの被害の届出。分かっている範囲で構いません届出様式に記入してメール
JPCERT/CC「インシデント対応依頼」改ざんされたサイトへの対応依頼、初動対応のサポート依頼などWeb フォームかメール。原則として電話では受け付けていません
警察(都道府県警察のサイバー事案の相談窓口)被害を相談したい、被害届を出したいとき警察庁のページから各都道府県の窓口を探せます
個人情報保護委員会個人データが漏れた、またはそのおそれがあるとき(下で説明)漏えい等報告フォーム

受付時間や方法は各窓口のページで変わることがあるので、連絡の前に確認してください[IPA・JPCERT/CC・警察庁]。

個人データが漏れたおそれがあるとき

問い合わせフォームの送信内容、会員情報、注文情報などをサイトに保存していた場合は、個人情報保護法の「漏えい等報告」に当たるかを確認します。個人情報保護委員会は、報告が義務になる場合として、不正の目的で行われたおそれがある漏えい等(そのおそれを含む)を挙げています。例として「不正アクセスにより個人データが漏えいした場合」や「ウェブサイトが改ざんされ、ユーザーが入力した個人情報が第三者に送信された場合」が載っています[個人情報保護委員会]。

報告期限
速報知った時点から速やかに。ガイドラインでは「概ね3〜5日以内」
確報知った日から30日以内。不正の目的によるおそれがある場合は60日以内

報告とは別に、本人への通知も必要です[個人情報保護委員会]。業種によっては報告先が個人情報保護委員会ではなく、権限を委任された省庁になる場合があります。漏れたかどうかがまだ分からない段階でも、「おそれ」があれば対象になりえます。迷ったら早めに個人情報保護委員会のページを確認し、相談してください。

③ 原因と範囲を調べる

作り直す前に、次の3つをできる範囲で確かめます。原因が分からないまま作り直すと、同じ入口から再び入られることがあります。

具体的な見る場所(見覚えのないファイル、管理者アカウント、cron、アクセスログ)は「サイトが乗っ取られていないか確かめる方法」にまとめています。WordPress.org の公式ドキュメントは、自分の PC もウイルス対策ソフトで全体をスキャンするよう勧めています。PC に潜んだウイルスが FTP や管理画面のパスワードを盗み、それを使ってサイトに入られることがあるためです[WordPress.org]。

やってはいけないこと
  • ネットで見つけた「検査スクリプト」や攻撃コードを、出どころを確かめずにサーバーで実行する
  • 改ざんされたページを、普段使いのブラウザで何度も開く(Google は、感染したページをブラウザで直接開かないよう注意しています)
  • 調べ終わる前に、サーバーを初期化したり契約を解約したりする

④ きれいな状態から作り直す

怪しいファイルを1つずつ探して消すやり方では、見落としが残りがちです。WordPress.org の公式ドキュメントも、攻撃では新しいファイルが追加されることが多いと書いています[WordPress.org]。ここでは、信頼できる部品だけで組み直す進め方を紹介します。

WordPress 本体を公式から入れ直す

WordPress.org の公式ドキュメントは、本体を入れ直すときの注意として次のことを挙げています[WordPress.org]。

実際には、新しい空のフォルダ(または新しいサーバー)に公式の WordPress を置き、そこへ必要なものだけを戻す方法が確実です。

テーマとプラグインも公式から取り直す

テーマとプラグインは、WordPress.org の公式ディレクトリや、購入した販売元のサイトからダウンロードし直します。いまのサーバーにあるファイルはコピーして使いません。使っていないテーマとプラグインは、この機会に入れずにおきます。オリジナルのテーマ(制作会社が作ったものなど)は、制作会社が保管している元のファイルから戻し、いまのファイルと比べて書き換えがないか確認してもらいます。

中身は乗っ取られる前のバックアップから戻す

記事や固定ページなどのデータベースは、③で分かった「入られた時期」より前に取ったバックアップから戻します。画像などのアップロードファイル(wp-content/uploads)も同じです。ここはサイトから書き込みができる場所なので、画像や PDF 以外のファイル(特に拡張子が .php のもの)が混ざっていないか確認してから戻します。

安全なバックアップがない場合は、データベースの中身(管理者ユーザー、設定、記事内の埋め込みスクリプト)を確認しながら戻す必要があり、手間が大きくなります。専門業者への相談を考えてください。

パスワードと鍵をすべて変える

WordPress.org の公式ドキュメントは、FTP / SFTP、WordPress の管理画面、サーバーの管理画面、MySQL(データベース)のすべての入口でパスワードを変えるよう求めています。自分だけでなく、サイトに関わる全員のパスワードが対象です[WordPress.org]。

変えるものポイント
WordPress の全ユーザーのパスワード特に管理者。見覚えのないユーザーは削除する
wp-config.php の秘密鍵(ソルト)新しい値にすると、ログイン中の人が全員ログアウトされる。公式の鍵生成ページで作れる
データベースのパスワード変えたら wp-config.php の設定も書き換える
FTP / SFTP / SSH不要なアカウントは削除。SSH の鍵も作り直す
サーバーの管理画面契約者のアカウントも含める
サイトに置いていた API キーなど決済、メール配信、外部サービスの連携キー

パスワードの変更は、ウイルスに感染していないことを確かめた PC から行います。そして、きれいにしたあと、もう一度変えます。WordPress.org の公式ドキュメントは、気づいたときに変えた場合でも、きれいにしたあとに改めて変えるよう求めています[WordPress.org]。

⑤ PHPなど土台を更新する

WordPress を入れ直しても、その下で動く PHP が古いままでは、同じ穴から入られるおそれがあります。WordPress.org の公式ドキュメントも、きれいにしたら WordPress を最新版に更新するよう書いています[WordPress.org]。順番は次のとおりです。

  1. PHP を、修正済みでサポート中のバージョンにする(php2shell の修正版や対象は「php2shell の解説記事」を参照)
  2. WordPress 本体を最新版に更新する
  3. テーマとプラグインを最新版に更新する

いま使っている PHP のバージョンが分からない場合は、「PHP バージョンの確かめ方」で確認できます。

⑥ Googleの警告を解除する

Google が乗っ取りやマルウェアを検出すると、検索結果に警告が付いたり、ブラウザで警告ページが表示されたりします。Google Search Console の「セキュリティの問題」レポートを見ると、検出された内容と、影響を受けたページの例が分かります[Google]。

  1. Search Console にサイトを登録していなければ、登録する
  2. 「セキュリティの問題」レポートで、指摘された問題を確認する
  3. サイト全体で問題を直す。Google は、一部のページだけ直しても検索結果は変わらないとしています
  4. すべての問題を直したら、レポートから「審査をリクエスト」する。どんな問題があったか、直すために何をしたか、その結果どうなったかを書く

Google によると、審査には数日から数週間かかることがあります。結果が届くまで、リクエストを送り直さないでください。直っていないのに送ると、次の結果が届くまでの時間が長くなったり、違反を繰り返すサイトとして扱われたりする可能性があります[Google]。

⑦ 再発を防ぐ

サイトを公開し直したら、同じことが起きないように次のことを決めておきます。

復旧チェックリスト

段階確認すること済
① 止める・残すサイトの公開を止めた(サーバー側で制限、またはネットワークから切り離し)□
ファイル一式のコピーを、サーバーとは別の場所に保存した□
データベースとログのコピーを保存した□
気づいた日時と症状、その後の対応を記録した□
② 連絡サーバー会社に連絡した□
制作会社・保守会社に連絡した□
個人データ漏えいのおそれを確認し、必要なら個人情報保護委員会に速報した□
③ 調査入られた時期と入口の見当をつけた□
更新に使う PC をスキャンした□
④ 作り直しWordPress 本体を公式から入れ直した□
テーマ・プラグインを公式や販売元から入れ直した□
入られる前のバックアップからデータを戻した□
全パスワード・秘密鍵(ソルト)・DB パスワード・FTP / SSH を変え、不要なユーザーを消した□
⑤ 土台PHP・WordPress・テーマ・プラグインを最新にした□
⑥ GoogleSearch Console で審査をリクエストした□
⑦ 再発防止きれいにしたあと、パスワードをもう一度変えた□
更新の担当、バックアップ、2段階認証を決めた□

よくある質問

バックアップがありません。どうすればいいですか?

本体・テーマ・プラグインは公式から取り直せます。難しいのはデータベースとアップロードファイルです。①で取ったコピーから、中身を確認しながら必要なものだけを移します。不審な管理者ユーザーや、記事に埋め込まれたスクリプトが残っていないかの確認が必要になるので、自社で難しければ専門業者に相談してください。

サーバー会社が「ウイルスを駆除した」と言っています。これで終わりですか?

駆除の範囲を確認してください。検知されたファイルを消しただけで、パスワードの変更や入口になった古いプラグインの更新がされていなければ、また入られるおそれがあります。この記事の④〜⑦が済んでいるかを、チェックリストで確かめてください。

サイトを止めると売上や問い合わせが止まります。止めずに直せませんか?

止めている間は、トップページだけを静的なお知らせページに差し替え、電話番号やメールアドレスを載せておく方法があります。乗っ取られた WordPress を公開したまま直すと、訪問者が被害を受けるおそれがあり、Google の警告も解除できません。

復旧の手順に迷ったら、Webセキュリティ診断センターにご相談ください
公開の止め方と証拠の残し方、原因の調査、公式の部品を使った作り直し、PHP の更新、Google の審査リクエストまで、状況に合わせて進め方を一緒に決めます。無料相談はこちら

参考にした情報

貴社のサイトに合った対応をご案内します!
まずは、お気軽にご相談ください。

お問い合わせ・お見積りはこちら
無料で相談する最新情報を見る