セッションハイジャックとは? 仕組みや被害、利用者側の対策を解説
セッションハイジャックと呼ばれるサイバー攻撃では、Web上のサービスにログインする際の仕組みを悪用して、不正アクセスが行われます。IDやパスワードがなくても不正アクセスができ、正規ユーザーによるアクセスと区別ができないため、情報漏洩などの被害が発生してから不正アクセスが発覚するケースも少なくありません。では、セッションハイジャックの被害は、どのような対策をとれば防げるのでしょうか。
本記事では、セッションハイジャックの基礎知識や発生する被害、利用者側の対策などを解説します。
セッションハイジャックとは、ログイン時に作成されるセッションを乗っ取る不正アクセスの手法
セッションハイジャックとは、ユーザーがWebサイトやWebアプリなどのサービスにログインする際に作成されるセッションを乗っ取り、被害を引き起こすサイバー攻撃の手法です。一般的なサイバー攻撃では、ログインのためのIDやパスワードを何らかの手法で盗み出して侵入しますが、セッションハイジャックはログインに際して発行されるセッションIDを悪用するため、ID・パスワードを必要としないといった特徴があります。
セッションやセッションIDには、下記のような意味があります。
セッションとは、アクセスが開始してから終了するまでのあいだに行われる一連の通信や操作のこと
セッションとは、アクセスが開始してから終了するまでのあいだに行われる一連の通信や操作のことです。例えば、Webブラウザーを開いてWebサイトにアクセスし、複数のページを閲覧してから閉じるまでの一連の通信が、セッションです。同様に、Webアプリにログインして情報を閲覧したり、入力したりした後、ログアウトするまでの操作もセッションと呼ばれます。
ログイン機能を持つWebサービスでは、ユーザーごとのセッションを認識することで、適切な情報をオンラインで反映できるようになります。例えば、セッションによって、ECサイトでカートに入れた商品の情報を、別の商品ページに遷移しても維持し続けることが可能です。セッションはユーザー自身がログアウトするか、一定時間を経過することで切れるように設定されています。
セッションIDとは、Webサービスのサーバーがユーザーを区別するための識別子のこと
セッションIDとは、Webサービスのサーバーがユーザーを区別するための識別子のことです。
ログイン機能を持つWebサービスでは、ユーザーが初めてログインしたときに、セッションIDと呼ばれる識別子をユーザーに割り振り、セッションIDと利用者の情報を結びつけたデータを作成します。このとき、ユーザーに対してCookieなどに付与されたセッションIDが返送され、ユーザーのWebブラウザーに保存されます。
これにより、2回目にユーザーが同じWebサービスにアクセスすると、ユーザーの1回目の行動を踏まえた情報が提示されます。また、セッションが継続しているあいだは通信の内容や状態が維持されるため、画面を遷移してもユーザーの情報を反映し続けることが可能です。
セッションハイジャックの仕組み
セッションハイジャックは、セッションを悪用して行われます。下記のような3つの段階を経て、悪意のある第三者により、ユーザーのセッションが乗っ取られます。
1.ユーザーによるセッションの確立
攻撃者がセッションハイジャックを行う場合、最初に、正規のユーザーがWebサービスにログインして、セッションに紐づくセッションIDが発行されている必要があります。セッションIDは、セッション中にユーザーの行動を追跡できるよう、Cookieなどに付与されてユーザーに返却されます。
2.攻撃者によるセッションIDの不正取得
正規のユーザーにセッションIDが発行されたら、攻撃者は正規ユーザーのセッションIDを不正に取得します。セッションIDは、推測や盗聴といった方法で不正取得することが可能です。また、攻撃者が用意したセッションIDを正規ユーザーに利用させて、悪用する方法もあります。詳細は、「セッションハイジャックの手口」の項目で解説します。
3.ユーザーになりすました不正アクセス
セッションIDを入手したら、攻撃者は正規ユーザーを装ってWebサービスにアクセスします。Webサイトなどのサービス提供者側は、セッションIDでユーザーを特定しているため、正規のユーザーと同じセッションIDでアクセスすれば、不正アクセスをあやしまれずに不正な操作をすることが可能です。
セッションハイジャックの手口
セッションハイジャックを行う攻撃者は、何らかの方法で利用者のセッションIDを取得します。代表的なセッションID取得の手口としては、大きく下記の3つが挙げられます。
セッションIDを推測する
セッションIDは、推測によって不正取得することが可能です。セッションIDの生成が、日付や時間といった予見しやすい一定のアルゴリズムを基に行われている場合、攻撃者は規則性を見抜いてセッションIDを推測できます。数字の連番などで作られている場合は、ブルートフォース攻撃(総当たり攻撃)によって何度も認証を試みてセッションIDを特定することも考えられます。
セッションIDを窃取する
セッションIDは、ユーザーとサーバーのあいだの通信が暗号化されていない場合には、通信を盗聴して盗み取ることも可能です。また、Webサイトに脆弱性があると、不正なスクリプトを埋め込んでWebブラウザー上で実行させるクロスサイトスクリプティングと呼ばれる手法で、Cookieに含まれたセッションIDを窃取することもできます。
事前に用意したセッションIDを他のユーザーに使用させる
攻撃者が取得したセッションIDを他のユーザーに使用させ、同じセッションIDでアクセスすることによって、セッションを乗っ取る手口もあります。攻撃者は、正規の方法でセッションIDを取得し、そのセッションIDを含むURLをターゲットとするユーザーに送ります。送られた相手がURLをクリックしてログインすると、攻撃者のセッションIDとユーザーが結びつくため、攻撃者はいつでもセッションを乗っ取ることが可能です。
攻撃者が取得した正規のセッションIDを固定で使い続けることから、「セッションIDの固定化(セッションフィクセーション)」と呼ばれます。
セッションハイジャックによって発生する被害
セッションハイジャックが起こると、Webサービスに正規ユーザーを装ってログインされるため、様々な被害が発生します。想定される代表的な被害は、下記の3点です。
機密情報や個人情報の漏洩
セッションハイジャックでは、正規のユーザーとしてWebサービスにアクセスされるため、正規ユーザーだけが閲覧できるはずの機密情報や個人情報が攻撃者に窃取され、漏洩する可能性があります。
例えば、ECサイトに不正アクセスされたケースであれば、登録している名前、住所、電話番号、クレジットカード番号といった個人情報が盗まれ、悪用される可能性があります。企業の場合、保存していた取引先の情報や社内の機密文書などが漏洩すれば、社会的な信用の失墜にもつながりかねません。
- 併せて読みたい
アカウントに登録した情報の改ざん
攻撃者に正規ユーザーとしてサービスにログインされると、登録してある情報が改ざんされるリスクがあります。重要な情報が勝手に改ざんされ、正規ユーザーが利用できなくなる事態にもなりかねません。
サーバーへの不正侵入
セッションハイジャックによって、企業のサーバーの管理システムに侵入されることも考えられます。管理システムに侵入されると、機密情報や個人情報の流出といった被害だけでなく、内部システムの破壊やWebサイトの改ざんなども発生しかねません。顧客や取引先に被害が及ぶことも想定され、場合によっては、企業の根幹を揺るがす事態に発展することもあり得ます。
セッションハイジャックの事例
セッションハイジャックによって、実際に被害が発生した事例もあります。代表的な事例としては、下記の2例が挙げられます。
動画共有サイトでの不正アクセス
2010年には、動画共有サービスでセッションハイジャックによる不正アクセスが発生しました。動画共有サービスのコメント欄に脆弱性があり、攻撃者が様々なユーザーのセッションを乗っ取って、Webブラウザーで不正なコードを実行させたとみられています。
その結果、動画共有サービスのコメントが表示されなくなったほか、ポップアップでデマ情報が流れたり、悪質なWebサイトにリダイレクトされたりするといった被害が発生しました。
Webサーバーソフトウェアサービスでの不正アクセス
Webサーバーソフトウェアサービスの管理者をターゲットに、クロスサイトスクリプティングが仕掛けられ、セッションが乗っ取られた事例もあります。
この事例では、攻撃コードを仕込んだURLが管理者に送られ、管理者がこれをクリックしたことでセッションが奪われました。同時に、管理システムへのブルートフォース攻撃も行われていて、セッションハイジャックかブルートフォース攻撃のいずれかによって奪われた管理者権限での侵入を許した結果、顧客のパスワードが漏洩した可能性が浮上しています。
セッションハイジャックの被害に遭わないための対策
セッションハイジャックを防ぐ対策を講じていないと、個人情報の窃取や金銭の盗難、別のシステムへの攻撃の波及など、深刻な被害が生じます。
下記に挙げる対策を早期に実施し、被害に遭わない環境づくりをしましょう。
不審なメールや疑わしいメールに記載されたURLはクリックしない
セッションハイジャックでは、セッション固定化などの手法で攻撃者からのメールが起点になるケースがあるため、不審なメールや疑わしいメールに記載されたURLをクリックしないことが重要です。正規の送信者からのメールであることが確定していない限り、メール内に記載されているリンクをクリックするのは避けましょう。
リンク先にマルウェアが仕込まれていたり、攻撃者が用意したセッションIDに誘導されたりする可能性があります。
通信が暗号化されていない状態でフリーWi-Fiに接続しない
セッションハイジャックを防ぐためには、通信が暗号化されていない状態でフリーWi-Fiに接続するのも避けなければなりません。通信を暗号化せずにフリーWi-FiでWebサービスにログインすると、ログイン中に通信への不正な割り込みが行われ、セッションIDが攻撃者に漏れる可能性があります。
特に、オンラインバンキングやクレジットカードの情報など、重要性の高い情報の送受信をフリーWi-Fiを通して行うのは危険です。
利用するWebサービスのセキュリティ対策を確認する
セッションハイジャックを防ぐ方法として、利用するWebサービスが実施しているセキュリティ対策を確認し、信頼できるサービスだけを使うのも有効な対策です。通常、信頼性の高い銀行やECサイト業者、メールプロバイダーなどは、セッションハイジャックに対抗する策を講じています。
例えば、Webサービスとの通信が、SSL(Secure Sockets Layer)接続で暗号化されていないような場合は、安心して利用できません。また、セッションIDをURLに含まず、Cookieを利用しているかどうかも重要なチェックポイントです。
セッションハイジャックの手口を把握し、適切な対策で情報漏洩を防ごう
セッションハイジャックは、ユーザーがWebサービスにログインした際にセッションを乗っ取り、情報を盗み出すサイバー攻撃です。セッションハイジャックの被害に遭うと、ID・パスワードが守られていても不正侵入できるため、被害の連鎖につながることもあります。情報の窃取や金銭的被害を防ぐため、利用者側で実施できる対策は確実に行いましょう。
不審なメールへの警戒心を持つことや、フリーWi-Fiの利用を避けること、Webサービスを利用する前にセキュリティ対策を確認することなどに加え、強力な情報漏洩対策ツールを導入するのも、個人情報や機密情報の保護に有効です。
インターコムが提供する「MaLion」シリーズは、Webサイトやファイルへのアクセス、メールのやりとり、USBメモリによる情報の持ち出し、プリンター出力といった情報漏洩につながる操作を監視したり、不正操作に対して警告を発したりできるほか、必要があれば操作を制御することが可能です。情報漏洩対策をお考えの場合は、「MaLion」シリーズをぜひご検討ください。