セッションハイジャックとは?(2)
HTTPの通信で、ある特定のセッションと、別のセッションを、同じユーザのセッションとして紐付けるために使われるのが、Cookie(セッションID)でしたね。
会員ページなどにログインした時には、その時にWebサーバから渡されたCookieを毎回Webサイトに渡すことで、ログイン状態を継続できるわけです。
でもそのCookieが盗まれた場合、第三者がそのCookieを使って、あなたになりすまして接続をすることができます。
これがセッションハイジャックです。
それでは、Cookieはどうやって盗まれるのか?
代表的な例を見てみましょう。
■推測される
ユーザに渡されるCookieは、秘密情報なので、他人に推測されやすい文字列であると危険です。
でも、Webサイトによっては、Cookieをユーザのメールアドレスにしていたりすることもあります。
その場合、メールアドレスは基本的には秘密にしている情報ではないため、簡単に外部に漏れてしまう可能性がありますね。
または、Cookieが「1001」「1002」「1003」のように、連番になっている場合も、簡単にCookieが推測できてしまうので危険です。
また、ブルートフォース攻撃によって手当たり次第にCookieを推測されてしまう場合もあり得ますので、あまり短いCookieも問題だと思います。
■盗聴される
会社のネットワークなどでは、パケットキャプチャソフトをネットワーク上に仕込んでおくことで、ネットワークを流れる情報を盗聴することが出来る場合があります。
でも、HTTPSなどで暗号化されているときは、Cookieの情報も基本的には解読できないため、安全だといえるでしょうね。
■スパイウェア、ウイルスによる漏えい
上で述べているように、HTTPSを使って通信している時は、通信上ではCookieは暗号化されているので安心です。
でも、自分のローカルディスク上には、普通は暗号化されないで、そのままの形で保存されています。
もしスパイウェアやウイルスで、Cookieの情報をインターネット上に流すような動作をするものに感染してしまった場合は、簡単に第三者にCookieがばれてしまいます。
このようなセッションハイジャックの防ぎ方ですが、Webサーバー側がまずい場合も多々あるので、個人だけで対策するのはなかなか難しいんですが、まずはやはりスパイウェアやウイルス対策をすること。
それから不要なCookieは定期的に消した方がいいですね。
前にも紹介しましたが、以下のようなツールを使うのも良いと思います。