セキュリティ対策強化のために新しいシステムを導入することも大切ですが、まずサイバー攻撃の種類や手口について理解することが必要です。
一言でセキュリティ対策と言っても多種多様なものが存在しますので、目的に応じて適切なソリューションを選択することが重要となります。本稿では、「セッションハイジャック」というサイバー攻撃について解説します。
Webサイトを狙ったこの攻撃にはどのような特徴があるのか?また、どのような対策が必要なのか?ぜひ参考にしてください。
セッションハイジャックとは?
サイバー犯罪者の多くはさまざまな手口によって情報の窃取を企んでいます。セッションハイジャックはそうしたサイバー攻撃の一種で、コンピュータ間の通信におけるセッションを第三者が乗っ取る攻撃手法です。
HTTPにおけるセッションハイジャックは、文字通りWebサイトのユーザーセッションIDを乗っ取る攻撃となります。
昨今、ECサイト等の利用でユーザーがIDやパスワードを入力してログインするWebサイトは当たり前になっており、ユーザーのログイン状態や行動を管理するためにセッションIDが活用されています。これは、WebサーバーやWebアプリケーションがサイトにアクセスしたユーザーおよびその状態を識別するための情報です。セッションIDはURLに保持されることもありますが、Cookieを用いてやりとりされることが一般的になっています。
こうして保持されるセッションIDが第三者の手に渡ったとしたらどうなるでしょうか?当然ながら、第三者はセッションIDを用いてそのユーザーに成りすましてWebサイトにアクセスし、悪用するという行動をとるでしょう。
攻撃者としては、ユーザーのクレジットカード情報や個人情報を窃取することが可能となり、注意が必要です。
なぜセッションハイジャックが起きてしまうのか?
セッションハイジャックにより直接的な被害を受けるのはユーザーです。そのため、Webサイトの運営者は徹底したセキュリティ対策に努める必要があります。適切な対策が行われていないとセッションハイジャックが起こる可能性があるのです。では、その原因は何なのでしょうか?
原因1. 推測されやすいセッションIDを設定している
どのようにセッションIDを付与するかはWebサイト側の仕様により決定するものです。その際に、数値の連番や日付などの推測されやすいセッションIDを設定していると、セッションIDを簡単に推測されてしまい、Webサイトにとって大きな脆弱性になります。
原因2. ウェブアプリケーションの脆弱性による漏えい
なんらかの脆弱性を悪用した不正アクセスにより、セッションIDを窃取されることがあります。代表的な攻撃として、クロスサイトスクリプティング(XSS)というサイバー攻撃によりセッションIDが漏えいすることがあります。
関連記事: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セキュリティ
- キーワード:
- セキュリティ
この記事に関する製品のご紹介
ホスト型WAF「SiteGuard Server Edition」
SiteGuard Server Editionは、ウェブサーバーのモジュールとして動作するホスト型WAF製品です。Webサーバー自体にインストールするため、専用ハードウェアが必要ありません。ネットワーク構成を変更せず、できるだけシンプルに導入したいお客様に最適な製品です。
詳細はこちら