San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
Attacks

セッションハイジャック攻撃

はじめに

この記事では、セッションハイジャック攻撃の概要、事例、ならびに成功した攻撃に伴うリスクについて解説します。Wallarmの情報を活用して、データをサイバー脅威から守る方法も学べます。

セッションハイジャック攻撃

セッションの定義

利用者がHTTP接続を利用してウェブサイトやアプリにアクセスする際、サーバーは通信を開始しアクセスを許可する前に、利用者の身元(たとえばユーザー名とパスワード)を確認します。しかし、HTTP接続は無状態であるため、利用者の各操作が独立して扱われます。もしHTTPのみを用いるなら、利用者はページ毎に再認証を求められることになります。

この問題はセッションによって解決されます。利用者がサインインすると、ウェブサイトやアプリのサーバー上にセッションが作成され、初回認証の証として機能します。サーバーのセッションが持続している間、利用者はログイン状態を維持できます。利用者はログアウトするか、または一部サービスでは一定時間操作がない場合に自動でセッションが終了されます。

多くのサービスは、短いセッションクッキー、URL、またはウェブサイト上の隠しフィールドに保存された英数字の組み合わせであるセッションIDを送信してセッションを開始します。これらのセッションIDは、場合によっては暗号化されることもあります。

セッションハイジャックの定義

セッションハイジャック攻撃またはTCPセッションハイジャック攻撃とは、攻撃者が利用者のセッションを乗っ取ることを指します。たとえば金融アプリにサインインするとセッションが開始され、ログアウトで終了します。この攻撃は、セッショントークンの情報を狙うことから、トークンハイジャックとも呼ばれます。パソコンのセッションはどんな場合も乗っ取られる可能性がありますが、サービスやウェブアプリのセッションが特に狙われやすいです。

セッションハイジャックの実例

セッションハイジャック攻撃には様々な種類があり、以下で詳細と例を紹介します。概ね、セッション乗っ取りの流れは次の通りです:

  • セッション乗っ取り ステップ 1: 不注意なウェブ利用者がアカウントにサインインします。利用者は銀行口座、Mastercardのウェブサイト、オンラインストア、またはその他のアプリやサイトにアクセスする場合があります。利用者のブラウザでは、該当のアプリやサイトが一時的な「セッションクッキー」を設定します。このクッキーには利用者の情報が含まれており、認証状態を維持しながらセッション中の動作を追跡する役割を果たします。クッキーは利用者がログアウトするか自動終了するまでブラウザ内に残ります。
  • セッション乗っ取り ステップ 2: サイバー犯罪者が正当なウェブセッションに侵入します。攻撃者は様々な手法を用いてセッションを奪取します。一般的な手法としては、利用者のセッションクッキーを盗み、その中からセッションIDを抽出して乗っ取る方法があります。セッションIDは「セッションキー」とも呼ばれ、この情報さえ得られれば、攻撃者は検知されることなくセッションを乗っ取ることが可能です。
  • セッション乗っ取り ステップ 3: 攻撃者は乗っ取ったセッションを利用して不正行為を行います。最初の利用者がセッションを離れると、攻撃者はそのセッションを利用して、口座からの資金引出し、買い物、個人情報の窃盗によるなりすまし、または大切な情報を暗号化して身代金を要求するなど、様々な悪質な行為を行う可能性があります。

以下は架空のセッション乗っ取りの例です:

例1: カッシーはカフェでラテを楽しみながら銀行口座の残高を確認していました。隣のテーブルにいた犯罪者が「セッションスニッフィング」を用いてセッションクッキーを盗み、乗っ取りを行って口座情報にアクセスしました。

例2: ジャスティンは大手オンラインストアのセール案内メールを受け取り、リンクをクリックしてサインインし買い物を始めました。しかし、そのメールは攻撃者が送ったもので、リンクにジャスティン自身のセッションキーが含まれていました。攻撃者はそのセッションを乗っ取り、保存されたクレジットカード情報を使って買い物を行いました。

セッション乗っ取りの手法は多岐に渡ります。攻撃の仕組みを理解することで、オンラインでの安全性を高める手助けとなります。

Session hijacking in action
Session hijacking in action

セッションハイジャックの影響

セッションハイジャック攻撃が成功すると、攻撃者は対象利用者が行えるあらゆる操作にアクセスできるようになります。これにより、金融取引の実施、機密情報へのアクセス、またSSOを通じてほかのシステムへの不正アクセスなど、多岐にわたるリスクが生じます。

以下に、特に多く見られる脆弱性を挙げます:

  • 攻撃者は、利用者に代わって金融取引を行うことが可能です。これを金融詐欺と呼ぶ場合があります。これには、口座からの送金や、保存された支払い情報を利用した買い物が含まれます。
  • 個人情報の盗難:攻撃者がアカウント内の機密個人情報へ不正にアクセスし、被害者になりすますケースがあります。
  • データ窃盗:攻撃者はアプリ内に保存された機密性の高い個人情報や企業情報を盗み出し、それを用いて個人または企業に損害を与えたり、恐喝などの手段で利用したりする可能性があります。
  • SSOを通じた他システムへのアクセス:SSOが有効な場合、攻撃者は他のシステムに不正アクセスでき、セッション乗っ取り攻撃のリスクが一層高まります。多くの組織で従業員がSSOを利用している現状では、どんなに安全なシステムでも、最も弱い部分が全体の安全性に影響を及ぼす恐れがあります。

セッションハイジャックとセッションスプーフィング

攻撃の仕組みは、ハイジャックとスプーフィングで異なります。セッションハイジャックは、既にログインし認証された利用者のセッションを乗っ取るもので、利用者の視点から見るとアプリが不具合を起こしたりクラッシュしたりします。攻撃者は盗んだり偽造したセッショントークンを使い、新たにセッションを開始して元の利用者になりすますため、利用者は気付かないことが多いです。

セッションハイジャックの手法

  1. セッションサイドジャッキング

より巧妙な乗っ取り攻撃として、セッションサイドジャッキング(セッションスニッフィングとも呼ばれる)があります。この場合、攻撃者はWiresharkやKismetなどのパケット解析ツールを使いネットワークの通信を監視して、ログイン後のセッションクッキーを盗みます。サーバーがログインページのみ暗号化し、その他のページを暗号化しない場合、利用者はこの攻撃に対して無防備となります。したがって、攻撃者はログイン後、復号されたページからセッションIDを取得できるのです。

攻撃者は利用者のネットワークへのアクセスが必要なため、セッションサイドジャッキングは主に安全でないWiFiや公共のネットワーク上で行われます。

  1. クロスサイトスクリプティング (XSS)

セッション乗っ取りで最も一般的かつ危険な手法のひとつがクロスサイトスクリプティング(XSS)です。攻撃者が対象のサーバーやアプリの脆弱性を見つけると、サイトページにクライアント側のコンテンツを注入して悪質なコードを埋め込みます。一見、信頼できるサーバーからの正当なコンテンツに見えますが、悪質なコードが挿入された瞬間に利用者のセッションIDが盗まれてしまいます。

XSS攻撃では、攻撃者が信頼できるサイトのリンクに改変されたHTTPリクエストヘッダーを付けたリンクを送る場合があります。利用者がそのリンクをクリックすると、攻撃者はセッションIDにアクセスするか、場合によっては直接その情報が送信されることもあります。このような場合、攻撃者は通常URL短縮サービスを用いてリンクやその中の悪質な内容を隠します。

  1. セッションフィクスチャー

攻撃者が利用者のセッションIDを変更できる場合、これをセッションフィクスチャーと呼びます。対象ウェブサイトに、URLやフォームからセッションIDを設定できる脆弱性が存在する必要があります。攻撃者は利用者にセッションIDを割り当て、そのIDを含むフィッシングURLを送信するか、偽のログインフォームに埋め込むことで、利用者をログインさせることができます。

結果として、正当な利用者は攻撃者が設定した(すなわち攻撃者が知っている)セッションIDでログインし認証されます。攻撃者はその後、利用者がログインした段階でセッションIDを奪取するのです。

  1. 予測可能なセッショントークンID

多くのサイトにはセッションID生成の規則があり、場合によっては利用者のIPアドレスなどを簡単に用いることがあります。攻撃者は発行されたセッションIDを観察し、そのパターンを把握できれば、正当な利用者のセッションIDを予測し、偽のIDを作成することが可能です。

また、攻撃者がセッションIDの候補リストにアクセスし、総当たり攻撃を仕掛けることも考えられます。生成方法が予測しやすい場合、そのようなリストが存在する可能性があります。

  1. Man-in-the-browser攻撃、いわゆる MiTM

マルウェアがインストールされ、利用者がサイトにログインすると、攻撃者は中間者として動作し、データの傍受、利用者のサイト上での操作の改ざん、またはその利用者になりすました更なる行為を実行可能です。これらは利用者に気付かれることなく行われるため、実際の端末上で発生するセキュリティ侵害の検出は難しい場合があります。

攻撃の実際の例

セッション乗っ取り攻撃によって実際に起こった高い注目を集める事例がいくつかあります。以下はその代表例です:

「Zoomボンバリング」

COVID-19パンデミックにより学校、仕事、集まりなどでZoomのようなビデオ会議アプリが普及し、世界はデジタル化しました。その結果、これらの会議が狙われ、セッション乗っ取りが発生したため「Zoomボンバリング」という用語が生まれました。

複数の事例で、攻撃者はセッション乗っ取りを利用してプライベートなビデオ会議に侵入しました。攻撃者は罵声を浴びせ、不適切な言葉や露骨な画像を表示することで混乱を招きました。そのため、Zoomなどの企業はパスワードや待機室といったより堅牢なセキュリティ対策を実施し、セッションの参加者を手動で承認できるようにしました。

Mozilla Firefox用の「Firesheep」拡張機能

Mozilla Firefoxは2010年にFiresheepという拡張機能を公開し、オープンで暗号化されていないWiFiネットワーク上でブラウザを利用する際の脆弱性を明らかにしました。Firesheepは、利用者のブックマークに追加された任意のサイトからセッションクッキーを容易に盗み取る仕組みとなっていました。これを受け、多くのサイトがHTTPS接続を導入し、セッション乗っ取りのリスクを軽減しました。

Slack

2019年、バグ報奨金プラットフォームで活躍するセキュリティ研究者がSlackの脆弱性を発見しました。この脆弱性により、攻撃者は利用者を偽のセッションに誘導し、セッションクッキーを盗むことで、Slack上の共有情報にアクセスできるようになっていました(多くの組織では情報量が膨大です)。研究者が脆弱性を発見してから24時間以内に、Slackは問題を修正しました。

GitLab

2017年、セキュリティ研究者がGitLabの脆弱性により、利用者のセッショントークンがURLに露出する問題を発見しました。さらに調査すると、GitLabは期限切れにならない永続的なセッショントークンを使用していたため、攻撃者はそのトークンを気にせずに利用できることが判明しました。

このような露出と永続トークンの組み合わせは重大なリスクを生み、総当たり攻撃などによるセッション乗っ取りの被害を招いていました。GitLabはその後、トークンの取り扱いや保存方法を見直し、脆弱性を修正しました。

セッション乗っ取りを防ぎ、その影響を軽減するにはどうすればよいか?

オンラインでの安全を高めるためには、さまざまな対策が講じられます。セッション乗っ取りを防止しサイバーセキュリティを強化するため、以下の対策を実施することが推奨されます。

  • 公共のWi-Fiはできるだけ利用を避ける。銀行取引、オンラインショッピング、メールやストリーミングサービスなどの機密性の高い取引には、公共のWi-Fiを使用しないことが望ましいです。隣のテーブルでセッションクッキーやその他の情報を狙うサイバー犯罪者が存在する可能性があります。
  • VPNを利用する。公共のWi-Fiを使用せざるを得ない場合は、VPNを活用して安全性を高め、セッション乗っ取りを防止してください。VPNは全てのオンライン通信を暗号化する「安全な通路」を構築し、IPアドレスを隠すため、送受信されるデータも保護されます。
  • 信頼できるセキュリティソフトを導入する。各端末において、信頼性の高いセキュリティソフトを定期的にインストールし、常に最新の状態に保つことが大切です。(自動更新が利用できる場合もあります。)これにより、セッション乗っ取りに用いられるマルウェアなどを検出・防御することが可能です。
  • 詐欺に注意する。送られてきたメールが信頼できるものか不明な場合、そのメール内のリンクはクリックしないよう注意してください。攻撃者は、利用者を偽のログインページへ誘導するためにリンクを送り、マルウェアをダウンロードさせたり、攻撃者が作成したセッションIDでのログインを試みさせたりする恐れがあります。
  • ウェブサイトのセキュリティに留意する。大手の銀行、メールプロバイダ、オンラインベンダー、ストリーミングサイトなどは、全ページでHTTPSを有効にし、迅速に脆弱性を修正するなどの対策を講じています。一方、セキュリティ対策が十分でない小規模なサイトを利用した場合、セッション乗っ取り攻撃に対して無防備になる可能性があります。

セッション乗っ取りの被害に遭うことを想像すると不安になるかもしれませんが、これらの対策を講じることで攻撃者からセッションを守る助けとなります。

FAQ

Open
この攻撃について他にどこで情報が得られる?
Open
セッションハイジャック攻撃が疑われる場合はどうする?
Open
セッション乗っ取り攻撃を防ぐためにはどんな手段があるか。
Open
セッションハイジャック攻撃とは何か
Open
セッションハイジャック攻撃はどのように起こるのか?

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック