セッションハイジャックとは、クライアントとサーバの正規なセッションの間に割り込んで、
そのセッションを奪いとる行為である。
・正規なサーバになりすましてクライアントの精密情報(クレジットカード番号、暗証番号、個人情報等)を盗む
・正規なサーバ(DNSサーバ等)になりすましてクライアントに偽の応答を返し、不正なサイトに誘導する
・正規なクライアントになりすましてサーバに侵入し、不正なリクエストの発行、管理者権限の奪取、
機密情報の閲覧、情報の改ざん、消去等を行う。
「問題」
Q1 セッションハイジャックにはどのような手法があるか。
Q2 Webサーバとクライアント間のセッションハイジャックが成立する原因となる脆弱性とは何か
Q3 Webサーバとクライアント間のセッションハイジャックに対してどのような対策が有効か
「解答」
Q1 TCPセッションハイジャック
→ 他人が確立したTCPの通信を横取りする行為
→ シーケンス番号を盗聴等でつきとめ偽装したパケットを発信し正規のホストになりすます
UDPセッションハイジャック
→ クライアントからのUDPリクエストに対し、正規のサーバよりも先に偽造した応答を返す
Webサーバとクライアント間のセッションハイジャック
→ 攻撃者はURL、クッキー、hiddenフィールド等にセットされたセッション管理情報を推測するか、盗聴し
パケットを偽装し、正規クライアントとWebサーバとのセッションをハイジャックする。
Q2
セッションIDが単純なため推測される
セッション管理情報が、URL等のGETメソッドでやりとりされており、丸見えになっている。
セッション管理情報が暗号化されていないため盗聴される
Q3
ハッシュ関数を用いて、類推が難しいセッションIDを生成する。
セッションIDの有効期間を短くする
SSLを利用し、通信を暗号化する
セッション・ハイジャックを防ぐには、類推が難しいセッションIDやクッキーを生成することや、
セッションIDやクッキーの有効期間を短くすることが重要
また、重要な通信ではIPSec やSSL を利用するなどの対策も有効