セッションハイジャックとは?手口と対策を解説
セッションハイジャックとは、ユーザーの識別情報を盗み出し、本人になりすましてシステムを不正利用するサイバー攻撃です。パスワードがどれほど強固でも、この識別情報を盗まれれば、攻撃者は「正規のユーザー」として堂々と正面から侵入できてしまいます。
この記事では、セッションハイジャックの仕組みや被害、その対策について解説します。
セッションハイジャックとはセッションIDを取得してユーザーになりすます攻撃のこと
セッションはウェブサイトにアクセスしてからログアウトするまでの一連の通信のことで、ユーザーを識別するために発行される識別子をセッションIDといいます。
ウェブサイトは本来、1回ごとの通信が独立しており、「さっきアクセスした人と今アクセスした人が同じか」を記憶できません。そこで、サーバーはユーザーを識別するために、「セッションID」という一意の識別子を発行します。
セッションIDは、一般的にブラウザのCookie(クッキー)やURLパラメータに保存され、サーバーとクライアントの間でやり取りされます。セッションハイジャックとは、セッションIDを攻撃者が何らかの方法で盗み出し、自分のブラウザにセットすることで、サーバーに「正規のユーザーである」と誤認させる攻撃手法です。
攻撃者はIDやパスワードを知らなくても、有効なセッションIDさえあれば、認証の壁をすり抜けてログイン後のページへアクセスできてしまいます。これはウェブアプリケーションに対する代表的な攻撃手法の一つであり、金融機関やECサイトなど、さまざまな業界で被害が発生しています。
セッションIDが狙われる理由
セッションIDは、一度認証を通過したユーザーに発行される「通行手形」です。これを持っていると本人確認済みと見なされます。そのため、どれほど複雑なパスワードを設定していても、セッションIDが盗まれれば、攻撃者はパスワード入力画面を経由せずに内部へ侵入できます。
現在、多くの会員制ウェブサイトやクラウドサービス(SaaS)はセッション管理を利用しているため、攻撃対象が非常に多いことも注視すべき課題の一つです。
セッションハイジャックの手口
攻撃者がセッションIDを入手する手口は主に3つあります。
セッションIDの推測
セッションIDの生成ルールが単純な場合、攻撃者に推測されてしまうでしょう。例えば、「User001」「User002」といった連番や、発行時刻(タイムスタンプ)をそのまま使用している場合、攻撃者は総当たりでIDを生成し、偶然ヒットした他人のIDでログインできてしまいます。十分な長さとランダム性がないセッションIDは非常に脆弱です。
セッションIDの窃取
正規のユーザーが持っている正しいセッションIDを盗み出す、セッションIDの窃取にも注意が必要です。窃取方法としては、脆弱性のあるウェブサイトに悪意あるスクリプトを埋め込み、アクセスしたユーザーのブラウザからセッションIDを盗み出すクロスサイトスクリプティング(XSS)という手法があります。
また、フリーWi-Fiなどの暗号化されていない通信環境において、ユーザーとサーバーの間の通信を傍受(盗聴)し、流れているセッションIDを横取りする中間者攻撃(Man-in-the-Middle攻撃)という手法もあります。
セッションIDの固定化
セッションIDの固定化とは、攻撃者が事前に用意した「罠のセッションID」をユーザーに使わせる手法です。具体的には下記のような手順で攻撃者は、セッションIDの固定化を行います。ログイン時に新しいセッションIDを再発行しないアプリケーションは、この攻撃に対して脆弱な状態となります。
セッションIDの固定化の手順
- 攻撃者がウェブサイトから有効なセッションIDを取得する
- そのIDを含んだリンクをメールなどでユーザーに送りつける
- ユーザーがそのリンクからログインする
- ログイン後もIDが変わらないシステムの場合、攻撃者が知っているIDが「認証済み」の状態になり、攻撃者もログイン状態になる
セッションハイジャックによる被害
なりすましによる被害は、個人のプライバシー侵害から企業の存続に関わる事故まで多岐にわたります。セッションハイジャックによって、どのような被害が起こり得るのか見ていきましょう。
個人情報・機密情報の漏洩
個人の場合は、登録されている住所や電話番号、クレジットカード情報などが攻撃者に盗まれるかもしれません。攻撃者は正規ユーザーの権限でシステム内を自由に閲覧できるためです。企業のSaaSなどが乗っ取られた場合は、顧客データベースや社外秘の技術資料などへアクセスされ、大規模な情報漏洩につながる恐れがあります。
アカウントの不正利用
アカウントを完全に乗っ取られると、アカウントの不正利用が可能となります。攻撃者は侵入後、すぐにパスワードや登録メールアドレスを変更します。こうなると正規のユーザーはログインできなくなり、アカウントを取り戻すことは困難です。乗っ取られたアカウントは、SNSでの詐欺情報の拡散や、知人へのフィッシングメール送信などに悪用され、被害を広げる踏み台にされます。
金銭的被害
セッションハイジャックの被害を受けると、ECサイトでの勝手な商品購入や、オンラインバンキングでの不正送金といった直接的な金銭被害も発生します。また、攻撃者が企業ネットワークへの侵入に成功した場合は、そこを足がかりにランサムウェアを仕掛けられ、身代金を要求されるといった甚大な被害に発展するケースもあるでしょう。
セッションハイジャックへの対策
セッションハイジャックを防ぐには、ウェブサイトを利用する「利用者側」と、サイトを運営する「開発者・管理者側」、そして企業としての「組織的な対策」の連携が必要です。それぞれどのような対策が求められるか見ていきましょう。
利用者側の対策
まず、不審なメールやURLはクリックせず、送信元を確認する習慣を浸透させましょう。通信環境にも注意が必要なため、フリーWi-Fiの使用は避け、信頼できるネットワーク環境を利用します。どうしても外部で接続する場合は、VPNを使用して通信を暗号化し、傍受を防ぐ対策が有効です。また、サービスの利用後はブラウザを閉じるだけでなく、必ずログアウトしてセッションを終了させることを習慣化させてください。
さらに、パスワードだけでなく多要素認証(MFA)を有効化して認証を強化することや、端末内からの情報窃取を防ぐためにEDR/MDRなどのマルウェア対策を行うことも求められます。
開発者・管理者側の対策
Webアプリケーションの設計や設定段階での対策も不可欠です。セッションIDは十分な長さと複雑性を持ち、推測困難なものを生成するほか、セッションの有効期限を適切に設定してリスクを減らします。なお、ログイン時にセッションIDを再生成する仕様にすると、攻撃者が意図的にセッションIDを固定化させて正規ユーザーになりすますセッションフィクセーション攻撃を防ぐことができます。
通信経路においては、HTTPS(TLS)を使用して通信を暗号化し、セッションIDの傍受を防止しましょう。併せて、CookieにHttpOnly属性とSecure属性を設定し、悪意あるスクリプトからのアクセスや非暗号化通信での送信を防ぐ設定も重要です。
組織的な対策
技術だけでなく、組織全体で運用体制を整えることも大切です。自社が運営するWebアプリケーションの脆弱性診断を定期的に実施し、セキュリティホールがないか確認しましょう。また、従業員に対するセキュリティ教育も行い、フィッシング攻撃などの手口や危険性を共有してリテラシーを高めます。万が一被害が発生した際に備え、インシデント対応体制を整備し、迅速な対応を可能にしておくことも重要です。
セッションハイジャックの被害を拡大させないためにセキュリティ対策の見直しを
セッションハイジャックは、ユーザーの「デジタルの身分証明書」を盗み、正規ユーザーになりすます卑劣な攻撃です。パスワード管理だけでは防げないため、SASEなどによる安全な通信・アクセス制御や、ウェブアプリ側の堅牢な設計、そして万が一侵入された場合に備えたエンドポイント対策(EDR/MDR)が重要になります。
しかし、自社のウェブサービスに脆弱性がないか、従業員が安全な通信を行っているかをすべて把握するのは容易ではありません。「予算内で効果的な対策を打ちたい」とお悩みの方も多いでしょう。
コニカミノルタジャパンでは、中小企業が直面するセキュリティ課題に対し、現状のアセスメントから具体的な技術対策までを網羅したサービスをご用意しています。セッションハイジャックを含む多様な攻撃から会社を守るための指針として、ぜひ以下の資料もご活用ください。














