ロリポップのWordPressに対して大規模攻撃

28日の夜から29日の朝にかけて、ロリポップのサーバに大規模な攻撃が行われ、ロリポの共用サーバ上で動いていた一部のWordPress(判っている件数で8,438件)のデータが改ざんされるという事件が起きました。

http://lolipop.jp/info/news/4149/

私はエンジニアなので、こういう事件が起きると現場のエンジニアの心労苦労はいかばかりか、それを想像すると胃がキリキリする思いです。もちろんハッカーの攻撃に巻き込まれて移転や対応に追われたロリポップユーザの方も、本当にお疲れ様で(す|した)。皆さんどうぞご自愛下さい。

その上で、よくわからないこと

WordPressプラグインやテーマの脆弱性を利用し、不正なファイルがアップロードされました。
またそのファイルを利用し、wp-config.phpの設定情報が抜き出されることにより、データベースの書き換えが行われ、WordPressサイトが改ざんされました。

http://lolipop.jp/info/news/4149/

22:42に発表されたアナウンスでは上記のように書かれています。が、ちょっとこれだと重要なところが判りませんので、それについて書きます。

今回の事件を住宅に例えると

今回狙われたサービスは、ロリポップの共用サーバでした。

共用サーバを住宅に例えると、シェアハウスが一番近いかもしれません。一つの住居の中に個別のプライベートな部屋があり、キッチンなどのインフラは全員でシェアします。

「wp-confing.phpの設定情報が〜」というのはエンジニア以外にはよく判らない部分かと思いますが、これは要するに部屋の中においていた「金庫の開け方の紙(=wp-config.php)」が侵入者に盗み見られ、実際に金庫を開けられてしまい、「怪人20面相参上」みたいな変な紙を金庫に入れられた……ということです。

ちなみに犯人は、金庫の中に入っていた札束を燃やしたりすることも出来たかもしれませんが、今回は上記のようないたずら程度で、そこまで悪質・暴力的な行為は行われていないようです。私が確認できていないだけかもしれませんが……。

どのように「金庫の開け方のメモ」が盗まれたか

シェアハウスに置いて、個々人のプライベートな部屋に他人が勝手に入れないように、共有サーバ上でも、他のアカウントが管理しているファイルには通常勝手にアクセスは出来ません。

今回の事件として、

WordPressプラグインやテーマの脆弱性を利用し、不正なファイルがアップロードされました。
またそのファイルを利用し、wp-config.phpの設定情報が抜き出されることにより、データベースの書き換えが行われ、WordPressサイトが改ざんされました。

という風に説明されています。「WordPressプラグインやテーマの脆弱性を利用し、不正なファイルがアップロードされました。」というのは、部屋のドアや窓、換気口などのどこかに不備があって、空き巣に侵入されてしまったということですが、

  • 侵入者が8,438部屋の全てに侵入してきたのか
  • それとも1部屋にだけ侵入して、そこを根城に他の部屋の内部を盗み見たのか

という部分はまだアナウンスされていないようです。

前者であるならば、住人であるロリポユーザは、戸締まりの対策を講じて、今後侵入されないように気をつけなければなりません。また、他のサーバでWordPressを使っているユーザも、今回の事件に学んで対策を打つ必要があります。

後者であるならば、戸締まりはしっかりしようと気を引き締めるのも大事ですが、そもそも「一つの部屋から他の部屋の中を見れる覗き穴が空いてた」というような問題ですので、管理人(=サーバ管理者)に問題がなかったのかを検証する必要があります。

今後もシェアハウス「ロリポップ」に安心して住めるか

私がこの点に注目しているのは、この部分が「今後もロリポップを使ってて大丈夫か否か」という点に直結しているためです。

侵入者が直接全8,438部屋に入ってきて金庫の開け方を盗んだのだとしたら、これは住人の側で対策を考えるべき問題です。

ですが「住居自体に覗き穴があった」というような場合ですと、少なくとも覗き穴の存在を公表していただいて、対策方法を提示していただかないと、ちょっと怖くて使えないというのが私の見解です。個人的なブログを置いてる程度ならいいかもしれませんが、クライアントワークとして使っている場合、今回の件はかなり怖いです。

企業としてどこまで説明するかは答えのない難しい問題だと思いますが、個人的には上記の疑問が解決するような情報公開を期待しております。

誤解1:「暗証番号が簡単すぎて侵入された」

当初ロリポップは以下のような説明を行っていました。

WordPress のログイン ID とパスワードに脆弱な文字列を使用している場合に、管理画面へ不正にログインされる事例を多数確認しております。

http://lolipop.jp/info/news/4148/

これは「部屋のドアの暗証番号が1234みたいに簡単すぎるから、もっと複雑なのを設定すべき」ということですが、結局今回の大規模クラッキング事件とはあまり関係がなかったことが明らかにされつつあります。

誤解2:「グローバル環境からMySQLサーバにアクセスできる」

[MySQL] ロリポップは、MySQLサーバにグローバルから接続できる(ものがある)?

上記の懸念もTwitterなどでだいぶ拡散しています。これは「金庫がシェアハウスの外の、通行人でも誰でも触れる場所にある」という問題で、それはそれで問題なのかもしれませんが、今回の問題の本質的な部分(=部屋の中においておいた、金庫の開け方の紙が多数盗まれた)とは関係のない部分と考えます。

最後に、重ね重ね、現場のエンジニアの皆様はお疲れ様です。一段落したら旨いものでも食べて、温泉にでも入って、ゆっくり休んでください。

追記1(2013/08/30 06:35)

2013/08/29 22:40 にご報告した対策に加えて、お客様のデータベースの安全性を確保するため、ロリポップレンタルサーバー上にある全てのWordPressで使用しているデータベースのパスワード、および該当するデータベースを使用しているCMSの設定ファイル上のパスワードの書き換えを行います。

http://lolipop.jp/info/news/4149/

「金庫の開け方」が侵入者に見られてしまいましたので、開け方自体を強制的に変える、ということです。

金庫(=DB)自体の設定だけでなく、部屋の中にある「金庫の明け方のメモ(wp-config.php)」までもをホスティング会社の方で書き換えるというのは異例な対応だと思いますが、ロリポップを使っているユーザのリテラシーレベル(比較的技術に疎いライトな層も多く使っている)を考えると、妥当だと思います。