[情報処理安全確保支援士]セッションハイジャック[無料講座・例題付き]
今回は情報処理安全確保支援士試験で問われる、セッションハイジャックについて解説します。
セッションハイジャック
セッションハイジャックとは、クライアントとサーバにおける正規のセッションに割り込む行為です。
セッションハイジャックの概要や対策について確認していきましょう。
セッションハイジャックの概要
攻撃者がセッションハイジャックに成功すると、サーバ・クライアントその両方になりすまします。成り済ました後は以下のような不正行為を働きます。
- 正規サーバになりすましてクライアントの機密情報を盗む
- 正規サーバになりすまし、クライアントに偽の応答を返し不正サイトに誘導する
- 正規クライアントになりすましてサーバに新融資、管理者権限の奪取や機密情報の剥奪を行う
- クライアントとサーバの間に入り、通信データを盗聴したり不正なリクエストを送る
セッションハイジャックの種類
セッションハイジャックは主に、プロトコルの脆弱性やアプリケーションの脆弱性を突いて行われます。具体的なセッションハイジャックの種類を確認していきましょう。
TCPでのセッションハイジャック
TCPでは、コネクション確立時に双方のシーケンス番号が交換されます。コネクション確立後は発信者が送信データをオクテット単位で数え、値をシーケンス番号に加算して送ることで、受信者が正しくデータを受信していることを確認します。
TCPは通信の信頼性が高いデータ交換を実現できますが、攻撃者はこの仕組みを悪用してセッションハイジャックを行います。
TCPのセッションハイジャックでは、初期シーケンス番号の推測・パケットの盗聴によってシーケンス番号を突き止め、偽装パケットを送ることで相手になりすまします。
TCPは、初期シーケンス番号を推測されないようにするため、コネクションごとに乱数が用いられます。しかし古いOSを用いていると、乱数に規則があるため高い確率で推測されてしまう脆弱性があります。
この脆弱性を悪用し送信元IPアドレスを詐称し、UNIX環境のホスト上で「./rhosts」ファイルにechoコマンドで「++」を追加し、無条件でアクセスを可能とする攻撃が存在します。
IPスプーフィングはrcp・rloginなどのサービスが稼働している場合に飲み有効です。したがって、最近のインターネット環境で行われるケースはほぼありません。
- OSやソフトウェアのバージョンを最新に保つ
- TLS・IPsec・SSHなどを用いてパケットの偽装を困難にする
- 脆弱性検査により脆弱性を発見し、早期に対処する
UDPでのセッションハイジャック
UDPは、TCPのようなコネクションの確立手順がありません。したがってセッションハイジャックの成功率がTCPと比較して容易になります。
UDPではクライアントからのリクエストに対して、正規のサーバよりも先にレスポンスを返すことでセッションハイジャックを行います。
- OSやソフトウェアのバージョンを最新に保つ
- TLS・IPsec・SSHなどを用いてパケットの偽装を困難にする
- 脆弱性検査により脆弱性を発見し、早期に対処する
Webサーバとクライアント間のセッションハイジャック
Webサーバとセション管理の脆弱性を突いたセッションハイジャックもあります。
特にHTTPアクセスは、一つひとつのセッションが都度完結します。したがって、連続性や状態を管理することができません。
そのため、Webアプリケーション側で各セッションを管理するための識別情報を生成しURLやCookieに付帯させることでクライアントの識別や状態管理を行う必要があります。
攻撃者は、URL・Cookie・hiddenフィールドなどにセットされたセッション管理情報を推測したり盗聴したりすることで正規ユーザとWebサーバのセッションをハイジャックします。
- TLSによりWeb通信を暗号化する
- セッション管理システムをセキュアが担保された外部にアウトソースする
- 利用形態やサーバ構成を見直し、適切なセッション管理を行う
- 脆弱性検査により脆弱性を発見し、早期に対処する
- リバースプロキシやWAFの導入する
認証サーバとクライアント間のセッションハイジャック
認証サーバに成りすましてクライアントからのアクセス要求を受け。セッションハイジャックを行うケースもあります。
認証プロセスでクライアント側がサーバの信頼性を確保できない場合、認証サーバのなりすましを見破れません。
- TLSによりサーバの正当性を確認し。パケットの偽装が困難なプロトコルを用いる
偽装ARPによるセッションハイジャック
攻撃者が偽のARP応答パケットを送ることで、ARPキャッシュを書き換えセッションをハイジャックする攻撃もあります。
- ハブを物理的に保護し、不正機器の接続を防止する
- 不正PC検知システムにより不正端末の接続を防止する
- ARPポイズニングを検知するハブを用いる
セッションフィクセーションの実行方法
セッションフィクセーションとは、Webアプリケーションのセッションハイジャックです。
すでに確立されたセッションを盗むのではなく、ターゲットユーザに対して攻撃者が生成したセッションIDを含む不正URLで意図的にセッションを確立させます。
セッションフィクセーションの具体的な流れは以下の通りです。
- STEP1login.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
ウ トロイの木馬
エ ブルートフォース攻撃
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
問2
攻撃者が,Webアプリケーションのセッションを乗っ取り,そのセッションを利用してアクセスした場合でも,個人情報の漏えいなどに被害が拡大しないようにするために,重要な情報の表示などをする画面の直前でWebアプリケーションが追加的に行う対策として,最も適切なものはどれか。(H.29/秋)
ア Webブラウザとの間の通信を暗号化する。
イ 発行済セッションIDをCookieに格納する。
ウ 発行済セッションIDをHTTPレスポンスボディ中のリンク先のURIのクエリ文字列に設定する。
エ パスワードによる利用者認証を行う。
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
セッションハイジャックについて・まとめ
今回はセッションハイジャックについて学習しました。
具体的な攻撃手法と、それに対する対策方法は必ず押さえておきましょう。
次回はDNSサーバへの攻撃について学習します。
福井県産。北海道に行ったり新潟に行ったりと、雪国を旅してます。
経理4年/インフラエンジニア7年(内4年は兼務)/ライター5年(副業)
簿記2級/FP2級/応用情報技術者/情報処理安全確保支援士/中小企業診断修得者 など
ディスカッション
コメント一覧
まだ、コメントがありません