セッション・ハイジャック

2023-02-25 (土) 23:39:53

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

  • プロトコルやアプリケーションの脆弱性を悪用して、他者のセッションを奪い取り、そのセッション上で不正な行為を行う攻撃。
  • セッションIDの推測、盗聴などによりセッションを奪う。
  • セッションを奪い取られると、なりすましによる被害が発生する。

セッション・ハイジャックの種類

TCP

  • TCPコネクションのシーケンス番号を特定して、偽装したパケットを発信してなりすます。
    • ソースIPアドレスを偽装する(IPスプーフィング)
    • 正規のクライアントがACKを応答するより前に、偽装したACKをサーバに発信してなりすます

UDP

Webサーバ

  • セッション管理の脆弱性を突いて攻撃する
    • セッションIDを推測または盗聴して、偽装したパケットを発信してなりすます
  • XSS

認証サーバ

  • 認証のプロセスに、サーバの信頼性を確認する手段がない場合に、認証サーバになりすましてパケットを盗聴する。

ARP

  • ARPスプーフィング(ARPポイズニング)
    • ARPの問い合わせに対して、正規のノードが応答する前に、攻撃者が偽のMACアドレスのARP応答を発信して、ARPキャッシュにIPアドレスに対して偽のMACアドレスの不正な登録をさせる攻撃手法(なりすまし)
    • TCPコネクションのシーケンス番号も偽装する必要がある。

セッションフィクセーション

対策

  • セッションIDを推測されずらくする。
  • セッションIDを固定化しない。
    • ログインに成功したタイミングで、新たにセッションIDを生成して、ログイン画面表示時に生成したセッションIDを破棄する。
  • セッションIDを盗聴されないようにする
    • 通信を暗号化する
      • Cookieのsecure属性を指定する。
    • セッションIDをURLのパラメータではなく、CookieやPOSTメソッドのhiddenパラメータで受け渡す
    • XSSの脆弱性を無くす

関連用語