契約中のレンタルサーバーのカスタマーサポートから、「改竄について」というタイトルのお知らせが届きました。お知らせの冒頭には次のように書かれています。
平素は弊社サービスをご利用いただき、誠にありがとうございます。
早速ですが、お使いのアカウント内で規約違反行為が行われております。https://ubiqlog.com/wp-content/plugins/●●●等より、送信者を詐称したSPAMメールが大量に発信されております。
アカウントが乗っ取られた、もしくは、踏み台にされている可能性がございます。緊急処置としまして、サーバーアカウントを凍結させていただきました。
上記の●●●には、不正ファイルが仕込まれたWordPressのプラグインのフォルダ名と不正行為を行うPHPプログラム名が書かれています。この時点では、詳しいことは分からなかったものの、WordPressのプラグインの脆弱性を突かれた可能性が高いようでした。
FTPパスワードの変更
カスタマサポートのお知らせは、さらに続きます。
お手数ではございますが、お客様にてバックアップを取得の上、サーバー上の全ファイルを削除し、脆弱性のない最新版に置き換える等、適切な処置を賜りますようお願い申し上げます。
また、上記の対応とあわせ、FTPパスワードの変更、FTP接続情報を共有する全PCのセキュリティチェックを実施の上、ご対応後その旨当フォームのご返信にてご連絡ください。
上記の指示に従って、先ずはFTPのパスワードを変更を行いました。FTP接続情報を共有しているのは、自宅のPC2台のみなので、ここまでの作業は5分程度で終了です。
続いて、FTPクライアント(ここではFileZilla)を使って、サーバー上の全ファイルを自分のPCにダウンロード。ここは思っていた以上に時間がかかりました。
普通の精神状態であれば、SSHでログインし、全ファイルをzipコマンドでファイルを固めた後に、FTPでのダウンロード作業に移っていたでしょうが、やはり焦っていたのでしょう。緊急事態では焦りは禁物です。
phpMyAdminが使えないのでSSHでデータベースをバックアップ
続いて、データベースのバックアップですが、この時点では、まだアカウントは凍結されたままなので、phpMyAdminは使えません。
そこで、SSHでログインして、以下のmysqldumpコマンドを使ってバックアップを行いました。
mysqldump –h [MySQLサーバー名] -u [MySQLユーザー名] -p --default-character-set=utf8 [MySQLデータベース名] >> [出力ファイル名].sql
なお、カスタマーサポートからのお知らせによれば、/public_html以下にある全ファイルの削除が完了すれば、アカウントの凍結解除の申請できるということですので、アカウント凍結解除後、phpMyAdminが使えるようになってから、データベースのバックアップを取るという考え方もありです。
また、日頃から定期的にバックアップを取っていれば、復旧にはそちらを使うという考えもありますが、SSHが使えるレンタルサーバーであれば、上記のmysqldumpコマンドによるバックアップをお薦めします。
ローカル環境でのサイト復旧と検証
ダウンロードした全ファイルとデータベースのバックアップを使って、ローカル環境で、ハッキングされたサイトを復活させます。WindowsならXAMPP、MacならMAMP等を使って、ApacheとMySQLが動作する仮想環境を用意しましょう。
手順は、基本的にWordPressのサーバー引っ越しと同じ。少し古い記事ですが、このサイトにも「WordPressのサーバー引越しが楽になった理由」という記事もあります。
ローカル環境でサイトが復活したら、改竄されたファイルの場所や侵入経路などを特定して、不正ファイルを除去します。
検証した結果、カスタマーサポートからの指摘通り、プラグインの脆弱性が突かれていました。どうやら、使わないまま放置していたいたプラグインが改竄され、送信者を詐称したSPAMメールを送る不正ファイルが仕込まれてしまったようです。さらに、改竄は、テーマにも及んでいる可能性がありました。
幸い、データベースに侵入された形跡はなかったので、レンタルサーバーには、ゼロからWordPressをインストールし直し、データベスをインポートした後、uploadsフォルダ以下の写真のみをアップロードすることにした。
セキュリティ対策の基本中の基本
レンタルサーバーのお知らせの文面では何だか突き放された感じがしましたが、電話サポートはとても親切で、質問にも的確な答えが返ってきました。サポートの指示を受けながら冷静に対処すれば、誰でもアカウントの凍結から24時間以内にサイト復旧は可能だと思います。
それにしても、使わなくなったプラグイン(長期間メンテナンスされていないが、気に入っていて使い続けていたプラグインも含む)やテーマをこまめに削除するという、セキュリティ対策の基本中の基本を怠っていたツケは大きかったです。
趣味のブログとはいえ、これだけショックを受けるのだから、これが仕事で管理しているサイトだったらと思うとゾッとします。
今回は、セキュリティ対策の徹底が、どれほど重要なことかを考えさせられました。当たり前のことを当たり前に行うことが、 セキュリティ対策の基本集の基本だと改めて気づかされました。