セッションハイジャック(1)
クライアントとサーバ間のセッションに割り込んで、セッションを奪う攻撃。
種類・対策
TCPセッションハイジャック
- TCPはコネクション確立を行う時に、シーケンス番号を交換する。
- コネクション確立後も発信者が送信するデータをオクテット単位で数えて、シーケンス番号に加算して送る。
これによって、受信者は正しくデータが送受信できていることを確認し、信頼性を高めている。
が、シーケンス番号を矛盾なく操作できればセッションを奪う事ができる。
攻撃者は、初期シーケンス番号を推測するか(※)、パケットを盗聴してシーケンス番号を特定する。
※最新のOSのTCPの実装では、初期シーケンス番号に乱数を使用しているが、
古いOSでは一定の規則性があった。
Man-in-the-Middle-Attack [中間者攻撃]
奪われた被攻撃者は、セッションを奪われるとコネクションを保てない。
が、攻撃者がなりすましてセッションをコントロールしコネクションを保っているように見せかけ、盗聴を続ける。
UDPセッションハイジャック
TCPと違い、コネクションの確立がないので単純。
クライアントがサーバに対してUDPで通信したとき、サーバよりも先に応答するだけ。
DNSキャッシュポイズニングに使用される手法。
- 最新のOS、ソフトウェアを使用する。パッチを当てる
- SSL/TLS、IPSec、SSHなどのパケットの偽装が困難な暗号化プロトコルを使用する。
- 脆弱性検査をする。