ハッキングから自力復旧!WordPressサイトを正常に戻す手順を解説

サイトがハッキングされた!?
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

WordPressサイトがハッキングされた!?

自分のサイトがハッキングされたら焦るのは当然ですが、一旦、落ち着きましょう。
焦ってもいいことは一つもありません。まずは、大きく深呼吸を3回しましょう。

落ち着きましたか?
それでは、次に取るべき行動を考えましょう。

この記事はWordPressのプロであるwp.makeが監修しています。
具体的なハッキングへの対策方法も掲載しているので、きっとあなたのサイトの復旧に役立つはずです。

本当にハッキングされているかをチェック

まず、重要なのは現状を正確に確認することです。本当にハッキングを受けたのか。サーバーエラーやプラグインを更新した際の不具合の可能性もあります。冷静に、どんな症状が出ていて、どこに問題があるのか特定することが重要です。

WordPressがハッキングされた場合、いくつかの兆候が見られます。
特に次に上げる項目に当てはまれば、ハッキングを受けていると断定することができます。

Googleから通知が来る

以下のようなメッセージがGoogle Search Consoleから届くことがあります。
この場合、Googleで明らかに異常を検知している場合です。

件名:
ハッキングされたコンテンツが http://example.com/ で検出されました

本文:
貴サイトが第三者によりハッキングされ、一部のページで不正なコンテンツが作成されたことが検出されました。この重大な問題では、貴サイトの評判を利用して、ユーザーを貴サイトから予期しないコンテンツ、または有害なコンテンツにリダイレクトしています。また、この問題により Google 検索ユーザーの検索結果の品質も低下します。そのため Google では、手動による対策を貴サイトに適用いたしました。この対策では、貴サイトが検索結果に表示されると、ハッキングされたコンテンツに関する警告をユーザーに表示します。この手動によるスパム対策は example.com/に適用されています。この警告を削除するには、ハッキングされたコンテンツを修正し、再審査リクエストを申請してください。ハッキングされたコンテンツが貴サイトに含まれていないことを確認できた場合は、この手動による対策を解除させていただきます。

手動対策は裏付けを取ってから行われるため、ある程度長期に渡ってハッキングされた状態が続いていたことが予想されます。
この通知が来た時点で検索結果にあなたのサイトは表示されていません。すぐにサイト復旧のための行動を起こしましょう。

ヘッダー・フッターにスパム広告が挿入されている

アダルトコンテンツや違法ドラッグ等の不正なスパム広告が、サイトのヘッダーやフッターに挿入されている場合があります。
大量のサイトに一括で仕掛けられることが多く、特に見た目等を考えずに暗いテキストとして表示されることがあります。背景などに設定されていることも多く、肉眼では見えないこともありますが、検索エンジンからは確認できるためスパムサイトとして認定される恐れがあります。

検索結果画面の表示がおかしい

GoogleのURLバーに、「site:(ドメイン名)」と入力して検索してみましょう。こうするとGoogleがインデックスしているそのドメインのページを検索結果に表示させることができます。
その検索結果画面の記事タイトルやディスクリプションが、あなたが設定した覚えがないものに変わっている場合、ハッキングによって悪意のあるコードが埋め込まれています。

ユーザーから報告が来る

ハッカーは、一般的に出来るだけ長く対象のサイトをハッキング状態にしておきたいと考えるものです。そのため、管理権限を持つユーザーかどうかを判別して、そのユーザーには正常にサイトを表示させ、検索結果から来た一般ユーザーには悪意のあるWebサイトやスパムサイトにリダイレクトさせることがあります。
この場合、実際に別のサイトに飛ばされたユーザーから、サイトの異常についての報告が送られて来る場合があります。報告を受けたら、一度WordPressの管理画面をログアウトしたり、シークレットウィンドゥで検索結果画面からサイトにアクセスしてみましょう。

サーバー会社などからメールが来る

レンタルサーバー会社などから、あなたが管理するWebサイトで何らかの悪質な行為やスパム行為が確認されたというメールが届くことがあります。迷惑メールを送っている、違法コンテンツを掲載しているなどの連絡があった場合、ハッカーがそれらの行為をあなたに気づかれずに行っている可能性があります。

関連リンク

サイトとデータベースのバックアップを取る

ハッキングであることを特定できたなら、すぐにサイトをバックアップします。
FTP、レンタルサーバーのバックアップツール、バックアッププラグインなどを使用して、サイト全体をバックアップしてください。

バックアップの目的は、サイト全体を削除するためです。

「何を言ってるんだ、お前は!復旧するんじゃなかったのか!?」という声が聞こえて来そうですが、これはハッキングを受けた場合の一般的な処置です。ハッキングされたファイルをそのままにしておくと、現在は正常なファイルまでがマルウェアに感染してしまう恐れがあるんです。
また、定期的にバックアップを取っているという場合でも、感染時のファイルがあれば正常時との差分を確認し、原因を特定するのに役立ちますのでバックアップは取っておきましょう。

また、データベースのバックアップも同様に取っておきましょう。
とりあえず、バックアップさえ取れていれば、基本的に全てが失われることはありません。

ハッキングされたWordPressサイトの復旧作業時の基本知識

ハッキングされたサイトをクリーニングする時の規則は以下になります。

プラグインのファイルを削除してもデータはなくならない

基本的に、プラグインが格納されている『wp-content / plugins / 』以下のディレクトリ内のファイルは削除しても大丈夫です。削除によってサイト自体が壊れたり、データが失われることはありません。プラグインの設定等はファイルではなくデータベースに保存されており、ファイルを削除して再インストールすれば、クリーニングされた綺麗なファイルでプラグインを実行できます。
注意点としては、プラグインファイルを削除するときは、そのプラグインに関連するディレクトリ全体を削除するということ。例を挙げると、Contact Form 7のプラグインを使用する場合は、『wp-content / plugins / contact-form-7』のディレクトリごと配下の全てのファイルを削除してください。一部のみ削除したり、残したりするとうまく動作しなくなる可能性があります。

使用中のテーマは一つだけ

WordPressでは、それぞれのテーマは『wp-content / themes / 』以下のディレクトリに保存されています。「twentyfifteen」「twentysixteen」「twentyseventeen」などのデフォルトテーマのフォルダが確認できるでしょう。(デフォルトテーマはWordPressのバージョンによって変わります)
その中で使用しているのは、管理画面で選択中のテーマひとつで、他のテーマは全て削除してしまってもサイトに影響は出ません。ただし、テーマの中には子テーマを使用している場合もあるので、その点だけは注意してください。

「wp-admin」「wp-includes」に新しいファイルがあれば要注意

「wp-admin」「wp-includes」のディレクトリには、運用開始後にファイルが追加されることはほぼありません。自分のWordPressのバージョンと同じバージョンをWebサイトからダウンロードしてファイル構成を比較してみましょう。もし、新しいファイルが見つかれば、悪意のあるファイルである可能性が高くなります。

古いWordPressのバックアップを残していないか?

「WordPressを常に最新バージョンに保ち、セキュリティプラグインもインストールしていたのにハッキングされた」という例もあります。
ひとつの可能性としては、アップデートの際に古いサイト情報の全てをバックアップとしてサブディレクトリに保存していることが考えられます。開発者などがよく使う手法で「old/(ファイル名)_20181107(日付)」のような形でバックアップをとることがあります。ただ、この方法はディレクトリパスさえ判明すれば、Web上からアクセスできてしまいますので、古いサイトに侵入されてバックドアを仕込まれ、メインサイトにアクセスされてしまうということがあります。
もし、このバックアップ手法に心当たりがあって、ハッキング被害にあった場合は、これらのファイルを確認してみましょう。マルウェアが山のように見つかる可能性が高いです。

有害なコード発見に有用なコマンド

プログラミングに関する多少の知識があり、サーバーへのSSHアクセス権があるなら、サインインして次のコマンドを実行してみましょう。ハッカーによって仕掛けられた悪意のあるコードや覚えのないファイルの変更履歴等を発見することができます。

(『.』は現在のディレクトリを示しています。現在のディレクトリがSSHにあるかを調べるには、’pwd’と入力してください)

‘find’で指定した期間内に変更された全てのファイルを表示する

次のコマンドで現在のディレクトリおよびサブディレクトリで、指定した期間内に変更されたファイルを検索することができます。

  • 過去2日間に変更された現在のディレクトリ内の全てのファイルを表示する
  • 過去10日間に変更された特定のディレクトリ内の全てのファイルを表示する

このコマンドで更新した覚えのない日にファイルが更新されていたり、変更した覚えのないファイルが表示された場合、ハッカーによって悪意ある変更が加えられたファイルである可能性が高いです。徐々に範囲を過去に広げていくことで、いつからハッキングが開始されたのかということも特定することができます。
これは感染ファイルを特定するための最も効果的で簡単な方法で、専門家も不正な改ざんをチェックする際に一般的に使用しています。

‘grep’でbase64文字列を含むファイル検索する

多くのハッカーはbase64(すべてのデータを英数字と記号の64進数で表す)を使用します。
base64を含むファイルを検索するためには、’grep’コマンドを使用します。
(ただし、正常なファイルでもbase64を使用しているファイルがあるため、中身を確認してからコードやファイルの削除を行いましょう)

  • “base64″を含むファイルを検索して表示
  • “base64″文字列が現れるファイルの実際の内容を見る(lオプションなし)
  • “base64_decode”の文字列を含み、”.php”で終了するファイルを検索し、文字列が出現する行番号を出力する

共通して使用されている文字列を検索し削除する

ハッキングでは、スパムサイトやフィッシングサイトへの誘導や不正なスパム広告の埋め込み等、特定の目的を持って行われます。そのため、不正な改ざんが複数のファイルに渡って行われていても、共通の文字列が使用されている場合がほとんどです。

そこで、上記の’find’を、使って最近更新されたファイルを検索し、悪意のあるコードに共通して含まれる特有の文字列(スパムサイトのURLや特定のJavascriptなど)を探します。それらを見つけたら、今度は’grep’を使って共通して使用されている文字列が含まれるファイルを特定し、それらのコードを削除しましょう。

  • 共通して使用されている文字列を検索して表示

『uploads』ディレクトリ内の画像以外のファイルを検索する

悪意のあるコードやファイルが多く見つかる場所の一つが『uploads』ディレクトリです。
『uploads』ディレクトリには、通常、記事投稿などに使用した画像ファイルが保存される場所です。その『uploads』ディレクトリの中から画像以外のファイルを検索するのが以下のコードになります。

  • 『uploads』ディレクトリ内の画像以外のファイルを検索する

上記のコードでは、検索結果を「uploads-non-image.log」というログファイル形式で、現在のディレクトリ内に保存します。

自分では対処が難しい場合

上記の手順がわからない、または、見つかったコードが有害なものかがわからないという場合は、専門家に相談しましょう。
info@wpmake.jpにサイトの状況等を記載して送っていただければ、WordPressの専門家が早急に連絡します。

もし、誤った手順で対処を進めてしまうと、後になって専門家に相談しても復旧が困難になるケースもあるため、自分がどんな作業をしているかが把握できない場合は、無闇に触らない方が賢明かもしれません。

データベースからマルウェアを削除する

あなたのWordPressのデータベースからマルウェアを削除するためには、データベース管理パネルを使用して、データベースに接続して以下の手順で操作を行います。

  1. 変更前にデータベースのバックアップを作成
  2. 不審なコンテンツを検索
  3. 疑わしいコンテンツを含むテーブルを開く
  4. 不審なコンテンツを削除
  5. 変更後にサイトが正常に動作するかをテスト

『Search-Replace-DB』や『Adminer』といったデータベースアクセスツールを使うことも可能ですが、最後にサーバーから

消し忘れない
ように注意しましょう。

不審なユーザーアカウントを削除する

管理画面のユーザー画面から見慣れないWordPressユーザーが追加されている場合、ハッカーのアカウントの可能性があります。こうした怪しげなアカウントは以下の手順で削除しましょう。

  1. サイトとデータベースをバックアップ(ここまでに取っている場合は不要)
  2. WordPressに管理者アカウントでログインし、左メニューから「ユーザー」をクリック
  3. 疑わしいユーザーアカウントにカーソルを合わせ、「削除」ボタンをクリック

不審なアカウント自体はないものの、既存のユーザーアカウントのいずれかの利用が疑われる場合、パスワードを変更することができます。
また、安全管理として、管理者以外のユーザーの役割は必要最低限(投稿者、編集者、寄稿者など)にしておきましょう。

WordPressサイトの不審なコードの削除が完了したら

上記の操作で改ざんされたファイルの特定と不審なコードを削除することが出来ました。
ただし、ハッカーは複数の種類のコードを埋め込んでいる可能性もあるため、ひとつ対処したからと安心せず、他にも怪しいコードがないかしっかりと確認しましょう。ハッカーは再侵入するためのバックドアを仕掛けるため、ひとつでも見落としがあると再びハッキングされる可能性があります。

セキュリティの基本を再チェック

WordPressとプラグインの最新バージョンへのアップデートや、サイト上の全てのパスワード(特に管理者パスワード)を複雑なものに変更しましょう。
こちらのスキャンツールにURLを入力すれば、簡単にマルウェアの有無やブラックリストに載っているかどうかといった項目をチェックすることができます。

また、定期的な自動バックアップの設定やセキュリティ対策プラグインを入れていない場合は、この機会にプラグインをインストールしておきましょう。


マルウェアの警告が届く場合

Googleのセーフブラウジングリストや、McAfee、Yandexといったウイルス対策システムのブラックリストに登録されている場合、それらを解除してもらう必要があります。

Googleのセーフブラウジングリストからの削除を依頼する

以下のURLにアクセスして、URL入力欄に自分のサイトのURLを入力して実行します。

https://transparencyreport.google.com/safe-browsing/search

サイトの現在のステータスやGoogleのブラックリストに掲載された理由、次に行うべき行動が表示されます。

ウイルス対策システム会社のブラックリストからの削除を依頼する

それぞれのウイルス対策メーカーのWebサイトにアクセスし、危険なサイトの一覧から削除する方法という内容を見つけます。「ホワイトリスト」「サイト削除」などのキーワードでサイト内検索すると削除方法が見つかることが多いです。

WordPressサイトの再ハッキングを防止する

お疲れ様でした。
ここまでの作業をきっちりこなせば、あなたのサイトはハッキング状態から抜け出すことができたはずです。

しかし、元の状態に戻っただけでは、再度ハッキングされる恐れがあります。
最後に以下の項目を確認して、WordPressサイトを守りましょう。

  • Wordfence等のプラグインをインストールし、WordPressサイトを定期的にスキャンする
  • WordPress本体を最新にバージョンアップする
  • 全てのプラグイン、テーマを最新にバージョンアップする
  • パスワードを強力なものに変更する(半角10文字以上で英数字両方を使用し、特殊記号も含める)
  • 必要であれば、WordPress保守サービスを利用する

いずれもセキュリティに関する基本事項です。
最後の項目のWordPress保守サービスは、WordPressやプラグインのバージョンアップをスムーズに行い、死活監視や定期的なバックアップなどのセキュリティ対策を行ってくれるサービスです。また、万が一、ハッキング被害に遭ってしまった場合も、早急な復旧も行います。

安全なWordPressサイトの運営をしたい、セキュリティ対策にリソースを割きたくない、という場合は検討の余地があるでしょう。

wp.makeの保守サービス

ワードプレスのバージョンアップセキュリティ対策
お悩みではないですか?
「何かが起きる前に!」
WordPressのプロフェッショナル集団が対応します。
初期費用は一切頂きません。月額4万円〜
SSL対応、定期バックアップもお任せ下さい。