前回までのあらすじ(詳しく読みたい方はこちら)
ある日突然、謎の通販サイトのページを上書きされてしまったMANGADORONのサイト!
このままでは、バトミントンのシャトルが爆売れしてしまう。違う。
勝手にサイト改ざんされるということは、フィッシングサイトにされたり、アダルトサイトに転送されたりする可能性もある。そしてMANGADORONの情報は、悪行の裏でどっかに消えてしまうのだ。
マネタイズがっつりできてるサイトではないとはいえ、放置すると大変なことが起こるかもしれない。
- サイトの情報発信が滞る
- それどころか、有害情報を発信してしまうかもしれない。
- 書き溜めたブログや情報が、無くなっちゃうかもしれない(もう、消されている?)
1日外出して、飲んで0時に帰宅し、検知。眠い目をこすって、調査とここまでの考察に至った午前2時。
今回は、ここからリカバリーするまでの記録です。
INDEX
- 何が起こってるんだ
- これって、何が恐ろしいかっていうとさ…
- どうすりゃいいんだ ← 今回はここから
3-1.ファイルをローカルに退避
3-2.変なファイルを消してみる
3-3.一回深呼吸して、対応方針考える - 復旧
4-1.サーバーを綺麗に掃除する
4-2.Wordpressを再インストール
4-3.情報を、何らかの方法で復旧する - 一応の防止策と反省
検知〜状況把握までの流れは「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サイトからの発信情報、ぜひぜひお楽しみください。
ゆうたレッド