💯

文系と見る情報セキュリティマネジメント~セッションハイジャックとドメイン名ハイジャック編~

2024/10/06に公開

1.はじめに

この記事は文系と見る情報セキュリティマネジメント~XSSとCSRF編Ï~から始めた記事になっておりますが、本記事からお読みいただいてもかまいません。
情報セキュリティマネジメント試験が何かなどを知りたい方は上記の記事を読んでいただけると幸いです。
それでは今回のテーマのうち、セッションハイジャックからはじめていこうと思います。

2.セッションハイジャック

2-1.セッションハイジャックとは

そもそもセッションハイジャックとは何なのかですよね。
セッションハイジャックとは「通信が行われている2者間の間に割り込み通信相手を装う」という攻撃方法のことです。
通信相手はサーバーからメール相手と様々ですが、通信相手を装うことで悪意のあるサイトへの誘導や正規のユーザーのみが知り得る情報を盗み取るのです。

2-2.セッションとは

セッションハイジャックがどのように行われるかを確認する前に「セッション」とは何かを一度まとめます。
セッションとは、ユーザーがWebサービスを使い始めてから使い終わるまでの一連の流れのことを指します。そしてこのセッション中の操作が同一のユーザーからのものであると判断するために「セッションID」というものが発行されます。
とあるサイトへのログインを例にすると下記のようになります。

  1. まずユーザーはWebサービスにアクセスします
  2. アクセスするとサーバ側で情報を保存するための変数(箱のイメージ)とセッションIDが発行されます
  3. そしてユーザに見合った情報とセッションIDを二つあわせてユーザに送ります
  4. ユーザー側はセッションIDを保存します
  5. 以降、何らかのアクションをWebサービスに行う際には、このセッションIDをリクエストに付けることで同一ユーザーからの操作であることをサーバー側は認識します

2-3.セッションハイジャックの流れ

セッションが何かが分かればセッションハイジャックの流れはすぐに理解できるかと思います。
先ほど書いたようにセッションIDがあれば「同一のユーザー」からの操作であることを認識します。
これは言い換えれば、実際のユーザーが異なったとしてもセッションIDさえ同じであれば「同一ユーザ-からの操作であると認識してしまう」ということです。
そのため、セッションIDを推測あるいは盗み取り、それらのセッションIDをサーバーに送ることでユーザーを誤認させ不正にログインしたりログインページで操作したりするのです。

2-4.セッションハイジャックの対策

セッションハイジャックの対策として、IPAにて提示されています。
今回はそのうち「根本的な解決」とされているものから以下の3つを抜粋したいと思います

  1. 推測されにくいセッションIDを発行する

セッションハイジャックを可能にする方法としてセッションIDをある程度推測し、そのセッションIDを使うことでセッションに割り込む方法があります。その対策としてセッションIDを推測困難なものにすることで攻撃に必要な時間を長引かせることなどは有効であると思います

  1. セッションIDをURLに含めない

セッションIDのやりとりにはいくつか方法があるのですが、そのうちのひとつにURLを介した方法があります。しかしURLを介した方法[1]の場合、攻撃者によって該当のURLが取得されてしまった場合、容易にセッションIDを知られセッションハイジャックされてしまいます。そのため、セッションIDのやりとりは、URLではなくよりCookieなどに入れることが望ましい対策となります。

  1. ログイン後に新しくセッションを開始する

ログイン後に新たにセッションを開始することで、ログインまでのセッションを偽装されたとしてもログインページでの情報閲覧や操作までされることを防ぐことができると考えられます。

2.ドメイン名ハイジャック

2-1.ドメイン名ハイジャックとは

ドメイン名ハイジャックとは、その名の通り正規のサービスに使用されているドメインを乗っ取る(ハイジャックする)攻撃のことです。

2-2. ドメイン名とは

ドメインとは、URLで見る http(s):// の後ろ www.bunkei.zyouhou.com の部分のことです。ところどころにあるドットは階層の分け目を示しているのですが、今回は割愛します。www.bunkei.zyouhou.com によって該当のWebサービスのIPアドレスを知っているサーバーの場所を把握することができます。そして該当のサービスのIPアドレスを知ることで、ユーザーは見たいサイトを閲覧することができるので。

2-3. ドメイン名ハイジャックの流れ

では、この「www.bunkei.zyouhou.com」(IPアドレスは aaa.bbb.ccc.dddにしておきましょう[2])のサイトを見たいとしましょう。

本来であれば、ユーザーはURLに書かれた www.bunkei.zyouhou.com のお陰で aaa.bbb.ccc.ddd のIPアドレスがサーバから返答として返ってくるため、正規のサービスを利用することができます。
しかし悪意のあるユーザーによってこのIPアドレスが eee.fff.ggg.hhh とされてしまうと、ユーザーがwww.bunkei.zyouhou.com を使ってアクセスしようとすると誤った情報(eee.fff.ggg.hhh)がサーバーから返ってくるため、偽のサイトへ誘導されてしまうのです。

2-4. ドメイン名ハイジャックへの対策

このドメイン名ハイジャックの対策の1つが「レジストリロック」と呼ばれるものです。
レジストリロックとは、ドメイン名に関わる情報の編集に制限をかけるサービスのことであり、このサービスを利用することでIPアドレス等が不正に書き換えられることを防ぐことができます。

3.最後に

今回はセッションハイジャックとドメイン名ハイジャックのまとめをしました。
どちらもユーザー側からの操作では正規のサービスへアクセスしようとしている点が恐ろしいですね。
それではまた次の記事で。

4.参考文献・サイト

・日立製作所,2006,2007,「Cosminexus 機能解説」,2024年10月6日取得
https://itpfdoc.hitachi.co.jp/manuals/3020/30203M0360/EM030096.HTM

・独立行政法人情報処理推進機構(IPA),「安全なウェブサイトの作り方 - 1.4 セッション管理の不備」,2024年10月6日取得
https://www.ipa.go.jp/security/vuln/websecurity/session-management.html

・LANSCOPE,2023,「レジストリロックサービス」,2024年10月6日取得
https://www.lanscope.jp/blogs/cyber_attack_pfs_blog/20231225_17585/#:~:text=ジャックとは-,セッションハイジャックとは、推測や窃取などで,ハイジャック)サイバー攻撃です。

・日本レジストリサービス,「セッションハイジャックの仕組みから対策までわかりやすく解説」,2024年10月6日取得
https://jprs.jp/about/dom-rule/registry-lock/

・GMO,2023,「ドメイン名の乗っ取り(ハイジャック)とは?その手口や被害事例・対策」,2024年10月6日取得
https://www.gmo.jp/security/brandsecurity/domain-hijacking/

・阿部ひろき(2024). 『ホワイトハッカー入門第2版』 株式会社インプレス
・岡嶋裕史(2023).『令和6年情報処理安全確保支援士合格教本』 技術評論社
・RYO(2024).『だれでもわかる&受かる!情報セキュリティマネジメントやさしいテキスト+頻出問題集[科目A・科目B]』 SBクリエイティブ株式会社
・戸根勤(2007).『ネットワークはなぜつながるのか第2版知っておきたいTCP/IP、LAN、光ファイバの基礎知識』 株式会社日経BP

脚注
  1. URLでのやりとりの場合は、URLの末尾に「;jsessionid=セッションID」と記載されます。 ↩︎

  2. IPアドレスというと192.168.0.0のような見た目なのですが192?168?何の数字?となる恐れがあるので今回は分かりやすくするためにこのような表記にしています ↩︎

Discussion