情報セキュリティマネジメント試験 科目A キーワード集 > セッションハイジャック
概要
セッションハイジャックとは、Webサービスがログイン状態を管理するために発行するセッションID(Cookieなど)を盗み取り、正規利用者になりすましてそのセッションを乗っ取る攻撃です。「セッションを乗っ取る(hijack)」ことからこう呼ばれます。
セッションIDさえ手に入れれば、攻撃者はパスワードを知らなくてもログイン済みの状態を悪用できてしまいます。ログイン中の本人として、買い物・送金・情報閲覧などを不正に行えます。
詳細(仕組み・手口)
セッションIDの盗み方
- XSSでCookie(セッションID)を盗む。
- 中間者攻撃・盗聴で、暗号化されていない通信からIDを取得する。
- セッションIDが推測しやすい場合、総当たり的に当てる。
- セッションフィクセーション:攻撃者が用意したIDを利用者に使わせ、ログイン後に乗っ取る。
セッションハイジャックのキーワードは「
セッションIDを盗んでなりすまし」。
XSSによるCookie窃取と結びつく点、対策として
Cookieの保護(HttpOnly/Secure)とID再発行が頻出です。
対策
- 通信をSSL/TLSで暗号化し、セッションIDの盗聴を防ぐ。
- CookieにHttpOnly属性(スクリプトから読めない)・Secure属性(暗号化通信のみ送信)を設定する。
- セッションIDを推測困難な十分な長さ・ランダムにする。
- ログイン成功時にセッションIDを再発行する(セッションフィクセーション対策)。
- 一定時間でセッションを失効させ、重要操作時は再認証する。
インシデント事例
公衆Wi-Fiでのセッション乗っ取り
暗号化されていない通信を盗聴され、SNSやWebメールのセッションIDを盗まれてアカウントを乗っ取られる事例があります。常時HTTPS化が進んだことで被害は減少しました。
XSS経由のCookie窃取
XSSの脆弱性を突かれてセッションCookieが盗まれ、利用者になりすまされる被害が報告されています。HttpOnly属性の設定で被害を防げたケースが多くあります。
試験での問われ方
- 「セッションIDを盗み、正規利用者になりすます攻撃はどれか」→ セッションハイジャック。
- 「Cookieに設定してセッションIDの盗難を防ぐ属性はどれか」→ HttpOnly・Secure。
- 「ログイン後にセッションIDを再発行する目的はどれか」→ セッションフィクセーション対策。