ぐうたら紺の勉強帳

WordPress、アフィリエイトなど勉強中です。旅行からセール情報まで雑多に書いております。

WordPress

WordPressの脆弱性を悪用されて、エックスサーバーからアクセス制限をかけられた話

投稿日:2017年11月8日 更新日:

お恥ずかしくて書くのを迷っていたのですが…。

WordPressを使っている方でしたら、知らないうちに同じような目に遭ってしまう方もいるかもと思い、私も忘れぬよう、自戒を込めて書いておきます。

知らないうちにスパム行為の加害者に!

10月上旬の出来事です。

9月末に「さくらのレンタルサーバー」から「エックスサーバー」に移転をしました。

無事に終わってホッとしたのも束の間、数日後にエックスサーバーからこんな件名でメールが届きました。

お客様のサーバーアカウントにおける不正なファイルの検知および制限の実施について

どう考えても穏やかな内容ではありません。

慌てて読むと、メールの内容は膝から崩れ落ちそうなショックなものでした。

  • 私のアカウントからのサーバ負荷が高いので調査した結果、不正なプロセスが多数稼働していた
  • 不正なプロセスは「/tmp/phpS9JnfP_tqjm27ujrquu33s3 -c /tmp/phpS9JnfP.c」
  • 「Sendmail」による国外へのメール大量送信も確認した
  • FTP、CMS管理画面への不正ログインの痕跡は無い
  • 運用中のプログラムの脆弱性を第三者に悪用された可能性が非常に高い状況
  • そのため、緊急措置としてWebアクセス制限を実施した

私のブログやサイトが、攻撃の拠点として悪用されていたのです…。

自分が、知らないうちにスパムメールまで送る加害者になっていたというのは、大変ショックなことでした。

なんてことをしてしまったんだ…どうしよう…(;_;)などと、泣いていても仕方がないので対処するしかありません。

アクセス制限をかけられているので、その時点でエックスサーバーに置いている自分のブログやサイトは、すべて「403エラー Forbidden」で、閲覧出来ない状態でした。

エックスサーバーからの指示

サーバーにご迷惑をかけたにも関わらず、とても親切に、メールにこの後やるべきことの手順を書いてくれていました。

恐らくですが、さくらのサーバーの頃から汚染されていて、私が汚染されたファイルを持ってエックスサーバーに引っ越してきてしまったのだと思います。

本当に、クソ迷惑なやつですね…

検出された不正なファイルのリスト

まずは、エックスサーバー側で調査してくれた、不正なファイル(勝手に設置された、または改ざんされた)のパスが書いてありました。

複数ドメインを置いていたので、その中の1つのドメインが主にやられたようですが、そこを足がかりに全ドメイン何かしらやられていました。

全部で18ファイルやられていたようですが、ファイル名を一部載せておきます。

きっとファイル名は変わるのだと思うので、「これと同じならやばい」という調べ方は出来ないとは思うのですが、念のため。

  • /public_html/1682f0.php
  • /public_html/302.406.php
  • /public_html/page28.php
  • /all-in-one-wp-security-and-firewall/admin/wp-security-list-permanent-blocked-ip.php
  • /themes/affinger4/scroll-ad.php

「public_html」配下に直接置かれているものもあり、プラグインの中にあるファイルもあり、テーマの中のファイルも改ざんされた跡があり。

すっかり、隅々までやられてしまって…(;_;)

と、また泣きたくなりますが、このファイルをサーバー上から削除すれば終わり、ということではありません。

このままでは、何処かに芽が残っていて、そいつがまた勝手にファイルを増やしたり悪さをし始めるということなので、根絶やしにせねばなりません。

サーバーアカウント上に設置されたファイルを全て削除

アクセス制限を解除するためには、現在サーバー上にあるファイルを全て削除してからメールに返信せよ、ということでした。

ドメインの設定もすべて削除して、サーバーを借りた時点と同じ状態に戻さなくてはならない、ということです。

不幸中の幸いと言うべきか、データベースの情報は残して良いということでした。

とりあえずバックアップをとる

既にアクセス制限がかかっているので、WordPressの管理画面に入ることが出来ず、エクスポート機能や、プラグインは使うことが出来ません。

FTPでアクセスは出来たので、とりあえずデータを全サイト分ダウンロードしてから、サーバー上のデータを全て削除しました。
(FTPソフトを使っていない方は「ファイルマネージャ」でアクセスできます)

ただし、ここでダウンロードしたデータを、アクセス制限が解除された後にそのまま戻すことは出来ません。
戻してしまったら同じことの繰り返しなので…!

数日前にサーバ移転した時のデータもありますが、それも既に汚染しているデータと思われるので、使えません。

エックスサーバーから教えてもらった「不正なファイル」のリストに載っていたものはこの時点でサーバ上から削除してしまったので、今は残っていないのですが、後学のためにローカルに残したほうが良かったのだろうか…。

WordPressを動かすために必要なphpファイルも含まれていましたが、そもそもブログが見られない状態なので、何を削除したって影響がないのです。

(普通は、phpファイルを気軽に削除してはダメです)

削除後、エックスサーバーへ連絡してアクセス制限解除

バックアップを取った後、サーバー上の全てのファイルを削除しました。

エックスサーバーのサポートへ返信して、アクセス制限を解除して貰えるのを待ちました。

電話窓口は平日のみですが、メールサポートは無休のようですね。ありがたい。

  • 土曜日14時頃:アクセス制限実施の連絡
  • 土曜日19時頃:ファイルを全て削除したことを返信
  • 日曜日11時頃:アクセス制限解除の連絡

という流れで、アクセス制限をかけられてから、24時間も経たずに解除してもらえました。

ただし、「次に同じことをやったら、もっとすごい制限かけるからね!」と書き添えてあったので、慎重に再開せねばなりません。

ブログ再開までの手順

さて、制限が解除されたので、ブログやらサイトやらを再開させたいところです。

と言っても、軽率に再開して同じことを引き起こしたら、またアクセス制限(または、それ以上の何か)をかけられてしまうので、本当に慎重に、真剣にやらねばなりません。

手順については、一人では心配だったので詳しい方に確認しました。
(と言っても、概要をお伝えしただけなので、もし何か間違っていたら私の誤りです)

ここにお名前を出して質問が殺到するといけないので記載しませんが、ありがとうございます!!!

さて、実際に行った手順はこんな感じです。

しつこいようですが、最新バージョンの、綺麗なデータだけを入れないといけないので、基本的にはバックアップしたものは使えません。

  1. ドメインを再設定
  2. エックスサーバー上で「php.ini設定」を変更(後述)
  3. 最新版のWordPressをFTPでアップロード
  4. 「wp-config.php」の中身を、自分のデータベースの情報に書き換え
    →この段階でデザインはデフォルトですが、ブログが見られる状態になります。
  5. プラグインの最新版を管理画面から1つずつインストール
  6. テーマ、子テーマの最新版をアップロード
    →自分で子テーマに変更を加えた部分は、バックアップをとった子テーマの中身を手でコピペしました。
  7. バックアップデータから「uploads」の中の画像ファイルだけアップロード

全ファイルバックアップをとりましたが、戻したのは「uploads」の中の画像ファイルだけです。

自分のPCでウィルスチェックをかけた後、画像以外の変なファイルが紛れていないか、目で確認したので、これが一番大変だった…。

何か、jpgとpng以外のファイルが入っていないか、とか、もっと良い検索方法があったのかな…。

こんな雑な手順じゃわからないよ~!という方は、こちらの記事をご参考に。

LINK[WordPress]サーバーの引越し手順まとめ。ロリポップ→さくらレンタルサーバー編 | vdeep

今回はデータベースが残っていたのでそのまま使った点と、WordPressやプラグインを自分で入れたところは異なりますが、おおまかな手順は似ていると思います。

WordPressを自動インストールしても良かったのかも

サーバー上でWordPressを自動インストールすると、データベースをもう1つ作成することになるかな?と思ったので、最新版をダウンロードしてFTPでアップロードしたのですが、エックスサーバーの自動インストールはちゃんと、インストール時に新規DBを作るか、作成済みのDBを使うか選べるようになっていました。

なので、自動インストールでも大丈夫だったかも。



でも、今インストールしようとするとバージョンが「4.8.2」になっているので、インストール後にアップデートしないといけないですね。
(この記事を書いている時点の最新バージョンは「4.8.3」)

その時も、とにかく「最新版じゃないと!!!」と思っていたから、やめたのかも…?(記憶曖昧)

エックスサーバー上で「php.ini設定」を変更する箇所

これはエックスサーバーから来たメールの中に、変更を推奨しますと記載があったので、変更しました。

「allow_url_fopen」および「allow_url_include」をいずれも「無効(Off)」にすることを強くお勧めいたします。
※上記設定項目は「外部ファイルを読み込む/実行する」操作に対する可否設定です。

「サーバーパネル」から設定出来ます。
エックスサーバーの方はやっておいた方が良いのかもしれません。

LINKphp.ini設定について | レンタルサーバー【エックスサーバー】

再開後、気をつけていること

実は私、このような改ざんをされたのは、初めてではありません。

自覚している限りですが、今回で2回め。
まったく管理が甘くて、お恥ずかしい……。

前回も、WordPressを入れ直して設定し直したり、それなりに苦労したはずなのに、また油断してしまいました(;_;)

ちなみに前回は、「検索結果で自分の記事が表示される→クリックすると別のサイトに飛ぶ」というわかりやすい症状だったので自分で気が付きました。

また、その時はサーチコンソールにも「404ページの増加」というメッセージが来たので、とにかくおかしいぞと思って、WordPressを入れ直しました。

もう3回目は、同じ目に遭わないよう、可能な限り気をつけているつもりです。

WordPress、プラグイン共に常に最新版を使う!

私がやられた原因は、ほぼこれだと思っています。

「SiteGuard WP Plugin」を使っていれば、新しいバージョンがあることを知らせるメールを送ってくれるので、それが届いたら外出時以外は、速攻でアップデート!!

プラグインが多いほど、更新頻度も高くなってしまうので、極力プラグインは減らして、どうしても必要なものだけ入れるようにしています。

サイトが複数あると「次に管理画面を開いた時に…」なんて、つい思ってしまって、それがいけないんだと思い、いっぺんに管理画面を開いて、一斉に更新をかけるようにしました。

プラグイン「Wordfence Security」でスキャン

「Wordfence Security」は、今自分のブログ上のファイルに改ざんされたファイルや、使用しているバージョンに問題点があるかどうかを、スキャンしてチェックできるプラグインです。

「守ってくれる」という用途では無いのですが、せめて何か起きた時に自分で気づいてすぐ対応できるよう、ほとんど毎日これでスキャンしています。
スキャンは1分程度で終わります。

有料でないと使えない機能があったり、メッセージが全部英語なので、その都度翻訳しながらになりますが、何もしないよりは…と思って使っています。

例えば、こんな風に「このプラグイン、2年以上更新されてないけど大丈夫なん?」と教えてくれたりします。

私が使っているテーマ「Affinger4」に会話形式の吹き出し機能があるので、過去記事の会話は全部そちらに修正して、「Speech bubble」を使うのはやめました。

外部サイトでもチェックしてみる

これも「守る」という意味ではなく、自分のブログ大丈夫??ということをチェックするツールをお借りして調べてみています。

LINKWordPress(ワードプレス)脆弱性診断 セキュリティースキャナ | ワードプレスドクター

こんな感じで、色々と警告や注意が出るのですが、ここに出ている内容はエックスサーバーを使っている人はみんな出ているようなので、今のところは大丈夫…なはずです。


これはサイトの持ち主以外でもチェックできるので、エックスサーバーを使っていて、この方々なら大丈夫であろうという方のブログを、勝手ながら参考に見させていただきました、すみません…(*_*;

バックアップは定期的にとる

今回はデータベースが残っていたので比較的楽に元に戻せましたが、完全にアカウントが凍結されてしまった場合は、なんにもデータが手元に無い、ということもあり得るのかもしれません。

何かあったときのためにも、バックアップは重要ですね。

これも「守る」の要素というより、有事に備えて的な意味合いですが、プラグインでバックアップをとることも出来ますので、設定しておきましょう。

LINKWordPress全バックアップを「BackWPup+Dropbox」で行う | vdeep

私も記事の通り、週1回自動でバックアップをとるように設定しました。



ちょっとよくわからないキャプチャになっちゃいましたけど…249秒で終わりました。

パーミッション設定の見直し

先程、Twitterで教えていただいたので、各ファイルとディレクトリのパーミッション設定を見直しました。

こちらの記事に沿って確認して、wp-config.phpが604になっていたので、600に変更しました。

LINKWordPressで推奨されるパーミッション設定について - 株式会社ネディア

悪いやつは正面からやってこない。隙間からどこからでも入ってくるよ

今までも「SiteGuard WP Plugin」を入れていて、例えば管理画面への不正アクセスを試みられているログなどは見られる状態でした。

管理画面や、サーバーへのパスワードは全て厳重に複雑にしておくことに越したことはありません。

管理画面やFTPサーバーへの侵入というのは、玄関を正面突破して入ろうとする正統派の悪いやつ(?)のようなもの。ログが残るしわかりやすいですよね。

でも、今回も前回も、FTPサーバーにも、WordPressの管理画面にも不正にログインされた形跡がありません。
(エックスサーバーからも、不正ログインの形跡は無いと言われています)

脆弱性を利用するタイプの悪いやつは、パスワードなんかわからなくても良いんです。

利用できそうな隙間があれば、気づかないうちにスルッと入り込んできます

知らないうちに、自分のブログが、例えば今流行りのDDoS攻撃の踏み台になっていたり、スパムメール送信の踏み台として利用されている可能性も有り得ます。

高負荷で同じサーバーを使っている他の方に迷惑がかかったり、あるいは攻撃の矛先が向いてしまうことだって、あるのかもしれません。

もしかしたら、ブログを見に来てくれた方に、何かしら被害が及ぶようなことも…。

などと考えていくうちに、「私のレベルではWordPressを使ってはいけないのでは…」と、利用するのが怖くなって悩んでしまいます。

WordPressって、始めるのは本当に簡単ですが、その後の管理は自分でしっかりやらないと、こんなことになってしまいます。

「知らなくて」とか「気が付かなくて」ではダメだと思うので、今度こそ出来る限り気をつけながら、慎重にやっていきたいと思います。

-WordPress

Copyright© ぐうたら紺の勉強帳 , 2017 All Rights Reserved Powered by AFFINGER4.