サーバー乗っ取り顛末

最初に何か変だなと気が付いたのは、ブラウザのブックマークから自分のホームページにアクセスしようとしても繋がらなくなったこと。
でも、他のリンクからだと繋がることもあり、何でだろうと調べてみて、直ぐに原因は判明。
ブックマークに登録してあるURLは http://hokkaicamp.com
これでは繋がらないけど http://hokkaicamp.com/index.html と、index.htmlまで指定すれば問題なく繋がる。
何かおかしいなと思いながらFTPでサーバーにアクセスして調べてみたところ、自分が最後にアップロードした日よりも新しい日付のファイルが幾つか見つかった。
これはもしかしたらサーバーが乗っ取られてしまったのかも。

それが3月19日のこと。
日付が新しくなっていたのは「.htaccess」というファイル。
他に「robot.txt」とか「index.php」など、PHPファイルが幾つか新たに追加されていた。
そのファイルの中身を見ても、私の知識では判読できず。
一体何をされたのか、言いようの無い不安に襲われた。

これはパスワードが漏洩してサーバーにアクセスされたとしか考えられない。
サーバーのパスワードは、他の色々なサービスで使いまわしているパスワードよりは複雑なものにしているつもりだ。
それでも、長い間パスワードを変更していなかったのは確かである。

書き換えられたファイルは元に戻して、追加されたファイルは削除、そしてパスワードも変更。
すると、ホームページは元通りに表示されるようになり、他に被害は確認されず。
とりあえずは一件落着し、これからはパスワードの管理にも注意しなければと反省した。

しかし、数日後、またしても同じような状況が発生。
おまけに、ブログにもアクセスできなくなっている。
ブログの方は「500 Internal Server Error」との表示がでて全くアクセスできない。

これには焦ってしまった。
もしもブログの内容が全て失われていたとしたら、ショックが大きすぎる。
ホームページを続ける意欲さえ無くなるかもしれない事態である。

恐る恐るFTPでサーバーにアクセスしたところ、今までにアップロードしたものは全て残っていてホッとした。
しかし、前回と同じく「.htaccess」の書き換えやPHPファイルの追加の他に、ブログのディレクトリにもPHPファイルなどが追加されているのを発見。
人間がこれをやっているとは思えず、多分ロボットが総当りでパスワードをクラックしているのだろう。
それならばロボットでも破られないパスワードにするしかないと、文字数もこれまでの8文字から16文字に、そして大文字小文字に数字や記号も混ぜたパスワードに変更。

これでようやく枕を高くして寝ることができる。
安心して3週間の瀬戸内の旅に出かけたのである。

ところがである、旅行中はホームページを見ることも無く放っておいたのだが、帰ってきてか確認したら、またしても書き換えられていたのだ。
それからは、書き換えられたものを削除しパスワードを変更しても、翌日には再び書き換えられる。
まるでいたちごっこだ。
たまらずに、サーバー管理会社のサポートへ連絡。

その結果「Webコンテンツ経由で不正なファイルの設置が行われている場合、パスワードに関係なくファイルの改ざんが行われることもある。また、Movable Typeの脆弱性による可能性も考えられる」との回答があった。
それでMovable Typeの脆弱性について調べてみると、その脆弱性を利用してバックドアとして動作するPHPファイルが配置される事例があるとのこと。

要は、私のサイトに知らない間にバックドアが仕掛けられていたのである。
一度バックドアを仕掛けられると、悪意のある相手により好き勝手に改ざんされるケースもあるようだ。

そこでFTPでサーバーの隅から隅まで調べたところ、あちらこちらに不審なPHPファイルがあるのを発見。
それらを全部削除してもう大丈夫だろうと安心したら、数日後にはまたしても同じ状態に。
これはもうMovable Typeの脆弱性そのものを解消しない限り問題は解決しないのだと、ようやく理解したのである。

それと、「.htaccess」が書き換えられると、ブックマークからアクセスできなくなったり、ブログがサーバーエラーになる理由もようやく分かった。
.htaccessとは、Webサーバーの基本的な動作をディレクトリ単位で制御するためのファイルである。
index.htmlまで指定しなくてもホームページにアクセスできたり、ブログのアドレスであるblog.hokkaicampp.comというサブドメインを使えるようにしたりと、私自身が設定していたのだ。
そんな事も忘れて、これは大変だと騒いでいたのだから恥ずかしい限りである。

しかし、このおかげで乗っ取りに気が付いたのは不幸中の幸いである。
もしもこれがなければ、バックドアを仕掛けられていることも気が付かないままホームページの運用を続けていて、そのうちに致命的なダメージを受けることになっていたのかもしれないのだ。

今回、その脆弱性を突かれたてバックドアを仕掛けられる原因となったMovable Typeとは、私のブログ(見聞ログ)で利用しているコンテンツ管理システムのことで、北海道キャンプ場見聞録のホームページを運用しているレンタルサーバーの中に設置している。
去年の秋頃に「脆弱性が見つかったので新しいバージョンにアップデートしてください」との連絡があったような気がするけれど、何時ものことだと思って無視していたのだ。

アップデートといっても、スマホのアプリのアップデートとは訳が違う。
過去にも一度失敗したことがあり、何とか元には戻せたけど、アップデートしないで済ませられるのならばその方が良いというのが本音である。

前回アップデートしてから何年も経っていて、どうやったのかも覚えていない。
まずは、失敗した時に備えてMovable Typeの管理画面からバックアップを試みるが、データ量が多過ぎて途中で止まってしまう。
しょうがないので過去にアップした内容をFTPソフトでダウンロードしておいたが、もしも失敗した時にダウンロードしたデータから元に戻せるかは不明。

不安ながらも一応はバックアップが済んで、新しいバージョンのMovable Typeをサーバーにアップロードする。
これも、ファイルの数だけで6000くらいは有るシステムなので、アップロードが途中で何度も止まってしまう。

完全にアップロードできたのか不安なまま、設定ファイルにアクセスすると自動的にアップデートが始まった。
固唾を呑んで見守っていると、暫くしてアップデート完了の画面が表示された。

拍子抜けするくらいに簡単だった。
バージョンアップを重ねるにつれて、アップデートの方法も改良されていたようだ。

これでセキュリティホールは完全に塞ぐことができただろうと安心していたら、数日後にまたしても同じトラブルが発生。
この原因は概ね見当がついていた。
実は、今使っていたMovable Typeより更に古いバージョンのものがサーバーに残っているのである。

古いブログで使っていたシステムなので、古いブログとともに全て削除しておけば良かったのだが、私が過去の出来事を調べるときにそのブログの検索システムをつかうことがあるので、残しておいたのだ。
古いブログを残しておくためには、それで使っているMovable Typeも最新バージョンにアップデートしなければならない。

で、同じようにやってみたのだけれど、今回はアップデート失敗。
システムそのものを自分でかなりカスタマイズしていたので、もしかしたらそれが原因なのかもしれない。

アップデートに失敗しても、ブログの閲覧に影響はなかった。
それに、アップデート前に古いMovable Typeの入っているフォルダの名前を変更したのだけれど、そのままの状態でもブログの閲覧はできることに気が付いた。
さすがに検索機能は使えなくなったけれど、ブログを削除するよりはましである。
フォルダの名前を変えてしまえば、攻撃側からもシステムに侵入することはできないはず。(多分)

長々と書いてきましたが、これで多分バックドア問題は解決したと思っています。
もしもこれで解決していなければ、仕掛けられたバックドアが何処かに残っているのかもしれません。
その場合は最後の手段として、サーバー上のファイルを全て削除して、ローカルで保存している内容を再度アップロードして、ホームページを再構築するしかありません。

今回の教訓ですが、レンタルサーバーを使ってホームページを公開しているのならば、それが悪用されて他の人に被害を与えることの無いように、そのセキュリティに自分で責任を持たなければならない、ということです。
その中で、システムのアップデートなどは基本中の基本ですね。

恥ずかしいですが、この顛末が何方かの参考になれば幸いと思ってアップさせていただきました。