こんにちはこんにちは!!
今日は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対策したほうがいいよ。