[情報処理安全確保支援士]セッションハイジャック[無料講座・例題付き]

今回は情報処理安全確保支援士試験で問われる、セッションハイジャックについて解説します。

アカリ
アカリ
あれ?銀行で送金処理したんだけど、振込先が勝手に変わってる!?
トモル
トモル
もしかしてセッションハイジャックかも!
キュー
キュー
(ぎくり!)

セッションハイジャック

セッションハイジャック

セッションハイジャックとは、クライアントとサーバにおける正規のセッションに割り込む行為です。

セッションハイジャックの概要や対策について確認していきましょう。

セッションハイジャックの概要

攻撃者がセッションハイジャックに成功すると、サーバ・クライアントその両方になりすまします。成り済ました後は以下のような不正行為を働きます。

セッションハイジャックの具体例
  • 正規サーバになりすましてクライアントの機密情報を盗む
  • 正規サーバになりすまし、クライアントに偽の応答を返し不正サイトに誘導する
  • 正規クライアントになりすましてサーバに新融資、管理者権限の奪取や機密情報の剥奪を行う
  • クライアントとサーバの間に入り、通信データを盗聴したり不正なリクエストを送る
キュー
キュー
4つ目の攻撃手法はMITM(中間者攻撃)と呼ぶで

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

セッションハイジャックは主に、プロトコル脆弱性やアプリケーションの脆弱性を突いて行われます。具体的なセッションハイジャックの種類を確認していきましょう。

TCPでのセッションハイジャック

TCPでは、コネクション確立時に双方のシーケンス番号が交換されます。コネクション確立後は発信者が送信データをオクテット単位で数え、値をシーケンス番号に加算して送ることで、受信者が正しくデータを受信していることを確認します。

TCPは通信の信頼性が高いデータ交換を実現できますが、攻撃者はこの仕組みを悪用してセッションハイジャックを行います。

3ウェイハンドシェイク

TCPのセッションハイジャックでは、初期シーケンス番号の推測・パケットの盗聴によってシーケンス番号を突き止め、偽装パケットを送ることで相手になりすまします。

TCPでのセッションハイジャック

TCPは、初期シーケンス番号を推測されないようにするため、コネクションごとに乱数が用いられます。しかし古いOSを用いていると、乱数に規則があるため高い確率で推測されてしまう脆弱性があります。

この脆弱性を悪用し送信元IPアドレスを詐称し、UNIX環境のホスト上で「./rhosts」ファイルにechoコマンドで「++」を追加し、無条件でアクセスを可能とする攻撃が存在します。

キュー
キュー
この攻撃はIPスプーフィングと呼ぶで

IPスプーフィングはrcp・rloginなどのサービスが稼働している場合に飲み有効です。したがって、最近のインターネット環境で行われるケースはほぼありません。

TCPでのセッションハイジャックの対策方法
  • OSやソフトウェアのバージョンを最新に保つ
  • TLS・IPsec・SSHなどを用いてパケットの偽装を困難にする
  • 脆弱性検査により脆弱性を発見し、早期に対処する

UDPでのセッションハイジャック

UDPは、TCPのようなコネクションの確立手順がありません。したがってセッションハイジャックの成功率がTCPと比較して容易になります。

UDPではクライアントからのリクエストに対して、正規のサーバよりも先にレスポンスを返すことでセッションハイジャックを行います。

UDPでのセッションハイジャック

Advice
UDPセッションハイジャックが行われる前に、DNSキャッシュポイズニングが行われるケースが一般的です。
UDPでのセッションハイジャックの対策方法
  • OSやソフトウェアのバージョンを最新に保つ
  • TLS・IPsec・SSHなどを用いてパケットの偽装を困難にする
  • 脆弱性検査により脆弱性を発見し、早期に対処する

Webサーバとクライアント間のセッションハイジャック

Webサーバとセション管理の脆弱性を突いたセッションハイジャックもあります。

キュー
キュー
Webアプリケーションが主流の昨今では起こる可能性も高いで

特にHTTPアクセスは、一つひとつのセッションが都度完結します。したがって、連続性や状態を管理することができません。

そのため、Webアプリケーション側で各セッションを管理するための識別情報を生成しURLやCookieに付帯させることでクライアントの識別や状態管理を行う必要があります。

攻撃者は、URL・Cookie・hiddenフィールドなどにセットされたセッション管理情報を推測したり盗聴したりすることで正規ユーザとWebサーバのセッションをハイジャックします。

WEBサーバとクライアント間でのセッションハイジャック

トモル
トモル
セッションIDが簡単だったり、暗号化されていなくて丸わかりだったりするとWeb上でのセッションハイジャック被害にあいやすくなるよ~
Webサーバとクライアント間のセッションハイジャックの対策方法
  • TLSによりWeb通信を暗号化する
  • セッション管理システムをセキュアが担保された外部にアウトソースする
  • 利用形態やサーバ構成を見直し、適切なセッション管理を行う
  • 脆弱性検査により脆弱性を発見し、早期に対処する
  • リバースプロキシやWAFの導入する

認証サーバとクライアント間のセッションハイジャック

認証サーバに成りすましてクライアントからのアクセス要求を受け。セッションハイジャックを行うケースもあります。

認証プロセスでクライアント側がサーバの信頼性を確保できない場合、認証サーバのなりすましを見破れません。

認証サーバとクライアント間のセッションハイジャックの対策方法
  • TLSによりサーバの正当性を確認し。パケットの偽装が困難なプロトコルを用いる

偽装ARPによるセッションハイジャック

攻撃者が偽のARP応答パケットを送ることで、ARPキャッシュを書き換えセッションをハイジャックする攻撃もあります。

キュー
キュー
ARPの不正書き換えによるセッションハイジャックを、ARPポイズニングやARPスプーフィングと呼ぶで
偽装ARPによるセッションハイジャックの対策方法
  • ハブを物理的に保護し、不正機器の接続を防止する
  • 不正PC検知システムにより不正端末の接続を防止する
  • ARPポイズニングを検知するハブを用いる

セッションフィクセーションの実行方法

セッションフィクセーションとは、Webアプリケーションのセッションハイジャックです。

すでに確立されたセッションを盗むのではなく、ターゲットユーザに対して攻撃者が生成したセッションIDを含む不正URLで意図的にセッションを確立させます。

セッションフィクセーションの具体的な流れは以下の通りです。

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

セッションフィクセーションの具体的な流れ
  • STEP1
    login.htmlを要求
    まずは攻撃者がターゲットとなるWebサイトにアクセスし、login.htmlを要求します。
  • STEP2
    セッションIDの入手
    Webサーバは正規のログインと判断し、攻撃者にセッションIDを発行します。
  • STEP3
    ターゲットへ送付
    攻撃者は、入手したセッションIDをURLに付与し、ターゲットユーザにフィッシングメールとして送付します。
  • STEP4
    ターゲットがログイン
    ターゲットユーザがリンクをクリックすると、ターゲットサイトにログインします。
  • STEP5
    正規ユーザへのなりすまし
    攻撃者も同じセッションIDを使ってターゲットサイトにアクセスすることで、正規のユーザに成りすまして不正な操作を行います。
セッションフィクセーションの対策方法
  • WebサーバのURL Rewriting機能を無効化する
  • セッション管理を自社で開発している場合、ユーザログイン後にセッションIDを発行する仕様にする

セッションハイジャックの検知方法と回復について

セッションハイジャックの検知方法・回復方法を押さえておきましょう。

検知・追跡

セッションハイジャックの検知・追跡方法
  • ターゲットホストのログを調査する
  • ネットワーク監視型IDS・ホスト監視型IDSやIPS・リバースプロキシサーバ・Webアプリケーションファイアウォールなどを活用する
  • 不正PC接続検知システムによってLAN上に接続された不審な機器を検知する

回復

セッションハイジャックの回復方法
  • 被害情報を調査し、必要に応じてデータやシステムを復旧する
  • 攻撃が成立した脆弱性を特定し、対策を講じる
スポンサーリンク

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

実際に例題を解いて問題に慣れていきましょう。

問1

デジタル証明書を使わずに,通信者同士が,通信によって交換する公開鍵を用いて行う暗号化通信において,通信内容を横取りする目的で当事者になりすますものはどれか。(H.22/春)

ア Man-in-the-middle攻撃
イ war driving
ウ トロイの木馬
エ ブルートフォース攻撃

(ログイン後回答すると、ここに前回の正誤情報が表示されます)

問1の正解を表示

問1の解説を表示

ア Man-in-the-middle攻撃

→Man-in-the-middle攻撃は、クライアントに対してはサーバに、サーバに対してはクライアントになりすまし通信を盗聴する攻撃です。したがって正解です。

イ war driving

→war drivingは、脆弱性のある無線LANアクセスポイントを探すために、通信機器を積んだ車で街中を走りまわる攻撃手法です。したがって誤りです。

ウ トロイの木馬

→トロイの木馬は、一見有用なソフトに見せかけて裏でOSの権限奪取やパスワードの窃盗など悪事を働くマルウェアです。したがって誤りです。

エ ブルートフォース攻撃

→ブルートフォース攻撃は、パスワードを突破するためにありとあらゆる文字列を試行する攻撃です。したがって誤りです。

これより、アが正解です。

問2

攻撃者が,Webアプリケーションのセッションを乗っ取り,そのセッションを利用してアクセスした場合でも,個人情報の漏えいなどに被害が拡大しないようにするために,重要な情報の表示などをする画面の直前でWebアプリケーションが追加的に行う対策として,最も適切なものはどれか。(H.29/秋)

ア Webブラウザとの間の通信を暗号化する。
イ 発行済セッションIDをCookieに格納する。
ウ 発行済セッションIDをHTTPレスポンスボディ中のリンク先のURIのクエリ文字列に設定する。
エ パスワードによる利用者認証を行う。

(ログイン後回答すると、ここに前回の正誤情報が表示されます)

問2の正解を表示

問2の解説を表示

ア Webブラウザとの間の通信を暗号化する。

→Webブラウザとユーザとのやり取りが暗号化されていても、リクエストそのものが不正かどうかは判断できません。したがって誤りです。

イ 発行済セッションIDをCookieに格納する。

→Cookieに格納されているセッションIDが正規なものでも、セッションが第三者に乗っ取られている場合偽装は可能です。したがって誤りです。

ウ 発行済セッションIDをHTTPレスポンスボディ中のリンク先のURIのクエリ文字列に設定する。

→イ同様、URIのクエリ文字列が正規ユーザーによるものか、攻撃者によるものかの判断がつきません。したがって誤りです。

エ パスワードによる利用者認証を行う。

→重要リクエストの送信直前でパスワード認証を行なえば、現在のセッションの相手が正当なユーザーであることを確認しできます。したがって正解です。

これより、エが正解です。

セッションハイジャックについて・まとめ

今回はセッションハイジャックについて学習しました。

具体的な攻撃手法と、それに対する対策方法は必ず押さえておきましょう。

キュー
キュー
セッションハイジャックに関連するMITM攻撃やARPスプーフィング攻撃も覚えておこう!

次回はDNSサーバへの攻撃について学習します。


本気で支援士を狙うなら・・・
支援士ゼミがおすすめです!
  • ベテラン講師による手厚いサポート
  • モチベーションを保てるセキュリティコラムが満載!
  • マンツーマン形式で個別相談もできる!

スポンサーリンク