2013/08/31 01:36 初版
2013/08/31 10:00 参考リンク追加
2013/08/31 18:45 体裁変更と「周辺情報とこれらからの推測」へ追記 注意喚起追記
2013/09/02 11:55 徳丸さんの解説記事へのリンクを追加
2013/09/03 12:30 さとうふみやすさんの解説記事へのリンクを追加 注意喚起追記 お願い追記
2013/09/09 22:15 公式リリース[2013/09/09 20:42 追記]について 追記
2013/09/09 22:30 某グループ代表の投稿について参考リンクに追記
http://lolipop.jp/info/news/4151/
http://lolipop.jp/info/news/4149/ [追記 2013.09.09. 22:15]← こちらに[2013/09/09 20:42 追記]として事象説明が出ました。[/追記]
これらのリリースと、関係情報を前提に、起こっていたであろうことの推測をまとめてみます。
推測ですので間違いがある可能性もあることをご了承ください。
目次
公式リリースの要点
(※2013.08.31. 18:30 体裁変更)
重要なことは、
- 当初はWordPressのせいのようにされていましたが、結果としてWordPressは直接的には無関係であった(ここは今一つ明記されていません)
- サーバのパーミッションに問題があった
ということです。
その結果、当該サービスでWordPressを利用しているユーザーだけでなく、当該サービスを利用しているユーザー全体が同一のリスクを抱えていたことになります。
リリース http://lolipop.jp/info/news/4149/ [2013/08/30 19:13 追記]部
リリース http://lolipop.jp/info/news/4151/ [2013/08/30 19:55 掲載]部
2013年8月30日(金)19時40分より随時
【実施内容】
.htaccessでご利用いただけるオプションに対して以下の変更を行います。
・FollowSymLinksのご利用ができなくなります。
・SymLinksIfOwnerMatchをご利用いただけるようになります。
つまり
ということでしょう。
周辺情報とこれらからの推測
これに
サーバのパーミッション問題で決着だと思う。 pic.twitter.com/nhAjMFR8ed
— isidai (@isidai) August 30, 2013
これを合わせて考えると、
- (おそらく)各ユーザーの領域はVirtualHostとして設定されている
- それぞれのユーザーのドキュメントルートとなっているディレクトリのownerはユーザーごとに存在する(はず)だが、パーミッションは755(drwxr-xr-x)
→ そのユーザーでなくとも読み取れる。
SymLinksIfOwnerMatchが代替で使える、と言っているのでユーザーは存在するはず。 - あるユーザーのディレクトリ内に他のユーザーのディレクトリへのシンボリックリンクを作成することができ、その中身を読み取れることにつながる
- FollowSymLinks が有効であることによって、あるユーザーのディレクトリにあるシンボリックリンクの中身をhttpd経由で表示可能になる
ということになり、WordPressの設定ファイル(wp-config.php)はシンボリックリンクを通じて読み出せることになります。
wp-config.php内にはmysqlへの接続情報が含まれているので、各DBへのアクセスがこの時点で可能になります。
接続先のDBに対して実行すべきSQLはほぼ一定のもので同様の改ざんが可能なはずなので、その先はおそらくWeb経由での何らかの設定など不要でDBを更新することでサイトの改ざんは完了できたはずです。
攻撃者としては、容易に推測ができ影響範囲も大きいWordPressをターゲットとするのは充分に妥当性があると思います。
「WordPressの脆弱性が・・・」という話が何の根拠もなく出てくるとは思えない(思いたくない)ので、このシンボリックリンクを張るようなスクリプトをどこかのアカウントのWordPress経由で書き込んだのでしょうか。
※が、実際のところ、正規にユーザーアカウントを取得してその作業をしたとしても高々数百円のコストで済むことなので、なんらかの脆弱性を利用してどうにかする必然性は特にないと思います。
[追記 2013.08.31. 18:30]
FollowSymLinks はおそらくサーバ全体で有効だったわけではなく、AllowOverride によって .htaccess で有効化できる状態だったのでしょう。
そのため、 .htaccess を改ざんすることによって httpd 経由での表示が可能になった、ということなんじゃないかと想像しています。
おそらくこの改ざんが WP の脆弱性を利用したものに見えたんじゃないかなと。
が、そもそもシンボリックリンクを貼れている時点で wp-config.php の内容を把握することは容易なので、本質的な問題ではないことには変わりません。
[/追記]
これは某サービスに限ったことではなく。。
今回はたまたま某サービスですが、この事象の本質は
[warning]
共有サーバには、ユーザーサイドで直接はどうにもできない脆弱性がある可能性がある。
同様の脆弱性は他の共有サーバにもある可能性がある。
※近々大規模メンテナンスが行われるようなサービスは慌てて対処を始めたものな可能性があり、リリース内に明確な説明がない場合、「そういうベンダーなんだ」と認識できる。
[/warning]
といったことではないかと思います。
名の通った(大きな)サービスだから、技術力は高いはず、というのは間違いな場合も多いので、自分がやりたいことに対して充分な学習をし、その知識を元にサービスのレベルを計るようにする必要があります。
自分のサイトについて、そのサイトのユーザーに対しては自分に責任があるはずですよね。
一般的に外注(誰かに頼む)のは、自分でやるよりもよほどしっかりした知識が必要になるんですよ。
とりあえずラフなまとめでした
取り急ぎなので、間違いなどある可能性もあります。
今後修正・追加する可能性もあります。
あくまで現時点での個人的な理解のまとめですので、鵜呑みにしないでいただけますようお願いします。
[追記 2013.08.31. 10:00]
参考リンク
- WordPress.org日本語版 フォーラム「サイト改ざん?」 → http://ja.forums.wordpress.org/topic/24503
WordPress Codex 日本語版
→ http://wpdocs.sourceforge.jp/ロリポップサイト改ざん関連情報_%282013年8月%29 - 一方でWordPress側のコミュニティは粛々と機能しておりました、と。
フォーラムによるユーザー間の互助と、それに気づき公式にまとめはじめる運営スタッフ(まあCodexを公式というかは微妙ですが)。 - 2013-08-31 みんなわかってたんでしょ? http://www.e-ontap.com/blog/20130831.html
- 国内に限らず、共有サーバに限らず、以前から現状のインターネット業界の状態に対し警鐘を鳴らし続けている(いやもっと過激ですけど)先生。
(お世話になっています)
正直、最近「ほら見たことか」と言われそうな事故が続きすぎで、身につまされることが多いです。 - 【緊急警報!!】ロリポップとGMOのinterQのWordPressが軒並み乗っ取られてます http://www.landerblue.co.jp/blog/?p=8402
- 全てはこの記事から始まった(と認識しています)。
-
[追記 2013.09.02. 11:55]
(徳丸浩の日記)ロリポップのサイト改ざん事件に学ぶシンボリックリンク攻撃の脅威と対策 http://blog.tokumaru.org/2013/09/symlink-attack.html - 徳丸さんによる解説です。ためになります。
この解説に則れば、ディレクトリのパーミッションで読み取りが禁止されていても通用しますね。
[/追記] -
[追記 2013.09.03. 12:30]
Apache HTTPD: `Options -FollowSymLinks` は不完全 - ダメ出し Blog http://fumiyas.github.io/2013/09/03/no-followsymlinks-is-not-safe.html - さとうふみやすさんによる解説です。ためになります。
今回の対策でまだ残っているリスクについて書かれています。
[/追記] -
[追記 2013.09.09. 22:30]
ロリポップ改ざん被害のお詫び。私の発言についてのお詫びとご説明。 http://www.kumagai.com/?day=20130908 -
社長を飛び越えて余計な仕事を増やしたグループ代表の弁解です。「弁解の余地はない」そうですが、自分だけが悪いんじゃないといいたいようです。
顧客への危険があった状態で「安心」を求めたり、事実確認の前に株価を守るため「虚偽の安全情報」を出すのは「風説の流布」ではないんでしょうか。そして謝罪の対象は炎上したことに対してであって、虚偽の安心を求めたことには「ご理解」を求めるそうですよ。
[/追記]
[/追記]
[追記 2013.08.31. 18:45]
注意喚起
WordPress等のアプリケーションへの攻撃があった場合管理ユーザーの「乗っ取り」ではなく「追加」が行われている場合もあります。
改ざんを復旧したとしても、改めて全体の設定チェックをするべきかと思います。
また、SSH公開鍵への鍵の追加なども考えられるので、サーバサイドでも細かにチェックが必要かと。
その手の追加はアンチウィルスのスキャンでは見つからないものなので要注意です。
[/追記]
[追記 2013.09.03. 12:30]
[warning]
シンボリックリンク自体は、リンク先のファイル・ディレクトリに対しての権限がなくてもパスがわかれば作成可能なようです。
作成できてしまえば、httpdの実行ユーザー(apacheユーザーとか)にリンク先に対してのアクセス権があればhttpd経由でアクセス可能になります。
[/warning]
[/追記]
[追記 2013.09.03. 12:30]
お願い
間違いや追加情報等、ご指摘がありましたらぜひ、コメントにでも残していただければ幸いです。
[/追記]
(毒)これは公式サポートとしては「クラック」と認めるのかなあ。「クラック等の事実はない」と言い切ってたけど。グループ代表はまた別件として。