サイトのコンテンツ全部消されました😱
突然のサイト停止
だいたい毎日のように自分のサイトは確認しているのですが、ここのところ本当に仕事が忙しくて一週間ぐらいサイトを見てませんでした。で、久しぶりに自分のサイトを見てみると、なぜかNginxのエラーが表示されている。
うちのサイトはGoogle Container Engineで運用していますが、マシンのスペックがg1-smallという割と低めのマシンで、しょっちゅう止まってました。いつもとエラーが違うけど、またコンテナがおかしくなってるのかなーとコンテナ再起動してもまったく復旧せず。
よくよく調べてみると、WordPressのディレクトリが丸ごとなくなってるじゃないか!
プラグインが作成するキャッシュディレクトリとかが中途半端に残っている。ファイルの削除をいきなり実行された可能性が高そう。
あと冒頭のグラフのように急にサーバーの負荷が上昇しているのも何かありそう。
スナップショットで命拾い
Google Compute EngineはGUIからワンタッチでデータのスナップショットが取れます。たまたまスナップショットだけはちゃんと取っていたので、それを戻してサクッとサイト復活させました。
怪しいプラグインを停止
スナップショットから戻してしばらくすると、またコンテンツが消えてました。うーん、これ狙われてる?
WordPressがちょうどバージョンアップされていたのでアップデートしたのと、知らない外人に「セキュリティがクソだぜ!」とコメントもらってた自作の投票プラグインをサーバーから削除。wp-admin-ajax.phpを公開部分に使うのはあまりよろしくないらしいですね。
改ざん検知(IDS)を導入
サーバーに改ざん検知防止ソフト(IDS : Intrusion Detection System)を入れました。この分野ではTripwireが有名で過去使った事はあったのですが、最近では「aide」というオープンソースの改ざん検知ソフトが出ているようなのでこちらを入れてみました。
CentOS にファイル改ざん検知システムを導入する【AIDE】
もう、ここのサイトの通りに入れただけ。かなり楽勝でした。
Google Compute Engineは、そのままではメールか送れませんのでSendGridを入れました。
これもGoogle Cloud Platformの説明通りに入れたら楽勝。
こんなメールが毎日届くようになりました。
[bash]added: /xxx/blog/wp-content/mu-plugins/hoge.php
added: /xxx/aide/aide.log-20160826.gz
added: /xxx/aide/aide.log-20160827
removed: /xxx/aide/aide.log-20160826
changed: /xxx/blog/wp-content/advanced-cache.php
changed: /xxx/aide/aide.log
changed: /xxx/lastlog[/bash]
WordPressこええ
長い事サイト運営してますが、クラッキングされたのは初めてですね。マジメに定期的にログとかチェックして怪しい傾向検知したり運用を強化しないといかんですな。
Nginxにしてから外してしまったWAFも再度導入かな。Mod SecurityとNginxをソースからコンパイルしなくちゃいけないので面倒そうですが。