ぼくはまちちゃん!(Hatena)

  • ライブドアリーダーで読む → Subscribe with livedoor Reader
ぼくはまちちゃん!のRSSフィード

2012/05/22

CSRFで強制ログインさせるというアイデア

こんにちはこんにちは!!
今日はCSRF脆弱性のちょっとした話です!

このCSRFってなにかっていうと、
サーバーへのリクエストを『誰かに勝手に送らせる』っていうセキュリティがらみの攻撃手法のひとつ。

わかりやすい例だと、
HTMLの画像タグを以下のようにしたページを誰かに教える。

<img src="何々SNSの足跡.php" width="1" height="1">

そうすると、そのページを「見た人」が何々SNSの足跡.phpにアクセスしたことになる。

※詳しくはこちらのマンガで → [はまちちゃんのセキュリティ講座]ここがキミの脆弱なところ…! : 第2回 しーさーふって何ですか?

CSRFってこんな風に、
「ログイン済みの人に何か操作させる」ってイメージが強くて、
対策する側もまた、「既にログイン済みの人を守る」ような考えが強いんだよね。
例えば、勝手に日記に投稿させないように対策する、みたいな。

でも今回は、タイトルにあるように、
CSRFで強制ログインさせてみるのはどうだろう?って考えてみたよ。
誰かを勝手にダミーのアカウントにログインさせる。
するとどうなるだろう…?

実はログインのフォームって、だいたいのサイトでCSRF対策してないんだよね。
たぶん、する必要がないと思われているからかな。
だから今は「どのサイトも誰かを違うアカウントでログインさせ放題」の状態。

HatenaもFacebookもそう。
twitterはトークンのようなものを一応つけてるけど、特にチェックしてないようだから、やはり可能。

そこで悪い人が、ダミーアカウントを大量に作って、CSRFで沢山の人にログインさせると…

「違うアカウントで、はてブ」、
「違うアカウントで、ツイート」

くらいは狙える。

上の例だと、悪い人にとって、効率の悪いスパム程度にしか使い道がなさそうだよね。
放置してるだけでコンテンツが少し増える的な。

だけどこれが、

「違うアカウントで、大事なメールを送信」、
「違うアカウントで、秘密の写真をアップロード」

になったらどうだろう。

今の時代、だんだんとツールもストレージも、ネットの向こう側に置かれるようになって、
みんながローカルのPCじゃなくて、Webサービスに依存するようになってきたよね。

だから、メールや、ストレージサービスとかは特に気をつけた方がいいかもしれない。

利用者がサービスに依存して、アップロードするページやツールを立ち上げっぱなし。
知らない間に違うアカウントでログインしていて、大事な写真やファイルが流出…といったことがあるかもしれない。

あ、そうそう、ちなみにdropboxも強制ログインさせること可能だよ。


(結論) ログインのフォームもCSRF対策したほうがいいよ。

Connection: close