たかなblog

のんびりと色んな情報を発信していきます。

Wordpress

サイトがハッキングされた話と、復旧手順など

2017/02/07

WordPressネタはかなりお久しぶりです。高菜です。

Twitterで昆布さんがツイートしているので知っている方もいらっしゃるかもしれませんが、サイトが数回ハッキングの被害にあいました。
というわけで、ハッキング被害にあってしまった場合の対応方法などを書いていければなーと思います。

突然の403エラー

サイトのハッキングにあったのは12月23日頃。
今思うと、Wordpress4.7.0で見つかった脆弱性の影響かもしれない。

「今思うと~かもしれない」の域を出ないのですが、それでもWordpress更新は4.7.1まで待てばよかったのかなぁと思います。
マイナーバージョンは自動アップデートされるので、まぁ大丈夫だろうと思っていたのが良くなかったんだろうなぁ。

被害にあったのはエックスサーバー。翌日の朝4時頃にはサーバー内のすべてのサイトが停止(403)となり、フォロワーさんから「サイトが見れなくなってますよ」と報告をいただきます。

エックスサーバーより不正アクセス検知のメール

サイトを403で止めてくれたのはエックスサーバーです。
この対応により、一応被害が拡大するのは防がれている状態。

エックスサーバー側で原因調査までしてもらっていて、おそらくphpの脆弱性をついて侵入、悪用されてしまったのではないかとのこと。
悪意のあるサイト、改ざんされたサイトとしてGoogleに認識されてしまう可能性もあったわけですから、本当にきちんとしたサーバーをレンタルしていてよかったと思わずにはいられません。

サイトのバックアップ&削除

サーバー内のファイルにバックドアが仕掛けられている可能性があるため、いったんサーバーに登録しているドメインを解除、サイトを初期化する必要があります。
Wordpressの管理画面にすらアクセスすることはできないため、当然ですがバックアッププラグインを使うことはできません。

今回、DBは無事とのことだったため、DBは初期化せず、新規で入れなおしたWordpressに既存DBをつなぐ方法で行きたいと思います。

まずはバックアップ。

バックアップといっても、プログラムが改ざんされている可能性が高いため最低限のものを取っていきます。

wp-config.php

既存のDBに読みに行かせるためには、DB名、ユーザー名、パスワードが必要です。
この部分だけをテキストとかに控えてもいいのですが、今回はそのままバックアップします。

画像フォルダ

wp-content/uploadsフォルダを丸ごとバックアップします。
画像ファイルが重いとバックアップに数時間かかることもありますが、画像本体はDBに残っていないため、必ずバックアップを取っておきましょう。

なお、バックアップ系プラグインで毎日ちゃんとバックアップを取っているよ!という方は、一度中身のチェックをしてみてください。バックアップを圧縮して送ってくるタイプのものだと、ファイル名が長すぎた場合(デジカメで撮った画像とか長いですよね)、途中で切れてしまったりちゃんとバックアップが取れていないことがあります。
私はこれで結局画像の約1/3が吹っ飛んでしまい、復旧を断念した記事がいくつもありました。。

念のため全体のバックアップ

エックスサーバーのサーバーパネルには「バックアップ」というメニューがあり、そこからフォルダ全体をバックアップすることが可能です。上記2つ以外は特に使わなかったのですが、ちゃちゃっと取れるのでバックアップしておきましょう。

全てのバックアップが完了したら、次は初期化(削除)です。

ドメインの削除と契約アカウントの初期化

設定した独自ドメイン、サブドメインをすべて削除し、契約しているアカウントを初期化します。
汚染されたサイトが1つだけであっても、バックドア(一度侵入成功したサイトに再度入れるよう残しておく不正プログラム)がどこにあるかわからないので、初期化する際は同じサーバー内のサイトは必ず全部削除してください。
(当然ですが、バックアップは必ず取ってくださいね!)

エックスサーバーの場合、サーバーパネルのドメイン設定>各ドメインを「削除」で簡単に消せます。
契約しているアカウント(ドメイン)は削除できないので、初期化>「Web領域・設定の初期化」から初期化を行います。

初期化後、付属のファイルマネージャー、またはFTPツールなどを使用してサーバーアカウントを参照し、
「初期ドメイン名」フォルダ
「ssl」フォルダ

以外をすべて削除します。

初期化報告

契約アカウント、というかサーバー自体、403エラーで止められている状態なので、サーバーを初期の状態に戻したらその旨を報告します。
止めたよ、というメールに対して返信で、サーバーID,問い合わせID,お世話になってます、削除しましたのでご確認頂き、問題ないようでしたら凍結解除いただけますでしょうか。など、簡単な文でOKです。

なるべく何をしたのか、どうしてほしいのかを簡潔に。
メールは24時間受け付けてくれています。私がサーバー凍結されたのは年末のくそ忙しい時期でしたが、深夜に報告して翌日9時半までには解除完了メールが届いていました。

 

復旧作業

どの情報がどれくらい漏れているのか正直分かりません。
ハッキングされるとほぼ丸見えな状態だといっていいでしょう。
変更できるものはなるべく全部変更します。

エックスサーバーのサーバーパネル&ファイルマネージャーのパスワードを変更

元々ランダムな英数字になっていると思いますが、再度ランダムなものに変更してください。
普段インフォパネルから入っているからパスワードわかんないよ!という方も、再発行して変更しましょう(パスワードの再通知のみではダメです。ログイン後、変更まで行ってください)。ハッキングされて復旧する手間を考えれば本当にすぐ終わる作業です。

サーバーパネルのパスワードを変更すると、同時にFTPパスワードも変更されます。
FTPツールの再設定を行ってください。

WordPressのインストール

エックスサーバーのサーバーパネル>自動インストール機能を使って新規でWordpressをインストールします。
どこにバックドアが仕掛けられてるか分かりませんので、バックアップしたWordpressフォルダをそのまま再アップ、は絶対にやめましょう。

DBは「自動でデータベースを生成する」を選択します。
ユーザー名とパスワードも変更します。

wp-config.phpファイルの編集

認証用ユニークキーを編集します。
オンラインジェネレーター(https://api.wordpress.org/secret-key/1.1/salt/)で自動生成した認証キーに書き換え、アップしなおします。このとき、バックアップしておいたwp-config.phpを間違ってあげないよう気を付けてください。
この作業を行うことで、すべてのユーザーが再度ログインしなおす必要があります。
IDとパスワードを変更してるんで大丈夫だとは思うのですが、キャッシュを使って管理者画面にアクセスされないよう、念のため作業を行ってくださいね。

DBの中身の入れ替え

同じ名前のファイルを扱うため若干ややこしいですが、以下の手順で行っていきます。

  1. バックアップからwp-config.phpを開き、DB名を確認します。
  2. エックスサーバーのサーバーパネル>MySQL設定>MySQLバックアップを開き、対象のDBをエクスポートします。
  3. 先ほど編集した(新規でWordpressをインストールしなおしたときに作られた)wp-config.phpを開き、現在のDBのユーザー名、パスワードを確認します。
  4. エックスサーバーのサーバーパネル>phpmyadminを開き、ユーザー名とパスワードを入れてログインします。
  5. インポートタブから、先ほどバックアップしたsqlファイルを指定してインポートを実行します。

これでいけると思うのですが、インポート途中で503エラー。その影響かカテゴリが戻ってくれませんでした。
コスミックキノコのカテゴリは全部みたらし団子以外の話 なので手作業で行けちゃうけど、他サイトでカテゴリが消えるのはしんどいのでここの手順は変更しないといけません。。

手順を変えるのであれば、一度wp-config.phpのDB名、ユーザー名、パスワードを旧情報に書き換え→管理画面にログインしてツール>エクスポート
もう一度wp-config.phpのDB名、ユーザー名、パスワードを新しいものに戻してインポート、でしょうか。
(※動作確認が取れ次第ここの手順は修正します)
後者でも手間はあまり変わらない気がしますね。

記事数等が多いとそこそこ時間がかかりますが、これで記事情報は復旧します。あとはメディアとテーマです。

今まで使っていたものと同じテーマをインストールする

WordPressのテーマディレクトリから、再度同じテーマをインストールします。
テーマディレクトリにないようなテーマの場合、新規で再度ダウンロードしなおしてください。
バックアップを取ったものをそのままあげるのはNGです。テーマフォルダにバックドアを入れるのは簡単&本体と違って頻繁に更新がかからないケースが多いので、ターゲットになりやすく危険です。

バックドアファイルが一つでも残っていればそこから簡単に侵入できますので、また初期化→インストールしなおさないといけません。
有料テーマ等再入手が困難な場合は、デフォルトテーマを有効にして、再度カスタマイズしてみるのもいいかもしれませんね。
更新が全くされない古いテーマを使い続けるのはどちらにせよ危険です。

メディアのアップロード

wp-content/uploadsフォルダをアップロードします。
ただ、この中にもバックドアは仕込まれますので、いったん自分のPCに落としてウイルスチェック、PHPファイルがないかの確認、出来れば怪しいファイルが混ざっていないかすべてのフォルダを目視で確認するなどしましょう。

問題なければアップロードします。

これでほぼほぼサイトの外観などは元に戻っていると思います。

セキュリティ対策

セキュリティ対策は「どこかにバックドアが残っている」状態ではどれだけやっても意味がありません。
きちんとサイトをクリーンにした状態で、侵入される前に速やかに行いましょう。

サーバー側の設定(エックスサーバーの場合)

エックスサーバーのサーバーパネル>Wordpressセキュリティ設定>対象ドメイン を選択し、コメント・トラックバック制限設定の設定をONにします。

サーバーパネル>php.ini設定>対象ドメイン を選択し、php.ini設定変更より「allow_url_fopen」をoff(無効)にします。

前者は海外からのコメント、トラックバックの遮断、後者は他のサーバーに設置されているプログラムを実行するような機能を無効にするものです。使用するプラグインによってはこの設定を行うことで動作しなくなる場合もあるので、念のため設定後はサイトが正常に表示されているか、ボタンが動くか、等の動作確認をしておきましょう。

基本のセキュリティ対策

Webサイトを運営しているときにさらされる脅威は多くありますが、主なものは

・大量のスパムコメント、トラックバックを送付される
・パスワードを割られて管理画面に侵入される
・Wordpress本体やプラグイン、テーマの脆弱性を利用され、悪意あるプログラムを仕込まれる

パターンが多いですよね。
対策としては、

  • 海外からのコメント、トラックバックを禁止する。
  • パスワードをランダムな英数字(ユーザー作成時にWordpressが作成してくれるランダムな英数字等を利用する)にする
  • 複数サイトを運営している場合、パスワードを使いまわさない
  • ログインページのURLを変更する
  • WordPress本体のバージョンを最新に保つ
  • プラグインのバージョンを最新に保つ
  • テーマを最新の状態に保つ
  • Table Prefixを変更しておく

等でしょうか。
これをやっていれば絶対に大丈夫、というわけではありませんが、いずれも簡単で効果の高い対策ですので、可能な限りすべて対応しましょう。

セキュリティプラグインを利用する

上記対策は手動でも行えますが、セキュリティプラグインの多くは上記をすべてサポートしており、+αの対策も行えるのでお勧めです。

私は以下のプラグインを使っています。
All In One WP Security & Firewall

プラグインディレクトリに登録されているので、管理画面>プラグイン>新規追加の画面で検索可能です。
有効化後、様々な項目の設定が必要で全て英語ですが、初心者にもわかるよう丁寧な説明が項目一つ一つについており、Google翻訳に説明文を丸ごと突っ込めば理解できるような仕組みになっています。

色々な対策がこれ一つでできてしまうのはうれしいですよね。

それでも再侵入された人は

WordPressはインストールしてサイトを開設させるのは簡単ですが、その維持には時間と労力が必要です。
一度狙われると集中攻撃を受けるので、多少の対策では突破されてしまいます。相手は知識も経験も時間も財力もあるプロ。時にはあきらめも必要。

自分でサーバーをレンタルするのではなく、Wordpress.comで運用する、という手もあります。プロに守ってもらえれば、あとはログインパスワードさえちゃんとしていれば侵入される心配はありません。

年間13$で独自ドメインも利用できるので、URLを変更する必要もありません。サーバーをレンタルし、管理するコストと手間暇を考えれば、検討する価値は十分あると思います。

FC2やティーダブログなどと同じように完全無料で利用することもできるため、まずは無料でアカウントを作って管理画面にログインし、実用に耐えるか確認してみてもいいかもしれません。
管理画面がちょっと重すぎて私は使えませんでしたが、、

こういうときに独自ドメインを取っておけば、wordpress以外への乗り換えも視野に入れることができるのは不幸中の幸いでしょうか。

最後に

万が一サイトが落ちてしまったとしても、Twitterをやっているとそこでお知らせが出来たり、復旧連絡ができるのはうれしいですよね。
サイトだけでなく、TwitterやインスタグラムなどのSNS系はやっていて損はないんじゃないかと思います。

また、独自ドメインを持っていれば被害にあった時に速やかに復旧できる、サーバーを変えたり入れ替えできる、というのも大事です。

不正アクセスにあっても気づかず被害が拡大してしまうことがありますが、サーバーがしっかりしていれば被害拡大前に知ることができる、というのも魅力です。無料レンタルとかだとブログ自体を消されてしまうケースが少なくないようなので、レンタルサーバー選びは馬鹿にできないですね。

不正アクセスは、Webサイトを運営していれば誰にでも被害にあう可能性があります。
万一を考えて定期的にバックアップを行う、バージョンアップは必ず行う、等対策をしておきましょう。

それではまた。

以下広告(私のお勧めサーバー等)

レンタルサーバーは一択。

エックスサーバー




年中無休で対応してくれるメールサポートと、リアルタイムで回答のもらえる電話サポート。
不正アクセスの被害を受け複数サイトが同時に止まってパニックになった際、どれだけサポートに助けられたことか。

サイト運営にかかわる内容にもかかわらず、不正アクセスの侵入経路、今後の対策、推奨設定などが書かれた丁寧なメールをいただきました。
「エックスサーバー社」が運営している別サービスに乗り換えることはあっても、他社のサーバーは多分もう使わないでしょう。

サポートを抜きにしても抜群のコスパです。

金なら出す!セキュリティの不安とさよならしたい、そんな人はシックスコア



エックスサーバー社が提供する高セキュリティのサービス。月額はエックスサーバーの倍ですが、そもそもエックスサーバーが質の割に安すぎるので、コストをかけられる企業サイト等にお勧めです。

お名前.com

独自ドメインは取っておくべき。絶対。独自ドメインには年間30円以上の価値はあります。


パスワード管理が便利

ランダムな英数字でも、セキュリティソフトに登録しておけば毎回入力不要。楽です。

-Wordpress
-, , , ,

おすすめ記事

1
2016年 母の日にどうぞ!楽天レビュー数10000以上、評価4以上のお取り寄せグルメ一覧

今回は「日々の贅沢」「贈り物」の参考としていただくため、健康食品や1kgで100 ...