OWASP night 8th に参加しました。東京都江東区にある日本ヒューレットパッカードで開催されました。私は気づかなかったのですが、ドラマ半沢直樹で利用されたことがあるらしいです。
一番興味のあったテーマはHTML5 and Security Part 2 : Open redirect and CSRF(はせがわようすけ)です。
オープンリダイレクタ
リダイレクトする方法は主に3つ(ヘッダーリダイレクト、JavaScript、metaタグ)あります。
オープンリダイレクタとは、リダイレクト処理を利用して、(想定外の)外部のURLに飛ばされてしまう、というものです。t.coやbit.lyのように、外部URLへの転送が元々想定されているような場合は除きます。サイト自体に直接被害が発生するわけではないですが、変な遷移をする(警告無しにアダルトサイトへ移動してしまう)等、利用者に不信感を抱かれる可能性が高いです。
meta refresh は、IE6/7の仕様でオープンリダイレクタを防ぐのが困難ということで非推奨だそうです。HTTP ヘッダーの場合は、オープンリダイレクタだけでなく、任意のヘッダーを挿入できる脆弱性になっているケースもあるらしいです。JavaScriptの場合は、許可するリダイレクト先を予め指定しておいて、それ以外は不可とするのがおすすめらしいです。(URLの妥当性検証が大変なため)
CSRF
CSRFは脆弱性の中では比較的対策しやすいのですが、ファイルアップロードも行えてしまうらしいです。この脆弱性があると、たとえば、SNSのプロフィール画像を勝手に書き換える、といった攻撃が可能です。
setrequestheader を適切に使えば、origin: example.com のようなレスポンスが追加されるらしいです。なのでJavaScriptだけでCSRF対策できる(サーバやドメインが異なる場合のCSRF対策がやりやすくなる)らしいです。
短いプレゼン時間でかなり濃い内容でしたので、スライドが公開されたらまた復習しなければいけないな、と思いました。
来年2014年3月17-20日にAPPSEC APACが開催されるらしいです。なんとか都合をつけて参加したいと思います。