セッションハイジャックとは|攻撃手口と管理者が今すぐやるべき対策

「セッションハイジャックとは、具体的にどのような攻撃なの?」
「Webサイトの運営者として、どのような対策をすればいいのだろう?」

セッションハイジャックは、Webサイト利用者のログイン状態を乗っ取るサイバー攻撃の一種です。IDやパスワードが直接盗まれなくてもアカウントが不正利用される可能性があり、利用者が気づかないうちに甚大な被害につながる危険性をはらんでいます。

Webサイトを安全に運営するためには、セッションハイジャックの仕組みを正しく理解し、適切な対策を講じることが不可欠です。

本記事では、以下の内容を詳しく解説していきます。

  • セッションハイジャックの仕組み
  • 代表的な攻撃手口
  • 引き起こされる被害とリスク
  • 被害に遭わないための対策

本記事を読めば、セッションハイジャックの脅威を理解し、自社のWebサイトを守るための具体的な方法がわかるでしょう。Webサイトの運営や開発に携わる方は、ぜひご一読ください。

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

セッションハイジャックとは、Webサイトやサービスにログインしている正規ユーザーのセッションやログイン状態を、第三者が乗っ取るサイバー攻撃の一種です。攻撃者は不正に取得した情報を使ってユーザーになりすまし、個人情報を盗み見たり、金銭に関わる不正な操作を行ったりします。ログイン状態を乗っ取るという手口から、利用者が気づきにくい点が特徴です。

「セッション」と「セッションID」とは

セッションとは、ユーザーがWebサイトに訪れてから離脱するまでの一連の通信や操作を指します。例えば、ECサイトでログインし、商品をカートに入れて決済を完了するまでが、一つのセッションにあたります。

一方でセッションIDとは、そのセッションを識別・管理するために、Webサーバーから発行される一時的な文字列のことです。Webサイトは通常、一度通信が終わるとユーザーが誰だったかを忘れる性質を持っています。そのため、ログイン状態を維持したり、ショッピングカートの中身を保持したりするために、セッションIDという整理券のようなものを発行し、ユーザーを識別し続けているのです。

セッションID盗取によるなりすましが起こる流れ

なりすましは、主にセッションIDが盗まれることで発生します。まず、正規のユーザーがIDとパスワードを入力してWebサイトへログインすると、サーバーは認証の証としてセッションIDを発行します。攻撃者は、何らかの手法を用いてこのIDを不正に入手します。

次に、攻撃者は盗んだIDでWebサイトへアクセスを試みます。セッションIDを受け取ったサーバーは、それを正規ユーザーからの通信であると誤って判断し、ログインが必要なページへのアクセスやサービスの利用を許可してしまうのです。これにより、攻撃者は正規ユーザーになりすまして不正行為を働くことが可能となります。

セッションハイジャックで用いられる代表的な攻撃手口

セッションハイジャックは、攻撃者がセッションIDを不正に取得・利用することで実行されますが、その具体的な手口は一つではありません。Webサイトの仕組みや脆弱性を突き、さまざまな方法で攻撃が仕掛けられます。

代表的な攻撃手口は、以下の3つです。

  • 手口①:セッションIDの窃取
  • 手口②:セッションIDの推測
  • 手口③:セッション・フィクセーション

手口①:セッションIDの窃取

セッションIDの窃取とは、ユーザーの通信経路などからセッションIDを盗み取り、不正にログインする攻撃手口です。その中でも「クロスサイト・スクリプティング(XSS)」は、Webサイトの脆弱性を悪用する典型的な方法として知られています。攻撃者は掲示板や入力フォームなどに不正なスクリプトを仕込み、他の利用者がそのページを閲覧すると、ブラウザ上でスクリプトが実行され、Cookieに保存されたIDが盗まれてしまいます。

そのほか、暗号化されていないHTTP通信を利用している場合は、送受信されるセッションIDがそのままネットワークを流れるため、盗み見られるリスクが高まります。公共のWi-Fiなど、不特定多数が利用する環境では、攻撃者が盗聴ツールを使ってIDを取得できてしまうおそれもあります。

▼関連記事

手口②:セッションIDの推測

セッションIDの推測とは、Webサイトで使用されているセッションIDの規則性を見抜き、攻撃者が正しい値を推測して不正に侵入する手口です。もしセッションIDが連番やユーザーID、生成日時など、単純な情報から作られている場合、攻撃者はそのパターンを分析してIDを特定しやすくなるのです。

また、ブルートフォース攻撃のように、考えられる文字列の組み合わせを片っ端から試し、有効なIDを探し当てる方法もこの手口に含まれます。近年のWebサイトでは推測が困難なランダムな文字列が用いられるのが一般的ですが、古いシステムなどでは依然として攻撃が成功するおそれがあります。

手口③:セッション・フィクセーション

セッション・フィクセーションとは、攻撃者が事前に正規のセッションIDを取得し、それをターゲットとなるユーザーに強制的に使用させ、ログイン後にセッションを乗っ取る手口です。これは、利用者のセッションIDを盗むのではなく、攻撃者側が用意したIDを押し付けるという点で、他の手法とは根本的に異なります。

攻撃者はまず、WebサイトからセッションIDを手に入れた後、そのIDを埋め込んだURLをユーザーにクリックさせるよう仕向けます。ユーザーがそのURLからサイトにログインすると、攻撃者は手元にある同じセッションIDを用いて、正規ユーザーとして認証された状態を悪用できるのです。

この攻撃は、ログイン前後でセッションIDが切り替わらないといった、Webサイト側の脆弱性を突いて実行されます。

セッションハイジャックが引き起こす被害とリスク

セッションハイジャックは、正規の利用者になりすますことで、さまざまな不正行為を可能にします。もし攻撃が成功してしまうと、サービスを利用する個人だけでなく、サイトを運営する企業側にも深刻な被害をもたらすおそれがあります。

具体的な被害やリスクは、次の2つです。

  • 個人情報漏えいや金銭的被害
  • Webサイトの改ざんやシステム破壊

個人情報漏えいや金銭的被害

正規ユーザーになりすまされると、個人情報が漏えいするリスクに直結します。攻撃者はアカウントに登録されている氏名、住所、電話番号、メールアドレスといった情報を自由に閲覧、窃取できてしまいます。盗まれた個人情報が、さらなるサイバー攻撃や詐欺などに悪用される二次被害につながる危険も否定できません。

また、金銭的な被害も発生するおそれがあります。例えば、ECサイトのセッションが乗っ取られた場合、登録済みのクレジットカード情報を使って高額な商品を不正に購入されるかもしれません。ネットバンキングのサービスにログインしている状態であれば、口座から不正に送金されてしまうといった、より直接的で甚大な損害を受ける可能性も考えられます。

Webサイトの改ざんやシステム破壊

もし管理者権限を持つアカウントのセッションが乗っ取られた場合、被害はさらに深刻なものとなります。攻撃者は管理者になりすまし、Webサイトの内容を意図しないものへ不正に書き換えることができてしまうのです。例えば、サイト上に虚偽の情報を掲載したり、閲覧しただけでウイルスに感染するような悪質なプログラムを仕込んだりするケースが考えられます。

さらに被害が拡大すると、Webサーバーへ不正にアクセスされ、システムそのものを破壊される危険性も出てきます。重要なデータを削除されたり、設定を不正に変更されたりすることで、Webサイトが機能不全に陥り、サービス停止に追い込まれるかもしれません。このような事態は企業の信頼を大きく損ない、事業継続に致命的な影響を与えるおそれがあります。

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

実際に発生したセッションハイジャックの被害事例を紹介します。

ある世界的な動画共有サービスでは、コメントシステムにおける脆弱性を悪用され、攻撃者にセッションIDを奪取される事件が起きました。その結果、動画のコメントが正しく表示されない、偽のポップアップが表示されるといった影響が発生しました。 

また、有名なWebサーバーソフトウェアで管理者用セッションが奪われた事例もあります。管理者が悪意あるURLをクリックしたことで、管理者権限を伴うセッションIDが乗っ取られ、パスワードや帳票システムの情報流出につながったと報じられています。 

さらに、公共のネットワークやWi-Fi環境で盗聴が成功したことで、銀行サービスや決済アプリのセッションを狙われ、短期間で多額の被害が出た国内事例も確認されています。

セッションハイジャックの被害に遭わないための対策

攻撃は巧妙な手口で行われますが、Webサイトの運営者側で適切なセキュリティ対策を講じると、リスクを大幅に低減させられます。

被害に遭わないために実施すべき代表的な対策は、次の5つです。

  • セッションIDに関するルールを設ける
  • ログイン後にセッションIDを再生成する
  • クッキー設定を強化する
  • WAFによる異常検知を導入する
  • 脆弱性診断を実施する

セッションIDに関するルールを設ける

被害を防ぐには、セッションIDの取り扱いに明確なルールを設けることが重要です。発行・利用・保存・破棄といった一連の流れを適切に管理しなければ、第三者に不正利用されるリスクが高まります。

まず、セッションIDをURLのパラメータとして扱うことは避けるべきです。URLに含めてしまうと、アクセスログや共有リンクなどを通じてIDが漏えいする可能性があります。また、セッションIDを生成する際には、十分な長さと乱数性を確保し、推測されにくい値にすることが欠かせません。

さらに、一定時間操作が行われなかった場合に自動でセッションを無効化する「タイムアウト機能」を設定しておくことも有効です。これにより、利用者がログアウトし忘れた場合でも、長時間のセッション継続による乗っ取りリスクを軽減できます。

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

セッション・フィクセーションへの対策として特に効果的なのが、ログイン成功後にセッションIDを再生成する仕組みです。この対策では、ユーザーがIDとパスワードによる認証を通過したタイミングで、それまで使っていたIDを無効化し、全く新しいIDを発行し直します。

もし攻撃者が事前に準備したセッションIDでも、ログインが完了した瞬間にそのIDは使えなくなります。ユーザーにはサーバーから新しいIDが割り振られるため、攻撃者は手元にある古いIDでセッションを乗っ取ることが不可能です。セッションIDの再生成は、Webサイトを開発する側が実装すべき重要なセキュリティ対策の一つと言えるでしょう。

クッキー設定を強化する

セッションIDは多くの場合、利用者のブラウザにある「Cookie(クッキー)」という仕組みを利用して保存されます。そのため、Cookie自体の設定をセキュリティ面で強化するのが非常に有効です。

具体的には、Cookieに「Secure属性」を付与する方法が挙げられます。この設定を行うと、ブラウザとサーバー間の通信がHTTPSで暗号化されている場合にのみ、Cookieが送信されるようになります。これにより、公衆無線LANなどでの通信傍受によるセッションIDの漏えいを防ぐ効果が期待できるのです。

また、「HttpOnly属性」も重要な設定です。この属性を付与したCookieは、Webページ上で動作するJavaScriptなどのプログラムからアクセスできなくなります。クロスサイト・スクリプティングによるID窃取のリスクを、大幅に低減させられるでしょう。

WAFによる異常検知を導入する

セッションハイジャックを防ぐには、WAFの導入が効果的です。WAFは、Webサイトとインターネットの通信を監視し、不審なアクセスや攻撃パターンを自動的に検知・遮断するツールです。アプリケーション層の防御に特化しており、セッションIDの不正利用やCookieの改ざんといった攻撃の検知・防御に役立つケースもあります。

例えば、WAFは短時間での大量アクセスや、不自然なセッションIDのリクエストといった異常を検知すると、自動的に通信を遮断して攻撃を未然に防ぎます。また、クロスサイトスクリプティングやSQLインジェクションなど、Webアプリケーションを狙う代表的な攻撃も同時に防御可能です。

▼関連記事

脆弱性診断を実施する

被害を防ぐには、自社のWebサイトに潜む問題点をあらかじめ把握しておくことも欠かせません。そのために有効なのが、定期的な「脆弱性診断」の実施です。脆弱性診断とは、Webサイトにセキュリティ上の弱点がないかを検査し、攻撃を受けるリスクを評価する仕組みを指します。

脆弱性診断を通じて、セッションハイジャックの原因となりうる脆弱性や、セッションID管理の不備といった問題点を具体的に洗い出すことが可能です。発見された脆弱性を一つひとつ修正して攻撃者に狙われる隙をなくし、セキュリティレベルを根本から向上させましょう。

▼関連記事

まとめ|対策を見直してセッションハイジャックを防ごう

セッションハイジャックは、セッションIDの不正取得により、本人のアカウントになりすまして侵入する攻撃です。被害が発生すると、個人情報の漏えいや金銭的損失、さらにはWebサイトの改ざんといった深刻な影響を及ぼすおそれがあります。

こうしたリスクを防ぐために、セッションIDの生成や管理を厳格に行いましょう。ログイン時にIDを再生成する仕組みを導入し、Cookie設定を強化すると、第三者による不正利用を防げます。また、WAFによる異常検知や脆弱性診断を定期的に実施し、潜在的なセキュリティリスクを早期に発見・修正することも欠かせません。

自社では気づきにくいセッション管理の不備といった脆弱性を発見したい場合は、高精度な自動診断を提供するAeyeScanが役立ちます。Webサイトのセキュリティリスクを効果的に低減させたい方は、ぜひAeyeScanの資料をダウンロードしてみてください。

セキュリティ課題の解決に役立つコンテンツを配信!

脆弱性に関する最新情報やイベント・セミナーのご案内など、様々な情報をお届けします。ぜひご登録ください。

メルマガ登録はこちら
エーアイスキャン編集部

エーアイスキャン編集部

クラウド型Webアプリケーション診断ツールAeyeScanなどを提供している、株式会社エーアイセキュリティラボのオウンドメディアを運営しています。セキュリティや脆弱性に関する情報について、わかりやすさと正確さをモットーに発信していきます!

FAQ

  • セッションハイジャックとは何ですか?

    Webサイトでは、利用者がログインしてからサイトを離れるまでの一連の操作を「セッション」として管理しています。この仕組みがあるおかげで、ショッピングカートの中身が保持されたり、ページを移動してもログイン状態が維持されたりするのです。このセッションを識別するために、サーバーは「セッションID」という一時的な整理券のようなものを発行します。

    セッションハイジャックとは、この重要なセッションIDを第三者が不正な手段で盗み出し、正規の利用者になりすましてアカウントを乗っ取るサイバー攻撃です。サーバーは正しいセッションIDを提示した相手を本人と誤認するため、攻撃者はIDやパスワードを知らなくても不正な操作ができてしまいます。

    詳しい内容は「セッションハイジャックとは?」をご覧ください。

  • セッションハイジャックを防ぐための対策を教えてください。

    セッションハイジャックを防ぐには、Webサイト運営者側で以下のような対策を多角的に講じることが効果的です。

    • セッションIDに関するルールを設ける
      セッションIDに推測されにくい複雑な文字列を使用し、有効期限を設けることで不正利用のリスクを減らします。
    • ログイン後にセッションIDを再生成する
      ユーザーのログイン成功時に新しいセッションIDを発行し直すことで、攻撃者が用意したIDを悪用する「セッション・フィクセーション」を防ぎます。
    • クッキー設定を強化する
      Cookieに適切な属性(Secure属性、HttpOnly属性)を設定し、通信の盗聴やプログラムによるID窃取を困難にします。
    • WAFによる異常検知を導入する
      WAFを導入すると不正な通信を監視・遮断し、攻撃の兆候を早期に検知できるようになります。
    • 脆弱性診断を実施する
      定期的に脆弱性診断を行い、Webサイトに潜むセキュリティ上の問題点を特定して修正していくことが重要です。

    5つの対策を組み合わせることで、Webサイトのセキュリティレベルを高め、セッションハイジャックのリスクを大幅に軽減できます。

    詳しい内容は「セッションハイジャックの被害に遭わないための対策」をご覧ください。

AeyeScan

AeyeScanの導入を検討してみませんか?

操作性の確認、
実際に利用してみたい方へ

「AeyeScan」の無料トライアル

トライアルにかかる費用は不要。実際の操作性はどうなの?またどのように脆弱性が発見されるのか?などの疑問は無料トライアルで解消しましょう。

無料トライアルの申し込み

サービスをより詳しく
知りたい方へ

「AeyeScan」のサービス概要資料

改めてサービスの特長や導入効果、企業の導入実績などAeyeScanについてより詳しく知りたい方はぜひサービス紹介資料をご覧ください。

サービス資料を読む

お見積もりの希望・導入を
ご検討している方へ

「AeyeScan」へのお問い合わせ

お見積りの希望・導入をご検討してくださっている方はお問い合わせフォームよりご連絡ください。当日もしくは遅くとも翌営業日にはご連絡を差し上げます。

お問い合わせフォーム