WordPressが乗っ取られちゃった話。(② 復旧編)

WordPressが乗っ取られちゃった話。(② 復旧編)

前回までのあらすじ(詳しく読みたい方はこちら
ある日突然、謎の通販サイトのページを上書きされてしまったMANGADORONのサイト!


このままでは、バトミントンのシャトルが爆売れしてしまう。違う。
勝手にサイト改ざんされるということは、フィッシングサイトにされたり、アダルトサイトに転送されたりする可能性もある。そしてMANGADORONの情報は、悪行の裏でどっかに消えてしまうのだ。
マネタイズがっつりできてるサイトではないとはいえ、放置すると大変なことが起こるかもしれない。

  1. サイトの情報発信が滞る
  2. それどころか、有害情報を発信してしまうかもしれない。
  3. 書き溜めたブログや情報が、無くなっちゃうかもしれない(もう、消されている?)

1日外出して、飲んで0時に帰宅し、検知。眠い目をこすって、調査とここまでの考察に至った午前2時。
今回は、ここからリカバリーするまでの記録です。


INDEX

  1. 何が起こってるんだ
  2. これって、何が恐ろしいかっていうとさ… 
  3. どうすりゃいいんだ  ← 今回はここから
    3-1.ファイルをローカルに退避
    3-2.変なファイルを消してみる
    3-3.一回深呼吸して、対応方針考える
  4. 復旧
    4-1.サーバーを綺麗に掃除する
    4-2.Wordpressを再インストール
    4-3.情報を、何らかの方法で復旧する
  5. 一応の防止策と反省

検知〜状況把握までの流れは「WordPressが乗っ取られちゃった話。(① 状況把握編)」をお読みください。

私のスペック
Webディレクター・プロデューサー歴10年。 皿洗い歴10年。ギター歴30年、バンド歴22年。デザインはできる。
HTML構文はだいたいわかる。CSS2.2までは暗記してるけど、CSS3で挫折。
TOEIC300点台(やばい)。
Javascript、PHPはもはやフランス語くらいの感覚。
Web勘あるけど、エンジニアリングはまったくダメ、タイプ。
WordPress構築はもっぱらノーコーディングで。


3.どうすりゃいいんだ

規模でいうと個人サイトだ。最悪作り直してもいいんだけど、今まで書いたブログ記事がなくなるのはとても辛い。なんとか復旧できぬものかと。手探りする。

今の状況はこうだ。
・サイトの一部ページが、変なページに書き換えられている
・FTPサーバー上に、変なPHPファイルが増殖しているっぽい
・「wp-admin」「.htaccess」など、ファイル改ざんも
・Wordpressの管理画面にアクセスができない

・FTPへはアクセス可能
・データベースは、(たぶん)無傷 ※管理画面に入られた形跡はない


3-1.ファイルをローカルに退避

FTPツールでごっそりファイルをPCローカルにダウンロード
今の状態に復旧することはないが、バックアップしとけばヒントがあるかもしれん。

3-2.変なファイルを消してみる

FTPツールで怪しいファイルを片っ端から消してみる。

ちなみに、怪しいファイルの中身を見ると、意味不明なコードが書かれていたり、コメントが1行。「The time is money」と書かれていたり。これ、今回一番の怒りポイントであった。時間返せ

ちょっと作業して、これは無理と思った。

変なファイル自体をしらみつぶしすることで、大元のマルウェアを削除できるんだっけ。
全部削除して、サイトは元に戻るんだっけ。
あと、既存ファイルの改ざんを目検で綺麗にするのは、自分のスキルではほぼ不可能だろう、と。
仮説のまま進めるには時間も労力もリスクも半端なく、キックバック大きそうな予感。

3-3.一回深呼吸して、対応方針考える

ちくちく作ってたサイトが一瞬で壊れること、オンラインで情報発信することの危険性と責任
クライアントワークでもないからと、Wordpressのバージョンアップやプラグインの評価を怠ってた反省…。しばし呆然。

ちょっと悩んだ末、「危ないサイトよりも、真っ白のサイトのほうが安全だ。」という割り切りで、

1 サーバーを綺麗に掃除する
2 WordPressを再インストール
3 情報を、何らかの方法で復旧する


こんな手順で進めることに。(「何らかの方法」いうてる時点で相当眠かったことが窺える)

4.復旧

4-1.サーバーを綺麗に掃除する

いちインディーバンドのサイトだからできる術。深夜にライブ情報見に来る人もいないでしょう、と。
ドメインルート直下のphpファイル、「wp-admin」「wp-content」「wp-includes」ディレクトリをごそっと削除
wordpressが存在しない状態に。


4-2.WordPressを再インストール

淡々と、新たにWordpressをインストール。データベースを現状のものにすれば記事が復活するのかと思いきや、、まっさらになっちゃった。

考えてもしょうがない。とりあえず今回は、ゴリっとパスワードを変更して、.htaccessにIPアクセス制限も記述しておいた。


4-3. 情報を、何らかの方法で復旧する

正直ノープランだったんだが…寝落ちしそうになりながら、淡々と↓の手順で作業。
なんとか、復旧完了まで漕ぎ着けた。

▼バックアップファイルのインポート

PCローカルにダウンロードしておいたファイルの中に、2年ちょい前のバックアップファイルを発見(だいぶ古い…)。
インポートすると…レイアウト+記事復活!

データベースに記事が残っていて(よかった)、バックアップファイルでサイトレイアウトを戻したことで、記事が表示されるようになったっぽい。

微妙に表示崩れがあるけど、プラグインと画像ファイルの復旧で直る気がする。

▼プラグインの再インストール

WordPressの再インストール後は、プラグインもまっさら。

PCローカルにバックアップしたプラグインデータをFTPツールでサーバーに上げれば復旧完了!だが、プラグインも改ざんされている可能性が高い。

インストールはWordpress管理画面から新規インストールすべきだろう。
フォルダと記憶を参照して必要なプラグインだけをインストールする。

▼画像データのアップロード

これは、ダウンロードしたファイルから「wp-content > uploads」ディレクトリの画像をFTPツールで直接アップ。
念のため、phpとか変なファイルが入ってないかを目視しながら、画像ファイルのみをアップする。


復旧完了

あー、戻ってきたぁ。。

これで何とか、元の姿に復旧完了。
時計を見ると朝4:00。復旧自体はサクサクできたけど、、夜中の緊急対応は痺れた。。

5. 一応の防止策と反省

今すぐにでも布団にダイブしたいところだけど、今回復旧作業しながら、セキュリティ観点でやったことを振り返っておく。反省すべきポイントがゴロゴロと出てきたので、自戒の思いも込めて、ここにメモ。

  • サーバー管理画面に、2段階認証を設定(やってなかった)
  • サーバー側のWAFの設定(プラグイン動かす際にOFFにする必要があったが、作業後にONに戻し忘れていた)
  • WordPressのパスワードを複雑に(今だからいうけど、けっこう簡単だった)
  • WordPress管理画面にIP認証を追加(してなかった。もっというといろんな端末でログインしていた)
  • プラグインの更新(ほったらかしだった。自動更新にするかは検討中)
  • WordPressのバックアップをバッチ化(2年前に手動でバックアップとったのみだった)


言い訳をすると、「自信が所有する個人サイトだし…」だったんだけど。

「田舎だから玄関鍵かけなくていいっしょ」「運転できるから免許いらないっしょ」みたいな、ひっどい有様だったなあ、、って思いました。

バンドも、マイペースながら情報資産が増えてきていて、それなりに情報を見に来る人もいる中で、裏口開けっ放しは、ないよなあ…と。つくづく反省。ここまで完了して朝5:30。息子とお出かけまであと4時間。一発徹夜作業は、ちょうどいいお仕置きであった…。

セキュリティ周りのプラグインや日々できることを、勉強始めた次第。これからもMANGADORONサイトからの発信情報、ぜひぜひお楽しみください。

ゆうたレッド