Skip to content

Categories:

WordPressのバックアップ・復旧の概要

2013日8月30日現在で、ロリポの問題は何かまだまだ混乱してる感がありますね。

クラックは今現在も続いているのでしょうか??

 

ロリポ側も対応に負われていて、何か具体的にどー動いていいかも
判断しかねる感じですね。

フォーラムの方にも立っていたのでコチラを細かくチェックした方が良いかもですね。

http://ja.forums.wordpress.org/topic/24573?replies=1

 

 

んー普段からのバックアップが非常に重要ってのが身にしみますね。
クラックされると、一体どこがどーなったのか知識が乏しければ正直分からないと思います。
データベースの中身を一個一個チェックするなんて無理だし。
クラックされたファイルから完全に復旧というのはケッコームズいのではと…

 

 

恐らく、今回被害にあった人たちの中にはライトなユーザーも多くいたと思いますので
バックアップの取得、ましてはバックアップからの復旧等も敷居が高いと思います。

なので、WPをバリバリ触れる人からしたら今更何言ってんだ感が強いですが

1.バックアップはどうすれば良いのか??

2.復旧ってどうすれば良いのか??

っていう2つの概念を書こうかと。

 

ネットで転がってる「こうするのが正解!」的な内容では無く
何故それが必要かという部分です。

 

 

1.バックアップはどうすれば良いのか??


バックアップを取るといっても、どのファイルバックアップすれば良いのか??
WPのフォルダを開くとこーなっている感じだと思います。

 

WP┬wp-admin[フォルダ]
      ┝wp-content[フォルダ]
      ┝wp-includes[フォルダ]
      ┝ htaccess(無い人もいる)
      ┝ wp-config.php
      └ その他なんやかんや

 

罫線図こんな表現であってるか…?!(汗
各ディレクトリとファイルが一体何なのかっていうと

  • wp-admin…管理画面周り
  • wp-content…テーマ、プラグイン、画像とか
  • wp-includes…wordpressの処理をするファイルがある所
  • htaccess…パーマリンクの設定やら
  • wp-config.php…wordpressの基本設定ファイル(DBの接続先とか

って感じで。何かwp-adminとwp-includesの説明が間違っている気がする…!!

 

んで、通常は、下記赤のフォルダは基本的にインストール後から何も変わらないはずです。
環境にもよりますが。プラグインでその辺に追加されたりとか
includesを触るカスタマイズ等もあります(推奨されませんが)

WP┬wp-admin[フォルダ]
      ┝wp-content[フォルダ]
      ┝wp-includes[フォルダ]
      ┝ htaccess(無い人もいる)
      ┝ wp-config.php
      └ その他なんやかんや

 

んでバックアップに重要なのは下記の青の部分

 

WP┬wp-admin[フォルダ]
      ┝wp-content[フォルダ]
      ┝wp-includes[フォルダ]
      ┝ htaccess(無い人もいる)
      ┝ wp-config.php
      └ その他なんやかんや

 

特にwp-content。

htaccessやwp-configは再インストール時になくても最悪なんとかなりますが
wp-content内には作成したテーマファイル、アップしたファイル、プラグインファイル
など、ユーザーが独自に変更する部分が詰まっています。

 

もしWPを改竄され、復旧するには基本的に新規インストールになります。
WPサイトから該当するバージョンをダウンロードし、もう一度アップロードする
という事になりますが、wp-admin・wp-includesに関しては、インストール後特に変化が起きない
なので、そのディレクトリに関しては特に必要無いのかなと思います。

 

もちろん全ディレクトリ取れていれば問題無いですが
そのへんのディレクトリはファイル数もわりとあるので、時間もかかるかなと。
ディレクトリで最重要なのははwp-contentフォルダです。

 

そしてもう一つ。データベースのSQLファイル
WPの全てのデータです。記事だったり固定ページだったり。プラグインの設定から
WPの設定からなにまで。

 

WordPressはwp-contentとSQLファイルがあれば完全に復旧する事が出来ます。
バックアップに必要なファイルは以上の2つです。

 

バックアップを取得するのにオススメなのは

 

「BackWPup」というプラグインがオススメです。

・WPのディレクトリ事のバックアップ(除外も可)
・月1等の定期的な設定
・ドロップボックスへのアップロード
・バックアップ完了後のメール送信

 

等が行えます。(ドロップボックスは試した事が無いのですが…)

 

アップロードディレクトリ(画像等)にファイルが大量にあるとエラーを出したり
最悪、貧弱なサーバーだと落ちた経験があります…

これを導入し、定期的にしっかりと取得すれば
今回のような事が起こってもすぐに対応することが出来ます。

 

2.復旧ってどうすれば良いのか??


まず前提として、上記バックアップをしっかりと取っている事が前提です。

なぜかと言うと、改竄されたファイルは、どこがどう改竄されたかが
非常に分かりづらい&大量に改竄されるからです。

 

以下、経験した改竄事例

 

  1. <body>等の特定のタグを狙い、ディレクトリ内の全ファイルに置換を掛け、不正なスクリプト等を挿入する。
  2. 不正なphpを設置し、特定のファイルに関してエディタ等で開いた場合は特に問題が無いのだけれど、ブラウザからアクセスした場合そのファイルに対して、関節的に不正なスクリプトを挿入する
  3. エンコードされたスクリプトが挿入され、特定のパラメータをURLに渡してアクセスすると、バックドアが現れる。
  4. データベースが書き換えられ、不正なスクリプトをWPが出力するようになる。

 

等など…

もう本当に頭が痛くなります。2の間接的な書き換え等は、FTPの更新時間や、アクセスログを見ても特定が出来ないので
特定に時間が掛かりました。

 

 

とにかく、どこそこ書き換わるので、一度改竄されたファイルから復旧するのは本当に困難な訳です。
という訳で、しっかりとバックアップを取ろうという事になります(汗

 

 

 

で、実際の復旧方法はどうするか。

 

 

まず、バックアップファイルに必要な物が入っているか確認します。

 

1.テーマファイル
2.プラグインファイル(これは最悪、入れたのを覚えていれば再インストールでも可
3.アップロードファイル(画像とか
4.SQLファイル

 

SQLファイルはしっかりとインポート出来るか確認
これが一番重要なのですが、バックアッププラグインの設定等をミスってたりすると上手く読み込めない事があります。
知識があれば、手動な書き換えで対応する事も可能ですが非常に難易度が高いです。

 

 

サーバーにもよりますが、複数データベースが持てる所であれば
まず、テストで適当なDBを作り、インポートが行えるか確認するのをオススメします。

 

出来れば、別環境にテストで移行してみる。
これも、DBが複数持てるのならばですが、サーバー上に適当なフォルダを切りそちらでテストをしてみるのをオススメします。

 

例えば

http://xxx/wp

という所にインストールしてあったならば

http://xxx/wp2

というフォルダを新しく作ります。そこに新規でWPのファイルをインストールします。
バックアップのSQLファイルをコピーし

秀丸等のエディタで開き

 

http://xxx/wp → http://xxx/wp2

 

という書き換えを行います。
もし、トップのディレクトリを変えている場合はここだけ、パスが変わると思うのでそこは注意します。

 

データベースにphpmyadminにアクセスし、新規データベースを作成し書き換えたSQLをインポートします。

http://xxx/wp2/wp-admin

にアクセスした場合、新規インストールの際は、wp-configの作成画面が出ると思います。
そこに、先ほど作成したコピーデータベースを指定すれば、ブログの複製が出来ると思います。
初期だとhtaccessも作られないので、管理画面にアクセスし、パーマリンクの更新も必要かと思います。

もしサーバーで複数持てない場合、XAMPP等で環境を整えてから、ローカル上で確認するのも良いと思います。
とにかく、ぶっつけ本番はオススメしません!

 

本番環境にインストールする。
確認が出来たならば、本番環境を復旧します。

 

まず、どのファイルが書き換えられたか分からないので基本的に
ファイルは全て削除します。削除前に、WPのバージョンを確認します。

 

wp-includes内のversion.phpにバージョンが書いてあります。
そのバージョンを公式サイトからダンロードします。

データベースも一度削除し、まっさらな状態にします。DBパスが割られている可能性もあるので
新規データベースを立ち上げ、パスワードも変更します。

 

ダウンロード後は新規インストールと変わりません。新規インストール後、SQLを書き換え、以前の状態に戻すので、適当でも良いかと思います。

新規インストールが済んだら、バックアップファイルから

wp-content内をアップロードします。

テーマ、プラグイン、アップしたファイル等をアップロードします。

 

 

SQLを書き換える。

phpmyadminにログインし、新規インストールしたDBにバックアップSQLをインポートします。
先にインポートしてから、wp-config.phpを作っても良いですが念のため…

先にまっさらな状態のWPのデータベースのテーブルは全て削除します。
削除後、SQLをインポートすればおk-です。

 

管理画面にログインし、パーマリンクの設定を更新します。

 

 

以上で、復旧作業は完了です。

 

phpMyadmin側でインポートファイルサイズに制限がある場合等はサーバーの設定から変更しなければいけないので
注意が必要です。phpmyadminが無い所はどうすれば良いだろか…

 

何かダラダラと長文の割にはあんまためにならない記事になっちゃったな…(汗
一度改竄を受けると、猫のようにWPのセキュリティに関して構えるようになります。

 

といっても、クラッカーは様々な手法で行うため、どうしても後手後手になりがちではありますが…

Posted in web.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.

*