セッションハイジャック
セッションハイジャックとは
セッションハイジャックとは、セッション(WWWにおけるアクセス単位のこと)を管理するセッションIDやセッション・クッキー(セッション管理に使用するためのクッキー)を盗むことで、ネットワーク上で確立されているセッションを乗っ取り、利用者に成りすましてホストにアクセスする手法です。
・IPアドレス、MACアドレスの成りすまし
・ARPキャッシュの改竄
・AckStormを考慮する必要がある。
Man-in-the-Middle Attack(中間者攻撃)
クライアントには正規サーバを装い、サーバに対しては正規クライアントを装うことで、通信データを盗聴・改変する手法です。
不正リクエストや不正レスポンスを紛れ込ませでセッションをコントロールします。
種類
TCPセッションハイジャック
TCPでセッションIDに相当する管理項目は、IPアドレスとシーケンス番号となります。
送信元IPアドレスの偽装とTCPシーケンス番号予測攻撃を組み合わせることで、確立済みのTCPセッションに不正データを挿入することやセッションの強制切断を行うことが可能であり、セッションの乗っ取りが可能となります。
UDPセッションハイジャック
UDPではコネクション確立手順がないため、クライアントからのリクエストに対して、正規サーバより先にレスポンスを返すことで、セッションハイジャックを行うことができます。
DNSキャッシュポイズニング攻撃(DNSサーバ関連攻撃 )などで用いられます。
HTTPセッションハイジャック
HTTPは「双方向かつ単発(1往復)」という性質を持つ通信であるため、連続性や状態を管理することはできません。
各クライアントのセッション管理手法としては、HTTP cookieを「セッションID」として一連の通信を関連付けるが用いられます。
攻撃者は、URL、クッキー、hiddenフィールドに設定されているセッション管理情報を推測・盗聴することでパケット偽装を行い、セッションをハイジャックします。
IPスプーフィング
IP通信において、送信者のIPアドレスを詐称して別のIPアドレスに「なりすまし」(英:spoofing)を行う攻撃手法です。
「IPアドレススプーフィング」と呼ぶこともあります。
ARP Poisoning(偽装ARP)
攻撃者のMACアドレスと正規ホストのIPアドレスを組み合わせた偽装ARP応答パケットをLAN上に送信することで、ARPキャッシュを書き換えてセッションハイジャックする手法です。
多くのOSがARP応答パケットを受け取ると無条件にARPキャッシュを更新することを悪用しています。
ただし、ハイジャックを成立させるには、TCPシーケンスを偽装する必要があります。
セッション・フィクセーション
セッションIDを詐取するのではなく、攻撃者が知っているセッションIDをユーザーに使わせて、正規ユーザーになりすます攻撃手法です。
フィッシングメールをターゲットユーザに送り、ターゲットユーザが騙されてセッションID付きのURLをクリックしてログインした後に、同一セッションIDで成りすましログインします。
フィクセーションは「Fixation=強制」です。
対策
パケット偽装が困難な暗号化プロトコルを使用する。
セッション管理システムを適切にセキュリティ管理する。