セッションハイジャック

概要

第三者のセッションを乗っ取り、不正に操作する。

  • リファラによる漏洩
  • XSSによるセッションIDの入手
  • セッション固定攻撃によるセッションIDの指定
  • 通信データの盗聴、ウイルスによるID取得

セッション固定攻撃

攻撃対象のユーザに対して任意のセッションIDを強制的に利用させる。

下記の場合に起きうる。

  • ログイン前にセッションを有効化
  • ログイン処理時に外部から与えられたセッションIDを使ってしまうシステム
  • 自身が発行したものでないセッションIDを受け入れてしまう「セッションアダプション」という脆弱性を抱えている

また「Cookie Monsterバグ1」を利用し、Cookieに意図的なIDを埋め込んでセッション固定攻撃を仕掛ける方法もある。

対応方法

  • セッションIDはCookieだけで受け渡す。URLに含めない。
  • CookieにSecure属性とHttpOnly属性を設定する。
  • ログイン後にセッションIDを再発行する。
  • 重要な処理を行う前にパスワードを入力させる。

かつてはリクエスト中のUser-AgentやAccept-Charsetの変化を検知する方法も紹介されていた。 ブラウザの自動更新などの正当な変化で誤検知するため、現在では推奨されない。

参考


  1. ブラウザの不具合を利用してセカンドレベルドメインに対して任意のCookieをセットできる ↩︎