マルウェアに感染したようなので対策した備忘メモ
普段は読んだ本の感想を書くブログなのですが、この前事件が発生したので、自らの備忘(と、あまり検索しても引っかかることが少なかったので、後世の誰かのために)に書き残しておこうと思います。
事件のきっかけ
先日、とある方からツイッターのDMをいただきました。内容は、「あなたのサイトの特定のページを開くと、謎のアンケートサイトに飛ばされてしまいますよ!」と言うもの。
なんて親切な…本当に有難うございます…。
実は、自分でもツイッターに貼ったサイトのリンクに飛べるか試すときに、何度かアンケートサイト?みたいなものに飛んでしまったことがあって、ただ、普通にトップページから行くと問題なかったため、ツイッターのエラーかな?と思い放っておいたという心当たりがありました(愚か)。
改めて、もしかしてウイルス的なものに感染しているのでは…?と不安が込み上げてきたので確認した結果、マルウェアに感染していることが分かりました。
まさかこんな、全然需要のないサイトに対して攻撃する人がいるなんて…!ととても驚きましたが、せっかく閲覧してくださっている方たちに不快・不安な思いをさせていたかもしれないと思うと、とても悲しくなりました。申し訳ないです…。
心を入れ替え気を引き締め、しっかり調べて対策をしよう!と決意したのでした。
以下、感染確認方法→除染方法→感染防止対策、をまとめていきます。
※多少専門的?というか横文字が並びますので、興味のある方だけ読んでくださいね。
感染確認の方法
まず、感染確認方法については、こちらのサイトを参考にしました(有難うございます!)。
「WordPressでウイルスに感染してしまったときの対処法」
https://wap-log.com/wordpress-malware-virus/
FTPソフト(わたしはサイト編集に”code2”を使っているので、それで確認しました)を使って、自分のサーバーに謎のファイルが置かれていないかを確認しました。
そもそもwordpressのことを深く知らないまま、手探りでサイト運営をしているので正直知らないファイルばっかりなのですが、明らかにおかしいものがあったので、「お前かー!!」となりました。
通常、どのwordpressにも「wp-content」というフォルダがあると思いますが、わたしのサーバーには「wp-contnt」というフォルダがありました。(スクショ取っておけば良かった…)ぎ、擬態しようとしている…!?
そう気づいて改めて見てみると、「あれ?サーバーにこんなにファイルやフォルダって多かったっけ…?」と、全てが疑わしくなってきました。
そこで、参考にしたサイトの手順に従い、.htaccessを使って海外からのアクセスを一時的にシャットアウトしたのちに、WordPressから全ての管理者をログアウトさせ、パスワードを変更しました。パスワードは自動生成される無茶長くて絶対覚えられないやつにしてみました。不便だけど、背に腹は変えられない…。
ファイルの除染へ(※失敗する)
次のステップは、不審なファイルを削除することなのですが、先ほども書いた通り、自分ではどれが正しくて、どれが怪しいファイルなのか区別がついていませんでいた。
そこで、「バックアップを取って、一旦全部サーバーから削除してしまって、wordpressを再インストールすればいいんだ!」と考えました。(結果、あまり良くないやり方のように思ったので、参考にしない方がいいと思います。自己責任で…)
まず、wp-content → theme → 自作テーマフォルダ
をローカルにダウンロードしました。
そして、なんだか大事そう、といううっすらした記憶を頼りに「.htaccess」ファイルを残し、それ以外はえいやっ!と全削除しました。
次に、ロリポップのマイページから「Wordpress簡単インストール」にて再インストールを実施。インストールできたら、自作テーマを再アップロードして完了!
…と思ったら、サイトの見た目自体は元どおりになったものの、これまで書いていたブログの記事が!どこにも見当たらない!?
やばい、先ほどの参考にしたサイトを良く読むと、「wp-config.php」は大事だから削除しちゃダメと書いてある…削除してしまった…
もしかしてこれが原因!?記事全部トんだ!?とめちゃくちゃ焦る。
さらに愚かなことに、この時まで定期バックアップも取っていなかったですし、ダウンロードしたのもテーマだけで、その他のphpファイルは触っていなかったのですね。バカだな…
慌ててサーバーに問い合わせ
とりあえず専門家に聞いてみよう、ということでロリポップのサポートページから、できるだけ現状を細かく書いてメールを送信。
返信が来る前に、何かできることは…と考えた結果、「グーグルでキャッシュ検索できないかな!?」と思いつきました。
検索してみると、最近更新した記事はキャッシュが溜まっていなかったので拾えませんでしたが、昔の記事は、少なくとも本文は、まだ残っている…
文字を回収したとして、もう一度記事を投稿する気力が自分には残っていないような気がするな…と思いながら、ひたすらキャッシュページをコピペしてevernoteに貼り付ける作業を行いました。
今思うと、そもそもこの除染作業を深夜にやったのが行けなかった気がする笑
なるべく閲覧者の少ない時間帯に…と思ったからなのだけど、判断力が低下している状況でこれをやってはいけなかった。
後、回収作業しているうちにどんどん凹んできて、精神的にもキツかったです笑
サーバーからの回答、そして復旧へ!
木曜深夜(日付が変わっていたので問い合わせたのは金曜だけど)に連絡をして、土曜の昼間に返信が来ました。土日も運営しているんだ…ありがたい…とドキドキしながらメールを確認すると、以下の対処法をお試しください、とのこと。
——ご連絡の件につきましては、ロリポップ!FTP上にございます「wp-config.php」ファイルを編集していただくことで記事データの復旧を行える可能性がございます。
下記手順にて編集を行っていただきますようお願いいたします。
※注意点※
・必ず復旧が行えるという保証は致しかねます。 不具合等が生じた場合には、WordPressのフォーラムなどをご活用いただき ご対応をお願いいたします。
・テーマやプラグイン・画像データについては 復旧が行えない場合がございます。
・作業を行われる前には、必ずデータのバックアップを 行っていただきますようお願いいたします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.ユーザー専用ページにログインする
◇ユーザー専用ページ|ロリポップ! https://user.lolipop.jp/
2.「サーバーの管理・設定」>「ロリポップ!FTP」をクリックする
3.【wp-config.php】を開く
4.現在の属性〔400〕を『600』に変更し、 「保存する」をクリックする
5.ファイルの内容が編集できるようになりますので、 以下の点を編集します。
——————————————- ■変更前
* WordPress データベーステーブルの接頭辞 ・ ・(省略) ・ $table_prefix = ‘wp●_’; ←再インストールした時のもの
——————————————- ■変更後
* WordPress データベーステーブルの接頭辞 ・ ・(省略) ・ $table_prefix = ‘wp★_’; ←えいやっ!と消した時のもの
——————————————-
6.「保存する」を選択する
7.現在の属性〔400〕に戻す
8.「保存する」をクリックする
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━——
あ、ありがたい…そういうことか、サーバーのファイルは消してしまったけど、データベースを消したわけではないから、データベースの読み込み先を変えれば良かったのか…!と、wordpressを設置した時に何となく触れていた知識がふんわり蘇ってきました。
これ、詳しい方なら絶対すぐに元に戻せたやつだよね。わたしの深夜のキャッシュ回収は一体…笑
何はともあれ、おかげさまでサイトは無事に復旧できました。ロリポップさん、迅速かつ丁寧に対応いただき有難うございました!
感染防止に向けて
その後、感染防止対策として、パスワードを長くすること以外に、以下の対応をしています。
- プラグインで感染有無をチェック(こちらを利用しています → http://u0u1.net/8V4L )
- 使っていないファイル、テーマを削除(Wordpress移行前のサイト(恥ずかしくて直視できない)もサーバーに保管していたのですが、ローカルに保存することにしました)
- MySQLをアップデート(めちゃつまづいて焦ったので別記事で書きます…笑)
- PHPをアップデート
こ、これで皆さんに安心して見ていただけるサイトになった、はずです。
ブログサービス(アメブロとかそういう)ではなく、自分でサイトを作りたい、と思ったからには、適切なメンテナンスは最低限のマナーですよね。
今後は、より一層気をつけていきたいと思います。
ちなみに、MySQLをアップデートした際に発生したトラブルについては、こちらの記事にまとめました。
最後までお読みいただき、有難うございました!
(よければ、本来のブログネタである読書感想もお読みいただけると嬉しいです → トップページへ)