サイバー攻撃

セッションハイジャックの仕組みとは?手口や対策を徹底解説

Written by WizLANSCOPE編集部

セッションハイジャックの仕組みとは?手口や対策を徹底解説

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする

セッションハイジャックとは、Webサイトを利用時にユーザーを識別するために発行される「セッションID」を第三者が不正に入手し、正規のユーザーになりすまして不正アクセスを行うサイバー攻撃の一種です。

セッションハイジャックを受けると、サーバーへの不正侵入による情報漏洩や改ざん、クレジットカードの不正利用など、さまざまな被害が想定されます。

本記事ではセッションハイジャックの手口や仕組み、具体的な対策などを解説します。

▼本記事でわかること

  • セッションハイジャックの概要
  • セッションハイジャックの手口
  • セッションハイジャックによる被害
  • セッションハイジャックへの対策

セッションハイジャックとはどのような攻撃かを理解し、自社のセキュリティ強化に役立てたい方はぜひご一読ください。

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


セッションハイジャックとは、推測や盗聴、窃取などの不正な手段で入手したセッションIDを用いて、正規のユーザーになりすまし、セッションを乗っ取るサイバー攻撃です。

「セッション」とは、Webサイトにアクセスしてから終了するまでの、通信の一連の流れのことを指します。

オンラインショッピングサイトを例に説明すると、以下の一連の行動が一つのセッションに当たります。

  • サイトにログインする
  • 欲しい商品を検索する
  • 商品をカートに追加する
  • 発送先情報や支払い情報を入力して購入する
  • サイトからログアウトする

これら一連の操作を「同一のユーザーによる操作」と判断するために、「セッションID」と呼ばれる識別情報が生成され、セッションに紐づけられます。

通常、セッションIDは初回のアクセス・ログイン時にサーバー側で発行され、CookieやURLパラメータの一部に付与され、ユーザー側のブラウザに保存されます。

2回目以降はアクセスでは、ブラウザからサーバーへセッションIDが送信され、サーバー側はそのIDをもとにユーザーを識別し、対応する情報を取り出し、返送することで通信を継続します。

セッションハイジャックでは、ユーザーのログインIDやパスワードそのものを窃取するのではなく、Webサイトで発行された「セッションID」を窃取することで、正規ユーザーになりすまします

セッションハイジャックによるリクエストは、サーバー側からすると正規のユーザーによる操作と区別がつかないため、被害に気づかないまま不正操作や情報漏洩が発生するケースが多いという特徴があります。

セッションハイジャックの仕組み・流れ


セッションハイジャックは、通常以下のような手順で行われます。

  • 手順(1):ユーザーがサイトにログインし、「セッションID」が発行される
  • 手順(2):攻撃者が発行された「セッションID」を不正に入手する
  • 手順(3):攻撃者がユーザーになりすまし、サイトにアクセスする

ユーザーがサイトへログイン→セッションIDを発行→攻撃者に不正入手され、利用されるイメージ

手順(1):ユーザーがサイトにログインし、「セッションID」が発行される

Webサイトなどにログインすると、ユーザーを識別するためのセッションIDがサーバー側で自動的に発行され、セッションに紐づけられます。

セッションIDは、CookieやURLパラメータの一部に付与され、ユーザーに返送・ブラウザへと保存されます。

手順(2):攻撃者が発行された「セッションID」を不正入手する

攻撃者は、セッションIDをさまざまな手口で不正入手します。

具体的な手口は、セッションIDの推測、窃取、固定化などがあります。詳しくは、以下「セッションハイジャックの代表的な3つの手口」で解説します。

手順(3):攻撃者がユーザーになりすまし、サイトにアクセスする

攻撃者は、不正に入手したセッションIDを使用してWebサイトにアクセスします。

前述の通り、サーバー側は送信されたセッションIDをもとにユーザーを識別するため、攻撃者によるアクセスであっても、正規ユーザーからのアクセスとして処理してしまいます。

セッションが乗っ取られると、本来は「ログイン後の正規ユーザーのみが許可される操作」が可能になります。

具体的には、次のような操作が挙げられます。

  • 非公開の個人情報の閲覧
  • 商品の購入
  • 送金、出金
  • 登録情報の更新
  • 掲示板への書き込み

このような操作が第三者によって行われると、情報漏洩や金銭的被害に加え、なりすましによる信用低下や名誉毀損などのトラブルに発展するリスクがあります。

セッションハイジャックの代表的な3つの手口


セッションハイジャックの代表的な手口を3つ紹介します。

  • 推測
  • 窃取
  • 固定化(セッションフィクセーション)

具体的にどのようにセッションIDが不正入手されるのかを確認していきましょう。

セッションIDを推測

セッションIDを「推測」することで、セッションIDを不正に盗む、セッションハイジャックのて手口
出典:IPA|安全なウェブサイトの作り方 – 1.4 セッション管理の不備

セッションIDは推測によって不正に入手されるケースもあります。

攻撃者は、対象となるシステムに繰り返しアクセスすることで、セッションIDの生成規則や傾向を分析し、割り出します。

仮にセッションIDの生成規則が「1234」といった数字の連番や日付など単純なものの場合、攻撃者が有効なセッションIDを推測し、不正に利用できてしまう可能性があります。

現在多くのWebシステムでは、長くランダム性の高いセッションIDが用いられているため、単純な推測による攻撃は成立しづらくなっています。

一方で、設計や実装に不備がある場合には、依然としてリスクが残るため、注意が必要です。

セッションIDを窃取

セッションIDを「盗用」することで、セッションIDを不正に盗む、セッションハイジャックのて手口
出典:IPA|安全なウェブサイトの作り方 – 1.4 セッション管理の不備

ユーザーとサーバー間の通信が暗号化されていない場合、パケットキャプチャソフトと呼ばれるネットワーク上の通信データ(パケット)を収集するソフトなどを悪用されることで、通信内容を盗聴される恐れがあります。

その結果、通信中にやり取りされるセッションIDが第三者に不正取得され、セッションハイジャックにつながる可能性があります。

また、Webサイトに脆弱性が存在する場合、クロスサイトスクリプティング(以下、XSS)によってセッションIDを盗まれることがあります。

XSSとは、Webサイトの脆弱性を悪用して不正なスクリプトを埋め込み、サイトを閲覧したユーザーのブラウザ上でスクリプトを実行させるサイバー攻撃です。

▼XSSによってセッションIDが盗まれる流れ

  1. 攻撃者が脆弱性があるWebサイトに不正なスクリプトを埋め込む
  2. ユーザーがそのWebサイトにアクセスする
  3. ユーザーのブラウザ上で不正なスクリプトが実行される
  4. スクリプトによって窃取されたセッションIDが、外部の攻撃者サーバーへ送信される
  5. 窃取したセッションIDを悪用して、ユーザーになりすます

XSSの仕組みや対策方法については、下記の記事で詳しく解説しています。本記事とあわせてご確認ください。

関連ページ

クロスサイトスクリプティング(XSS)とは?事例や対策を紹介

セッションIDの固定化(セッションフィクセーション)

セッションIDの固定化により、事前に用意したセッションIDを利用者へ送り込み、なりすまし方法
出典:IPA|安全なウェブサイトの作り方 – 1.4 セッション管理の不備

セッションIDの固定化とは、攻撃者が事前に用意したセッションIDを正規のユーザーに利用させ、後から攻撃者が正規のユーザーになりすます(セッションを乗っ取る)手法のことです。

攻撃者は、事前に用意したセッションIDを含むURLを、メールやSNSなどで正規のユーザーに送り込みます。

ユーザーがそのURLをクリックしてログインすると、Webサイト上では攻撃者が用意したセッションIDと正規ユーザーが紐づけられてしまいます。

その後、攻撃者も同じセッションIDでアクセスすれば、正規のユーザーになりすますことができるという仕組みです。

セッションハイジャックによる被害


セッションハイジャックによる主な被害としては、以下が挙げられます。

  • 個人・機密情報の窃取
  • サーバーへの不正侵入
  • 登録情報の漏洩・改ざん
  • クレジットカードの不正利用
  • オンラインバンキングでの不正送金

具体的に確認していきましょう。

個人・機密情報の窃取

攻撃者が正規ユーザーになりすまして各種サービスやサイトにアクセスできるようになると、本来であればログイン後のユーザーだけが閲覧できる個人情報や機密情報が不正に閲覧・取得される恐れがあります。

盗まれた情報は不正利用されるだけでなく、ダークウェブ(匿名性が非常に高く、違法な情報や商品が取引されるWebサイト)上で売買される恐れもあります。

また、企業がセッションハイジャックの被害を受けた場合、不正アクセスによって顧客情報や社内企画書など、重大な情報が流失する恐れがあります。

その結果、社外からの信頼失墜や損害賠償の支払いなど、甚大な被害につながる可能性があります。

関連ページ

ダークウェブとは?仕組みや危険性を被害事例付きでわかりやすく解説

サーバーへの不正侵入

管理権限をもつユーザーになりすまして社内サーバーに侵入されると、Webサイトの改ざんや、サーバー内に保存されているデータの流出、さらにはシステムの破壊など、さまざまな被害が発生する恐れがあります。

仮に企業のWebサイトが改ざんされると、サイトを訪問したユーザーがフィッシィングサイトに誘導され、個人情報や認証情報を盗まれるなど、被害がさらに拡大する可能性があります。

また、重要データの流出やシステム停止といった事態は、顧客や取引先の信頼を大きく損なう要因となり、企業活動に深刻な影響を及ぼす恐れがあります。

登録情報の漏洩・改ざん

Webサービスなどに不正アクセスされると、そのサービスに登録している情報が漏洩したり、改ざんされたりする恐れがあります。

また、登録情報のなかには、Webサービスのログイン情報も含まれるため、正規のユーザーが利用できなくなる可能性もあります。

クレジットカードの不正利用

不正アクセスされたアカウント情報に、クレジットカードの情報が登録されている場合、カードの所有者になりすまして、不正利用される危険性があります。

身に覚えのないクレジットカードの請求を見て、初めて被害に気付くというケースも少なくありません。

オンラインバンキングでの不正送金

オンラインバンキングのセッションが乗っ取られると、攻撃者が正規ユーザーになりすまして金融取引を自由に行える状態になります。

その結果、攻撃者が用意した口座への不正送金や、本人の口座からの不正出金など、深刻な金銭的被害が発生する可能性が高まります。

セッションハイジャックの被害事例


セッションハイジャックによる被害事例を二つ紹介します。

1.サーバー不正アクセス事件

世界的に有名なWebサーバーソフトウェアにて、セッションハイジャックが発生した事例があります。

この事例では、ホスティングサーバーの管理者が、クロスサイトスクリプティング攻撃によって管理者権限をもつセッションを奪取されました。

さらに攻撃者は、同時にアカウントに対するブルートフォース攻撃も行っており、これら複数の攻撃のいずれか、または組み合わせが成功した結果、管理者権限を含むセッションが不正に取得されたと報告されています。

2.動画共有サービスの不正アクセス事件

世界最大の動画共有サービスにおいて、セッションハイジャックによる不正アクセス被害が発生した事例があります。

この事例では、動画共有サービスのコメント機能に存在した脆弱性が悪用され、クロスサイトスクリプティング攻撃によって、セッションIDが不正に取得されました。

攻撃者にセッションIDが奪われた結果、動画のコメントが表示されなくなる、虚偽の情報や不正なメッセージがポップアップ表示されるなど、利用者に大きな混乱を与える被害が発生しました。

セッションハイジャックへの対策


セッションハイジャックを防ぐためには、以下のような対策が有効です。

  • セッションIDをURLパラメータに含めない
  • 第三者から推測されにくいセッションIDを採用する
  • ログイン成功後にセッションIDを再発行する
  • HTTPS通信で利用するCookieにはSecure属性を加える
  • Webサイトにおける脆弱性診断を実施する

詳しく確認していきましょう。

セッションIDをURLパラメータに含めない

Cookieが利用できないサイトなどでは、「http://〇〇〇.com/△△△/select?id=12345」のように、セッションIDをURLパラメータに含めて管理しているケースがあります。

しかし、URLパラメータにセッションIDが含まれていると、ブラウザの履歴やログ、リファラ、画面キャプチャなどを通じて第三者に取得される恐れがあり、セッションハイジャックに悪用されるリスクが高まります。

そのため、セッションIDをURLパラメータに含める方法は避け、Cookieに格納して管理することが推奨されます。

Cookieを利用できない場合には、POSTメソッドの hiddenパラメータに格納して管理する方法もありますが、この場合でも、通信の暗号化(HTTPS化)は必須であり、十分な注意が必要です。

第三者から推測されにくいセッションIDを採用する

セッションIDが、日付や時刻・連番のような、単純で規則性のあるものは、攻撃者に容易に推測されてしまいます。

セッションIDは、ランダムかつ長く複雑な文字列など、予測困難なものを採用しましょう。

ログイン成功後にセッションIDを再発行する

手口の部分でも説明したように、「セッションIDの固定化」は、攻撃者が事前に用意したセッションIDをユーザーに使わせ、ユーザーがログインに成功した後に、そのセッションIDを利用して正規ユーザーになりすまし、不正操作を行う攻撃手法です。

これに対抗するためには、ログイン成功時にセッションIDを再発行することが有効です。

ログインのたびに新しいセッションIDを付与することで、攻撃者が事前に固定したセッションIDを悪用できなくなります。

HTTPS通信で利用するCookieにはSecure属性を加える

サーバーがCookieを発行する際には、Cookieに「Secure属性」という項目を設定できます。

Secure属性はCookieの属性の一つで、設定されたCookieをHTTPSによる暗号化通信時のみ送信・利用可能とするためのものです。

Cookieにsecure属性がない場合、暗号化されていないHTTPの通信でもCookieが送信されてしまいます。

その結果、通信を盗聴された際にCookie情報(セッションIDなど)が第三者に取得され、セッションハイジャックに悪用される危険性があります。

関連ページ

Cookieとは?同意する危険性や安全に利用するための対策を解説

Webサイトにおける脆弱性診断を実施する

セッションハイジャックは、Webサイトにおけるセッション管理の脆弱性を狙った攻撃です。

そのため、自社のWebサイトに脆弱性がないかを確認するために、脆弱性診断を実施することも欠かせない対策の一つといえます。

脆弱性診断を受けることで、セッションハイジャックをはじめとした、Webサイトに潜むさまざまなセキュリティ上の課題を明らかにすることができます。

また、脆弱性診断は一度実施したら終わるものではありません。

継続的かつ定期的に実施することで、Webサイトのセキュリティレベルを維持・向上できるとともに、企業・組織の信頼性向上にもつながります。

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする

セッションハイジャック対策なら「LANSCOPE プロフェッショナルサービス」


「LANSCOPE プロフェッショナルサービス」が提供する「Webアプリケーション脆弱性診断」では、以下のような、セッションハイジャックの原因となるWebサイトの脆弱性を弊社のエキスパートが洗い出します。

  • セッション追跡パラメータの漏洩
  • セキュアでない Cookie の使用
  • ログアウト後のサーバセッションの長時間にわたる残存

PCサイトからモバイルサイト、WebAPIまで多様な媒体にて、脆弱性を明らかにし、優先度をつけて必要な対策をお伝えします。

「Webサイトを安全に運用したい」「自社サイトのインシデントによって、業務停止や信頼損失などを起こしたくない」という開発者様・サイト運営担当者様におすすめです。

関連ページ

LANSCOPE│Webアプリケーション脆弱性診断

また、診断内容を重要項目に絞り、より低価格でWebアプリケーションの脆弱性診断を受けていただける「セキュリティ健康診断パッケージ」も提供しております。

関連ページ

低コスト・短期で診断を行う『セキュリティ健康診断パッケージ』の詳細はこちら

まとめ


本記事では「セッションハイジャック」をテーマに、その手口や仕組み、具体的な対策などについて解説しました。

本記事のまとめ

  • セッションハイジャックとは、不正に入手したセッションIDを利用して、セッションを乗っ取るサイバー攻撃
  • セッションハイジャックの代表的な手口には、「推測」「窃取」「固定化(セッションフィクセーション)」の3つが挙げられる
  • セッションハイジャックを受けると「個人・機密情報の窃取」「サーバーへの不正侵入」「登録情報の漏洩・改ざん」「クレジットカードの不正利用」「オンラインバンキングでの不正送金」などの被害が想定される
  • セッションハイジャックへの対策としては、「セッションIDをURLパラメータに含めない」「第三者から推測されにくいセッションIDにする」といった対策に加えて脆弱性診断の実施が有効である

セッションハイジャックの性質上、ユーザー側で実施できる対策には限界があるため、Webサイト管理者側による適切なセッション管理とセキュリティ対策が特に重要となります。

適切な対策を講じることで、セッションハイジャックによるサーバーへの不正侵入や情報漏洩といった被害を未然に防ぐことが可能です。

本記事で紹介した「LANSCOPE プロフェッショナルサービス」の「Webアプリケーション脆弱性診断」では、セッションハイジャックの原因となるWebサイトの脆弱性をエキスパートが洗い出すサービスです。

はじめて脆弱性診断を実施する企業・組織の方に向けて、サービス概要と失敗しないための進め方をまとめた資料をご用意しているので、ぜひ活用して、セキュアなWebサイト運営を目指してください。

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする