いやー驚いた..
いやーもう先週はこの「当社サービス「ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃について」が発生したので自分のサーバーが攻撃されはしないかとヒヤヒヤしておったのですよ。ずっとウォッチしていた。原因を知って対策しておかないと他の人に迷惑をかけてしまうからね。自分のサーバーはServersMan@VPSでロリポップのレンタルサーバーではないのだけれど、おそらく同じ脆弱性を抱えているのでないかと疑っているし、そんなにセキュリティをカチカチにしているわけでもないし。
とりあえずどんなことをしているかというと
- Adminユーザーの名前を変える。
- パスワードは10桁以上のものを設定し、定期的に変える。
- wp-config.phpのパーミッションを読み取りに変更する。
- スパムコメントを除去するためにakismet+SI CAPTCHAを入れる。SI CAPTCHAは画像で入力する文字数を7桁にするようにコードを書き換える。
- プラグインのアップデートはまめに行う。
- (Wordpressとは関係ないけど)yum updateを定期的に行う。
と至極普通のことしかしていない。一応wp-config.phpのパーミッションを404に変えておくのと、データベースパスワードを変更しておくくらいは追加でしておいたけど。
wp-config.phpのファイルそのものが何らかの方法でコピーされ、その中に記載しているMySQLのデータベースサーバーへのログイン情報を使ってMySQLのデータベースを書き換えられたらしい。たしかにこうすればWordpressユーザーも作れるし、Adminのパスワードも変更できるし、ここまでできればAPIを使って内容を改ざんすることも簡単にできるだろうね。MySQLのユーザー・パスを盗まれるのはWordpressにとっては致命的である。しかしこのwp-config.phpというのは危ないファイルだ。これがwordpressインストールディレクトリの直下にあるというのは昔からやばい感じがしているのだが。
でわからないのはwp-config.phpの生ファイルをどうやって取得したのかということ。記事中にある「FollowSymLinks」というのは何かというとapacheの設定でindexファイルがない場合にそのディレクトリの一覧を表示するという機能シンボリック先へのアクセスも許可するという機能。侵入されたのはこれも一因とみているのだろう。確かにこれを使うと一覧が取得できwp-config.phpファイルも確認できるけども、ただそのファイルをクリックしてもphpコードが実行されるだけなのでどうやってwp-config.phpの生ファイルを取得したのかね。そこがよくわからない。
Wordpressのフォーラムを見ると.htaccessも書き換えられているようだ。ロリポップサーバーはどうもftpも使えるみたいなのでひょっとするとMySQLのユーザー・パスというのはFTPと共通のものが与えられているのが既定なのかもしれないね。そうなるとftpを使って容易に.htaccessも改ざんすることができる。wp-config.phpの生ファイルも取得することができる。最近nginxに変えたので私のサーバーでは.htaccessが書き換えられても問題はないか..。
先ほどのWordpressのフォーラムの書き込みに侵入経路についての内容(あくまで推測だけれども)が書いてあった。これによると、
28日の20:30時点で、フォーラムでの情報とハッキング方法を調べた結果を照らしあわせて、サーバー内の一部のWordPressから攻撃スクリプトがアップロードされ、そのツールを使って.htaccessを変更、シンボリックリンクを有効にした上でその脆弱性を利用して同じサーバー内のwp-config.phpを入手、そしてアップロードしたPHPから正規のデータベースのパスワードで情報の書き換えを行った、というシナリオに確信が持てました。
で、「サーバー内の一部のWordPressから攻撃スクリプトがアップロードされ」たのはどうやってかというと、
攻撃ツールのアップロードには、個人的にはtimthumb.phpの脆弱性が狙われたのではないかと思っています。t.okuboさんの書き込みにあった cybercrime.php でググると案の定…です。 WordPressのテーマやプラグインで広く使われていたtimthumbs.phpには、2011年に本来WordPressからはアップロードができないようにされているプログラムコードを外部からアップロードできてしまう脆弱性が発見されました。 http://blog.vaultpress.com/2011/08/02/vulnerability-found-in-timthumb/ ロリポップさんとチカッパさんでWordPressの簡単インストールが開始されたのが2010年ですから、この脆弱性を残したWordPressサイトがそれなりの数残っていたものだと思います。この脆弱性がWordPress内のテーマやプラグインに残っていないかは、こちらのプラグインで検証できますので、ぜひみなさんチェックしてください。 http://wordpress.org/plugins/timthumb-vulnerability-scanner/
プラグインの脆弱性が入口かもか。。。しかしこのPHPコードがアップロードできてしまうというのは相当やばい。やっぱりプラグインのアップデートはまめに行わないといけないんですな。まあこのプラグインは使っていないけどね。たまたまだけども。あとはサーバー自体にも脆弱性があるのではないかという指摘も
この脆弱性があるWordPressが侵入経路になったのはたまたまで、そこからサーバー全体に影響をおよぼす深刻な影響をもたらしてしまったのは、サーバー側の脆弱性だと思います。原因はロリポップさんも最初から分かっていて、だから旧チカッパ時代のフルパスを使えるようにしていたシンボリックリンクを突然切ったのでしょう。また、自動インストールで提供していた各CMSのパーミッションとオーナーを変更されているのでしょうね。
普段の対策としてはデフォルトユーザー・パスワードの利用は避け、OSやWordpress、その他ミドルウェアの脆弱性はウォッチしてすべて塞いでおけということに尽きますな。でもWordpress動かすだけでもOS+MySQL+PHP+Apache/nginx+Wordpress、その他ライブラリやプラグインなどが必要で、それらがわかる程度知識を得て、セキュリティウォッチをして脆弱性を塞ぐというのは初心者にとっては大変なんだよね。やっぱり。。