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

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

💡 ログイン中の「通行証」を盗んで本人になりすます攻撃
📌 このページのポイント
セッションハイジャックの仕組み 正規ユーザー Session: ABC123 Webサーバー セッション管理 ① 正規セッション確立 Cookie: session=ABC123 攻撃者 盗聴 / XSS ② トークン窃取 窃取方法 XSS / 通信の盗聴 / マルウェア ③ 盗んだトークンで接続 session=ABC123(偽装) ④ サーバーは正規ユーザーと 判断してしまう 対策 HTTPS必須・HttpOnly Cookie・セッション再生成・IP検証・短い有効期限
セッションハイジャックの仕組み
ひよこ ひよこ

セッションハイジャックってどういう攻撃?

ペンギン先生 ペンギン先生

Webサイトにログインすると「セッションID」という通行証が発行されるよね。このIDを攻撃者が盗むと、パスワードを知らなくてもログイン済みの状態でシステムにアクセスできてしまうんだ。まさに通行証を盗んで本人のふりをするんだよ。

ひよこ ひよこ

セッションIDってどうやって盗まれるの?

ペンギン先生 ペンギン先生

主に3つの手法があるよ。1つ目はXSSJavaScriptを使ってCookieを盗む方法。2つ目は暗号化されていない通信を盗聴する方法。3つ目はセッション固定攻撃で、攻撃者が用意したセッションIDを被害者に使わせる方法だよ。

ひよこ ひよこ

開発者として対策するにはどうすればいい?

ペンギン先生 ペンギン先生

CookieにSecure属性(HTTPS限定)とHttpOnly属性(JavaScriptからアクセス不可)を付ける。セッションIDを十分にランダムにする。ログイン時にセッションIDを再生成する。セッションの有効期限を適切に設定する。この4つが基本だよ。

ひよこ ひよこ

ユーザーとしてできる対策は?

ペンギン先生 ペンギン先生

公衆Wi-Fiでの重要な操作を避ける、ブラウザのプライベートモードを使う、こまめにログアウトする、URLセッションIDが含まれているサイトは注意する、などだね。あとHTTPS以外のサイトでログインするのは避けた方がいいよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「セッションハイジャック」って出てきたら「ログイン中のセッションIDを盗んでなりすます攻撃だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Session Hijacking」 = セッションの乗っ取り
💬 hijack(乗っ取る)で、ログイン中のセッションを横取りするイメージだよ
← 用語集にもどる