キヤノンMJ/サイバーセキュリティ情報局

ウェブサイトのユーザーのやり取りであるセッションを乗っ取る「セッションハイジャック」を解説

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「サイバーセキュリティ情報局」に掲載された「セッションハイジャックはなぜ起こるのか?攻撃の仕組みと求められる対策」を再編集したものです。

 セッションハイジャックとは、ウェブサイトのユーザーのやり取りであるセッションを乗っ取る行為。セッションハイジャックによってユーザーになりすますことが可能となり、クレジットカードの不正利用や情報漏えいなどの被害につながる。この記事では、セッションハイジャックの仕組みと対策について解説する。

セッションとは

 セッションハイジャックを理解するためには、まずセッションとは何かということを把握しておくことが重要だ。セッションにはさまざまな意味があるが、インターネットの文脈で使われるセッションとは、アクセスの開始から終了までの一連の通信のことである。通常、ウェブサイトを閲覧する際には、次のような手順でデータの送受信が行なわれる。

図1:セッションの仕組み

① ユーザーのクライアント端末からウェブサーバーに接続を要求。
Cookieを自動生成し、クライアントに返送。同時にセッションIDと紐づける。
③ 再度の接続をウェブサーバーに要求。ブラウザー内に保存されたCookieを送信。
④ 受け取ったCookie情報と合致する、セッションIDに紐づく情報を返送。

 同じウェブサイト上でほかのページに遷移する場合、③と④が繰り返されることになる。これらウェブサイト上における一連の流れがセッションと呼ばれる。ユーザーが同じウェブサイト内でさまざまなページに遷移しても、同一のセッションとして扱われる。ウェブサイトを店舗に例えてみるとわかりやすいかもしれない。ユーザーがある店舗に入店し、店舗の中をいろいろ見てから退店するまでがひとつのセッションとみなされるわけだ。

 また、ウェブサイトではそれぞれタイムアウトの期間が設定されている。多くのウェブサイトで30分、ユーザーの操作が生じなければタイムアウトする。タイムアウトすることでそのセッションは終了する。ウェブサーバーでは、個別のセッションを管理するためにセッションIDを生成して利用する。このセッションIDはCookieに保存・管理されることが多いが、URLのパラメーターに付与されるケースもある。セッションIDを用いて、ウェブサイトはユーザーを判別し、ウェブサイト上での行動結果を保持できる。

Cookieを削除するとどうなるのか?
https://eset-info.canon-its.jp/malware_info/special/detail/210921.html

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

 セッションハイジャックとは、先述したウェブサイトのセッションを乗っ取る(ハイジャックする)行為だ。セッションを乗っ取ることで、攻撃者は別のユーザーになりすましての通信が可能となる。

 この場合、直接的にIDやパスワードを窃取するフィッシング攻撃とは異なり、ログイン情報を窃取するわけではない。セッションIDを何かしらの方法を用いて取得することで、第三者になりすますのだ。具体的な方法としては、以下に挙げる3つの方法がある。

・セッションIDを推測する

 ウェブサーバーが生成するセッションIDの生成ルールがある規則に基づいたものであった場合、総当たり攻撃などで推測して悪用することが可能だ。また、日付やユーザー名に基づく場合なども推測が容易だ。ほかにも、アカウント登録して送受信データに含まれるセッション情報を解析することで、ほかのセッションIDを推測するといった手法もあり得る。

・セッションIDの窃取

 ウェブサイトの脆弱性を突くなどして、不正にユーザーとウェブサイトの間に介入し、ユーザーからセッションIDを窃取するケースもあり得る。代表的な攻撃手法のひとつとして、クロスサイトスクリプティング(XSS)が挙げられる。

・セッションフィクセーション

 攻撃者が取得した正規のセッションIDを、ハイパーリンク経由などで別のユーザーに利用させる。そのままユーザーがログインしてしまうと、攻撃者は自らが利用させたセッションIDを用いて、ユーザーのログイン状態に便乗することが可能となる。セッションを攻撃者が事前にお膳立てすることから、「セッションIDのお膳立て」とも呼ばれる。

トラッキングを許可しても大丈夫?セキュリティ的視点から解説
https://eset-info.canon-its.jp/malware_info/special/detail/200402.html

セッションハイジャックによって起こる被害

 セッションハイジャックはなりすましの一種であり、ユーザーに代わって攻撃者がウェブサービスなどを利用できるようになるため、以下のような被害が想定される。

・機密情報、プライベート情報の漏えい

 正規ユーザーになりすました状態でウェブサービスなどにアクセスすることで、企業の機密情報やプライベートな情報を盗まれたり、漏えいされたりする可能性がある。

・サーバーへの不正侵入

 なりすましによって企業のサーバーへ不正侵入されると、ウェブサイト上の情報が書き換えられ、フィッシングサイトへ誘導されたり、バックドアが設けられたりすることで、さらなる攻撃の足がかりにされることもある。

・オンラインバンキングの不正出金

 銀行などのオンラインバンキングにおいて、正規ユーザーになりすますことで、不正に金銭を引き出される可能性がある。

・登録情報の漏えいや改ざん

 攻撃者が正規ユーザーになりすましてウェブサービスなどにアクセスすることにより、そのサービスに登録した情報が漏えいしたり、改ざんされたりすることがある。

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

 クレジットカードを利用するオンラインサービスでは、クレジットカードを不正利用され、思わぬ金額を請求されることがある。

セッションハイジャックを防ぐための対策

 先述のように、セッションハイジャックの被害を受けると、甚大な損失を被る可能性がある。そのため、セッションハイジャックを防ぐためにも攻撃者にセッションIDを窃取されないための対策が求められる。ユーザーにも高い注意力が求められるが、セッションIDを保存・管理するのはウェブサイトの運営側であるため、ウェブサイトの運営者は以下のような対策を行なっておきたい。

・セッションIDをURLに含めない

 セッションハイジャック対策の基本である。URLにセッションIDを含めると、攻撃者が容易にセッションIDを取得できてしまうため、Cookieを用いてセッションIDを管理する方法に切り替える。

・推測が困難なセッションIDにする

 ユーザーIDや日付などだけで構成されるセッションIDでは推測が容易なため、擬似乱数を組み合わせるなど、解析が困難なセッションIDを生成するようにする。

・セッションIDの変更

 ユーザーがログインしたら既存のセッションIDを無効化し、新しいセッションIDで管理するようにする。ログイン後に新しいセッションIDが付与されることで、攻撃者がその前に取得したセッションIDではアクセスできなくなる。

・WAFの利用

 ウェブアプリケーションの脆弱性を突いた攻撃を防御するWAF(Web Application Firewall)を利用することで、クロスサイトスクリプティングなどを悪用したセッションIDの漏えいを抑制することが可能だ。

ウェブサイトの運営で必要なセキュリティ対策とは?
https://eset-info.canon-its.jp/malware_info/special/detail/210511.html

 セッションハイジャックは昔からある攻撃手法ながら、今でも関連する被害が後を絶たない。その要因の中でも多いのが、ウェブサイト運営者側の不備によるものだ。セッションハイジャックの場合、その仕組み上、ユーザー側で防御する方法は限られてしまう。ウェブサイトを継続的に利用してもらうためにも、ウェブサイトを運営している企業側で取り得る対策は適切に講じるようにしたい。