【せっしょんはいじゃっく】

セッションハイジャック とは?

最終更新:
💡 ログイン中の「通行証」を盗んで本人になりすます攻撃

Webアプリの有効なセッションIDなどを盗む・推測する・固定することで、ログイン済みのユーザーになりすましてアクセスする攻撃。

📌 このページのポイント
有効なセッションを悪用してなりすます 利用者 サーバー IDを送る ID:α(概念例) 攻撃者 窃取する例 同じ有効なIDを送る 本人の通信と誤認され得る HTTPS・Cookie保護・ID再生成 有効期限とサーバー側の失効処理
セッションIDの窃取による乗っ取りの概念例。推測や固定による攻撃もある。
ひよこ ひよこ
セッションハイジャックってどういう攻撃?
ペンギン先生 ペンギン先生
Webサイトにログインすると「セッションID」という通行証が発行されるよね。このIDを攻撃者が盗むと、パスワードを知らなくてもログイン済みの状態でシステムにアクセスできてしまうんだ。まさに通行証を盗んで本人のふりをするんだよ。
ひよこ ひよこ
セッションはどうやって乗っ取られるの?
ペンギン先生 ペンギン先生
たとえば、保護されていないCookieをXSSで読み取る、暗号化されていない通信からIDを盗む、推測しやすいIDを当てる、といった方法があるよ。セッション固定では、盗む代わりに攻撃者が知っているIDを被害者に使わせるんだ。
ひよこ ひよこ
開発者として対策するにはどうすればいい?
ペンギン先生 ペンギン先生
通信全体をHTTPSにし、CookieにSecureとHttpOnlyを設定する。推測しにくいIDを使い、ログインや権限変更時に再生成する。有効期限をサーバー側で管理し、ログアウト時には失効させるんだ。ただしHttpOnlyでも、XSSによる不正な操作まで全部防げるわけではないよ。
ひよこ ひよこ
ユーザーとしてできる対策は?
ペンギン先生 ペンギン先生
HTTPSを使う正しいサイトか確認し、共用端末では使い終わったらログアウトしよう。プライベートモードは端末に履歴やCookieを残しにくくする機能で、セッション窃取を防ぐ保証ではないよ。Cookieを端末から消すだけでは、盗まれたIDがサーバー側で無効になるとは限らないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「セッションハイジャック」って出てきたら「ログイン中のセッションを悪用して本人になりすます攻撃」と思えばだいたいOK!
📖 おまけ:英語の意味
「Session Hijacking」 = セッションの乗っ取り
💬 hijack(乗っ取る)で、ログイン中のセッションを横取りするイメージだよ

参考資料

← 用語集にもどる