BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

セッションハイジャックに強いセッションID

今、某ECサイトのセキュリティ診断の仕事をしています。多くのサイトで言えることだけど、シビアなデータを扱っていると、何らかの脆弱性を悪用されて「なりすまし」が行われるた場合に、ちょっとイヤなことになるよね。 「なりすまし」の手口のひとつが「セッションハイジャック」。これは追跡識別キーであるセッションIDが何らかの原因で第三者に盗まれ、勝手に使われることによってその利用者になりすまされるというもの。セッションIDが盗まれる原因はいくつかあるけど、クロスサイトスクリプティング脆弱性だったり、ブラウザの欠陥を悪用したりする手口がある。いずれにしても「絶対に」漏洩しないように対策するということはかなり難しい。よって、ある程度はセッションID漏洩の可能性を前提に考えておく必要があると思う。 ようするにセッションIDが盗まれた場合でも、第三者が勝手に使えなければいいわけだ。で、どうするよ? たとえばREMOTE_ADDRのハッシュ値とかをセッションIDに埋め込むとかどうですかね?そのアクセス元からしか使えないセッションID。同じ構内のNAT環境だと使えちゃうけど、一定以上の効果はありそうだけど。 何らかの方法で「類推されにくいセッションID」以上の対策のとられたセッション管理ライブラリないしフレームワークって存在するのでしょうか?