情報セキュリティ講座(108) セッションハイジャック

セッションIDを盗み取り、なりすましを行う攻撃です。Webサービスでは、電波が切れたり、ページを閉じたりしても、一定期間はつながった状態になっています。例えば、オンラインで発注票とかを入力していて、別のページに飛んでも、もとのページにもどれば、その続きを入力できたりします。これは、ページの接続情報セッションIDをブラウザが保持していて、それがある限りサーバは接続を継続するからです。

これを悪用すれば、ユーザは接続を切ったつもりでいるのに、悪意ある第三者が本人になりすまして接続できることになります。

これと似た手法に、セッションIDの固定化という攻撃方法があります。これは、攻撃者が予め準備したセッションIDをユーザに送り込んで、ユーザがそのセッションIDでログインするものです。攻撃者は、そのセッションIDでWebサイトで様々な操作をすることができるようになります。Amazonなど決済を伴うサイトは、特に注意が必要です。

これに対する対策は次の通りです。

1. セッションIDを推測しにくいものとする。
セッションIDを複雑なものにすることで、乗っ取りのリスクを下げます。

2. セッションIDをURLのパラメーターに格納しない
セッションIDは表に出さず、Cookieか、POSTメソッドのhiddenフィールドに格納します。

3. HTTPS通信で利用するCookieには、secure属性を加える
平文での通信でセッションIDを交換するのは危険ですので、Cookieにsecure属性を与え、https以外のプロトコルでの通信がしないようにします。

4. ログイン後に新しいセッションIDを発行する。
セッションIDは都度変更するようにし、乗っ取りのリスクを下げます。

5. セッションIDを固定値にしない

6. セッションIDのCookieの有効期限を短くする

投稿者プロフィール

小笠原 裕
小笠原 裕中小企業診断士 行政書士
バラの咲く街、八千代市緑が丘で、コンサルティング事務所を運営しています。