CSRF攻撃について

待望の高木浩光氏の記事が。

巷の解説に不適切なものがあるという点も含めて解説。

Referer:は偽装できるので対策にならない」は変だなと思って気になってたのですが、すっきりしました。CSRF の場合リファラを送るのは被害者の使っているブラウザなので攻撃者は偽装できません。

もっとも緊急の応急処置としてはリファラチェックはありなんじゃないかなと思いました。mixi くらいになるとリファラを出さないクライアントを弾くわけにはいかないけれど、変なリファラは弾く、リファラ無しなら弾かないという設定がすぐにできるなら被害の大半は防げるわけで、正しい対策の実装が終わるまで放置するよりは絶対マシかと。

ちなみに高木氏の記事にはないですが「ユーザが JavaScript を切る」という対策も限定的な効果しかないと思います。というのは自動POSTだけが怖いわけじゃないからです。自動ポストできなくても言葉巧みにボタンを押させるよう仕向ければいいわけです。例えば…と具体例を挙げるのはやめておきますが、ウィルスメールの類だとメーラの脆弱性を突いて自動実行するものだけでなく、ユーザに添付ファイルを実行させるもの、あるいはフィッシング詐欺のメールだって十分脅威なのは周知の通りです。

メモ: Session Fixation(セッション固定攻撃)