セッションハイジャックとは?起きてしまう
原因と対策方法について解説

 2020.05.12  2024.08.01

セキュリティ対策強化のために新しいシステムを導入することも大切ですが、まずサイバー攻撃の種類や手口について理解することが必要です。

一言でセキュリティ対策と言っても多種多様なものが存在しますので、目的に応じて適切なソリューションを選択することが重要となります。本稿では、「セッションハイジャック」というサイバー攻撃について解説します。

Webサイトを狙ったこの攻撃にはどのような特徴があるのか?また、どのような対策が必要なのか?ぜひ参考にしてください。

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

サイバー犯罪者の多くはさまざまな手口によって情報の窃取を企んでいます。セッションハイジャックはそうしたサイバー攻撃の一種で、コンピュータ間の通信におけるセッションを第三者が乗っ取る攻撃手法です。

HTTPにおけるセッションハイジャックは、文字通りWebサイトのユーザーセッションIDを乗っ取る攻撃となります。

昨今、ECサイト等の利用でユーザーがIDやパスワードを入力してログインするWebサイトは当たり前になっており、ユーザーのログイン状態や行動を管理するためにセッションIDが活用されています。これは、WebサーバーやWebアプリケーションがサイトにアクセスしたユーザーおよびその状態を識別するための情報です。セッションIDはURLに保持されることもありますが、Cookieを用いてやりとりされることが一般的になっています。

こうして保持されるセッションIDが第三者の手に渡ったとしたらどうなるでしょうか?当然ながら、第三者はセッションIDを用いてそのユーザーに成りすましてWebサイトにアクセスし、悪用するという行動をとるでしょう。

攻撃者としては、ユーザーのクレジットカード情報や個人情報を窃取することが可能となり、注意が必要です。

WAFとは

WAFとは

Webアプリケーションファイアウォール(WAF:Web Application Firewall)は、ウェブサイトに対するアプリケーションレイヤの攻撃対策に特化したセキュリティ対策です。

詳細はこちら

なぜセッションハイジャックが起きてしまうのか?

セッションハイジャックにより直接的な被害を受けるのはユーザーです。そのため、Webサイトの運営者は徹底したセキュリティ対策に努める必要があります。適切な対策が行われていないとセッションハイジャックが起こる可能性があるのです。では、その原因は何なのでしょうか?

原因1. 推測されやすいセッションIDを設定している

どのようにセッションIDを付与するかはWebサイト側の仕様により決定するものです。その際に、数値の連番や日付などの推測されやすいセッションIDを設定していると、セッションIDを簡単に推測されてしまい、Webサイトにとって大きな脆弱性になります。

セッションハイジャック

原因2. ウェブアプリケーションの脆弱性による漏えい

なんらかの脆弱性を悪用した不正アクセスにより、セッションIDを窃取されることがあります。代表的な攻撃として、クロスサイトスクリプティング(XSS)というサイバー攻撃によりセッションIDが漏えいすることがあります。

 
 

セッションハイジャック(XSS)

関連記事:WAFによるクロスサイトスクリプティング(XSS)対策

原因3. セッションIDの固定化(セッションフィクセーション)

さらに狡猾な手口としてセッションID固定化(セッションフィクセーション)があります。攻撃者は通常ユーザーとして有効なセッションIDを取得します。次に、罠を仕掛けるなど、標的となるユーザーに対して取得済みのセッションIDを強制し、ユーザーがWebサイトにログインするように仕向けます。

結果、攻撃者が事前に取得していたセッションIDにより、なりすましに悪用されてしまいます。

セッションハイジャック(セッション固定化)

 

セッションハイジャックを防御するための対策は?

セッションハイジャックを防御するための基本的な対策は、「攻撃者にセッションIDを推測させない、漏えいさせない」ことです。

対策1. URLにセッションIDを含めない

WebサイトとユーザーがセッションIDをやりとりする際、セッションIDがURLに保持されている場合があります。RefererヘッダからセッションIDが漏えいする可能性があるなど、ユーザーのセッションIDが様々な箇所から流出、推測されやすくなるため、CookieによるセッションIDの管理に変更することが適切です。

対策2. 推測が困難なセッションIDを利用する

セッションIDが時刻情報等を基に単純なアルゴリズムで生成されている場合、その値は第三者に容易に予測されてしまいます。そのため、乱数を組み合わせたりするなど、推測が困難なセッションIDを利用しましょう。

セッションIDの自作は行わず、セッション管理の仕組みが提供されるウェブアプリケーションを利用する場合は、そのアプリケーションが提供するセッション管理の仕組みを利用することをお勧めします。

対策3. セッションIDの変更

ログイン後に既存のセッションIDを破棄し、新たにセッションIDを発行するようにしましょう。これにより、ログイン後のセッションIDが攻撃者に分からなくなり、セッションフィクセーションの対策となります。

セッションハイジャックを受けるとどうなる?

それでは実際に発生したセッションハイジャックの事例をいくつか紹介します。事件の概要や被害状況に関して詳しく見ていきましょう。

被害事例①「Apache」Webサーバー不正アクセス事件

2010年にApache(アパッチ)Webサーバーにおいて、当時広く利用されていたバグトラッキングソフト「JIRA」をホスティングするWebサーバーを狙ったセッションハイジャックがありました。同サーバーの管理者が悪質なURLをクリックしたことで、管理者権限を含んだセッションが攻撃者に奪われました。悪質なURLには、クロスサイトスクリプティング(XSS)によってセッションCookieを盗む攻撃コードが仕込まれていました。

また、その攻撃者は同時に「JIRA login.jsp」に対してブルートフォース攻撃も行い、アカウントのパスワードを推測していました。このどちらかが成功し、管理者権限が奪われてシステムに侵入され、JIRA、Bugzilla、Confluenceユーザのハッシュ化されたパスワードの流出につながりました。

被害事例② EC-CUBEの脆弱性を悪用した不正アクセス事件

2021年5月にECサイト構築パッケージとして有名な「EC-CUBE」の4.0系において、クロスサイトスクリプティングの脆弱性(CVE-2021-20717)に関する情報が公開され、話題になりました。本脆弱性を悪用した攻撃、情報漏洩の被害も確認されており、クロスサイトスクリプティング対策の重要性が示された事例といえます。

WAFによるセッションハイジャック対策

Webサイトを狙ったサイバー攻撃に特化したセキュリティ対策製品にWAF(Web Application Firewall)があります。WAFを活用することで、クロスサイトスクリプティング(XSS)を悪用したセッションIDの漏えいを防ぐことができます。このほかにもWAFは、SQLインジェクションOSコマンドインジェクションディレクトリトラバーサルといった様々なサイバー攻撃からWebサイトを保護します。

前述したセッションハイジャックの対策と組み合わせることで、Webサイトのセキュリティレベルを向上させることができます。

WAF(Web Application Firewall)

ワンランク上のウェブサイトのセキュリティ対策に、ぜひWAFの導入を検討してみてください。

WAFとは~WAF選定・導入のポイントとSiteGuardが選ばれる理由~

WAFとは~WAF選定・導入のポイントとSiteGuardが選ばれる理由~

EG セキュアソリューションズが提供するソリューションである WAF(Web Application Firewall) の概要、WAFの選定・導⼊のポイントについて解説しています。
シリーズ累計150万サイト超を保護する「SiteGuardシリーズ」が選ばれる理由についても紹介しています。

資料ダウンロード

RECENT POST「Webセキュリティ」の最新記事


Webセキュリティ

クロスサイトスクリプティング(XSS)とは?仕組みや対策を解説

Webセキュリティ

OWASP Top 10 2021 にみるWebアプリケーションのセキュリティリスク

Webセキュリティ

クロスサイトリクエストフォージェリ(CSRF)とは?被害と対策を解説

Webセキュリティ

Webアプリケーション脆弱性診断とは?

セッションハイジャックとは?原因と対策方法について解説
5分でまるわかり!WAFによるサイバー攻撃対策
1分でわかる「SiteGuardシリーズ」
RECENT POST 最新記事
ブログ無料購読
RANKING人気記事ランキング