Session Fixation(セッションの固定化攻撃)
fix(ふぃっくす)、fixation(ふぃくせいしょん) は固定の意味。Session Fixation は、セッションの強要とも言う。
phpのデフォルトのセッションなどがSession Fixationに脆弱なのはよく知られている。
Session Fixation攻撃が可能なWebサイトでは、例えば、メールやあるWebページにて、セッションIDつきのURLにアクセスさせて、意図したセッションIDでセッションをスタートさせることができる。
一番脆弱な場合は、https://www.softel.co.jp/?sessionid=123456 のようなURLにアクセスさせるだけ。
そのWebサイトが発行したセッションIDを使わなくてはならない場合は、一度そのサイトにてセッションIDをもらってそれを使用する。
強要されたセッションIDでスタートしたとしても、ログインなどの要所要所で セッションIDを付け直すことで対応が可能(session_regenerate_id())。ログイン状態のセッションIDを他者に利用されると致命的な状況を招く恐れがあるので、必ず対策しておきたい。
また、ショッピングサイトのカートのように、ログインする前から利用できる機能が存在する場合、そのWebサイトが発行していないセッションIDでセッションを開始できるという問題にも対応しておくとなおよい。
ログインのとき以外にも、必ず通るページや可能な箇所でもsession_regenerate_id() するとよい。
コメント