Archive for the ‘Security’ Category

今更感のあるエントリだが、よく分かっていなかったので記録を残しておくことにする。

CSRFを利用した有名な事件としては、mixi上での「ぼくはまちちゃん」事件があげられる。
攻撃者が巧みな文言で誘ってURLをクリックさせ、ユーザーの意図しない操作をmixi上で行わせてしまう、という攻撃手法であった。実際には、http://www.google.com/url?xxxxxxxxxxxxなどと信頼できるサイトへのリンクと思わせたうえで、攻撃用のサイトにリダイレクトさせて攻撃を行う、といったように行われた。

この攻撃手法は、ユーザーからのリクエストがユーザーの意図したものであるか、ということを確認していない場合に成立する。ログイン情報をセッションやクッキー等で管理している場合には、サーバー側ではユーザーからのリクエストがユーザーの意図したものであるか、そうでないものであるか判断する術を持たないので、CSRFの攻撃対象となってしまう。

ユーザーからのリクエストがユーザーの意図にのっとったものであるか確認する方法はいくつかある。

まず、一つ目に、アクセスのリファラを確認する方法がある。リファラが想定されたサイト以外からのもの、あるいは空である場合にはリクエストを拒否する、という方法である。ただし、この方法に関しては悪意ある攻撃者がリファラを改ざんすることが出来るので、100%の攻撃を防ぐことはできない。

もう一つの方法としては、毎回のリクエストにランダムな文字列を含ませ、それとクッキーに保存している文字列が一致するか確認する、という方法がある。

最後に、一時期CAPTCHAが話題になったが、あれを使う方法がある。本来はROBOTからのアクセスを防ぐ方法だが、ユーザーの意図しない操作による攻撃を防ぐことが出来る。

以上、こんな感じ。

最近気になるもの

・Sinatra Rubyの超軽量Webフレームワーク。なんかのプロトタイプを作るのにはぴったりかも。

・Scala Twitterで本格的に導入されたので有名。オブジェクト指向言語と関数型言語のいいとこどり、らしい。JavaScriptにはまってる俺からしたらちょい気になるもの。

・SproutCore JavaScriptのみでMVCフレームワークやリッチなUIを実現するものらしい。Railsのような生産性?まだよく分からない。開発にはRubyを使うらしい。近いうちに試してみたい。

・VoltDB 分散型オンメモリデータベース、超高速らしい。RDBMSを使うまでもないWebアプリ上での使用とかに適切なのかな。ただしストアドプロシージャしか使えないので、使いどころは限られてくるかも。一応SQLの構文に対応しているらしい?

カレンダー
2018年2月
« 9月    
 1234
567891011
12131415161718
19202122232425
262728