セッション・ハイジャック のバックアップ(No.1)


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

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

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

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

TCP

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

UDP

Webサーバ

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

認証サーバ

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

ARP

  • ARPスプーフィング(ARPポイズニング)
    • 攻撃者のMACアドレスと正規のホストのIPアドレスを組み合わせたARP応答を発信して、ARPキャッシュを偽装した内容に書き換える攻撃手法。
    • TCPコネクションのシーケンス番号も偽装する必要がある。

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

対策

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

関連用語