要約
セッションハイジャックは、攻撃者が認証済みユーザーになりすますために、有効なセッショントークンを盗んだり予測したりすることで発生します。攻撃者は、クロスサイトスクリプティング(XSS)、マルウェア、セッション固定、ネットワークスニッフィングなどの手法を悪用して、これらのトークンを窃取します。防御策には、トラフィックの完全な暗号化、公共ネットワークでのVPNの使用、セッションCookieのランダム化、非アクティブ状態が続いた場合の迅速なセッション終了などがあります。
セッションハイジャックを理解する
セッションハイジャック攻撃は、なりすましの一種です。ハッカーは有効なコンピュータセッションキーへのアクセス権を取得し、そのわずかな情報で、侵入者は権限のあるユーザーができることとほぼ同じことができます。
セッションハイジャックとは何かを理解し、あなた自身とあなたのデータを保護する方法を説明します。
セッションハイジャック攻撃とは
2つのデバイス(コンピューターとサーバーなど)間の通信期間をセッションと呼びます。認証はプロセスを開始するもので、認証に成功すると、サーバーはユーザーのブラウザに保存されるセッショントークンを生成します。セッションハイジャック中に、そのトークンが盗まれたり、予測されたりします。
セッションIDがあれば、ハッカーは次のことができます。
- セッションを乗っ取る。あなたがそのサイトで行うことを許可されていることは何でも、あなたのハッカーも行うことができます。それは、送金、購入、またはパスワードの変更を意味する可能性があります。
- より多くの機会を探す。あるサイト(Googleなど)にログインすると、別のサイト(YouTubeなど)で作業できますか?ハッカーはそれを見つけ出すでしょう。
| テクニック | SCIM の仕組み | 主な違い |
|---|---|---|
| セッションハイジャック | 攻撃者は、有効なセッショントークンを盗むか予測して、アクティブなセッションを乗っ取ります。 | 正規のユーザーと攻撃者の両方が、同じサーバーで同時に作業している状態になります(プログラムがクラッシュするか、ユーザーが削除されるまで続きます)。 |
| セッションのなりすまし | 攻撃者はユーザーになりすまし、ユーザーに知られることなく新しいセッションを開始します。 | 攻撃者は、既存のアクティブなセッションを乗っ取るのではなく、新しいセッションを開始します。 |
セッションハイジャックはどのようにして始まるのでしょうか?
サーバーはセキュリティを念頭に置いて設計されており、誰かがセッションハイジャックを行うことは困難であるはずです。残念ながら、情報漏えいはよく起こります。
既知の手法は5つあります。以下にそれを示します。
- クロスサイトスクリプティング(XSS)攻撃。攻撃者は、一見無害に見えるリンクを送りつけてきます。それをクリックすると、悪意のあるコードが実行されます。ハッカーがセッションキーを取得します。このアプローチは、Open Web Application Security Project(OWASP)によってアプリケーションセキュリティにおける最大の脅威と見なされています。
- マルウェア。ハッカーが、電子メールまたはウェブサイトに悪意のあるリンクを仕込みます。感染すると、ハッカーはセッションキーを盗んだり、デバイスを乗っ取ったりする可能性があります。ハッカーはマルウェアを使って、マンインザミドル攻撃やマンインザブラウザ攻撃を仕掛けることがあります。これらの攻撃では、あらゆるサーバー上でのユーザーの行動がすべて見られてしまいます。
- セッション固定化。ハッカーは、既知のセッションキーをリンク経由であなたに送信します。そのリンクからログインすると、ハッカーはあなたのCookieを取得します。
- セッションハイジャック。ハッカーは、スニッフィングツールを使用して、デバイスとサーバーの間を通過する暗号化されていないトラフィックを読み取ります。公共のWiFiを使用している場合、トラフィックが暗号化されていない可能性があるため、ハッカーの仕事はさらに簡単になります。
- セッションスニッフィング。セッションIDは暗号化されていない状態で送信され、ハッカーはネットワークを監視してそれを発見します。
こうした手法に加えて、ハッカーは目的特化型のツールを利用して、より迅速かつ容易にセッションをキャプチャすることもできます。
ハッカーはセッションハイジャックにどのようなツールを使用しますか?
ハッカーは、さまざまなツールを使用してセッションCookieをキャプチャし、セッションを乗っ取ることもあります。一般的な例は次のとおりです。
- Firesheep — 公衆WiFiセッションで認証済みウェブサイトのセッションCookieをコピーするために使用されるFirefoxの拡張機能です。
- WhatsappSniffer — プラットフォーム固有のツールで、通常のセッション保護を回避し、セッションを完全に乗っ取ることができます。
- DroidSheep — モバイルセッションを標的とするセッションハイジャックツール。
- CookieCadger — セッションCookieをキャプチャしてリプレイするためのツールです。
ハッカーがセッションの乗っ取りを企む限り、それを手助けするハッキング開発チームは存在し続けるでしょう。
セッションハイジャックを防ぐにはどうすればよいですか?
多くの最新ブラウザには、セッションハイジャック保護機能が組み込まれています。Webにアクセスするたびに最新のソフトウェアを使用することは、データを安全に保つための迅速かつ簡単な方法です。
その他の4つのセキュリティオプションは次のとおりです。
- すべてのトラフィックを暗号化します。 サーバーとの間のすべての通信を完全に暗号化することで、第三者による監視や盗難を防止します。
- VPNを使用する。ご自身または従業員が公共の場で業務を行う必要がある場合は、VPNで通信を保護するようにしてください。公衆Wi-Fiはあまりにも危険すぎます。
- セッションCookieをランダム化する。サーバーでランダムなセッションCookieを発行するように設定することで、ハッカーによる次の値の推測を困難にします。
- セッションを速やかに終了する。セッションが終了したら、ログアウトしてください。サイト管理者は、ユーザーが一定期間操作を行わなかった場合に、そのユーザーをログオフさせるようにしてください。
よくある質問(FAQ)
セッションハイジャックとセッションスプーフィングの違いは何ですか?
実際のリスクは大きく異なります。セッションハイジャックでは、攻撃者はアクティブなセッションをリアルタイムで共有します。つまり、ユーザーがログインしている間に攻撃者がユーザーになりすまして活動できるということです。被害が発生するまで気付かれない可能性もあります。セッションのなりすましでは、攻撃者はお客様になりすまして新しいセッションを開始しますが、お客様自身のセッションが直接中断されることはありません。
攻撃者はどのようにしてセッショントークンを窃取するのでしょうか?
攻撃者は通常、ユーザーのデバイスとサーバーの間のギャップを悪用します。その手口としては、クロスサイトスクリプティング(XSS)による悪意のあるコードの挿入、マルウェアの設置、あらかじめ設定されたトークンでユーザーを認証させる手口(セッション固定化攻撃)、暗号化されていないネットワークトラフィックの受動的な監視による移動中のトークンの取得などがあります。
公衆Wi-Fiがセッションのセキュリティにとって特に危険な理由とは?
公衆WiFiではトラフィックが暗号化されていない場合があり、ハッカーがスニッフィングツールを使ってユーザーのデバイスとサーバー間でやり取りされるデータを簡単に読み取れてしまいます。これにより、セッションサイドジャッキングとセッションスニッフィングの両方の攻撃が可能になり、攻撃者はユーザーに気付かれずにセッションIDを不正に取得できます。
Webサイトの管理者がセッションハイジャックのリスクを軽減するために実行できる対策には、どのようなものがありますか?
Webサイトの管理者は、サーバーと送受信されるすべてのトラフィックを完全に暗号化し、公共の場所で作業する従業員にVPNの使用を義務付け、ランダムなセッションCookieを発行するようにサーバーを設定し、一定時間操作がないユーザーを自動的にログオフさせることで、セッションハイジャックのリスクを軽減できます。
セッションハイジャックはモバイルデバイスに影響しますか?
はい。DroidSheepなどのツールはモバイルセッションを標的とするように特別に設計されており、モバイルデバイスもセッションハイジャックの影響を免れないことを意味します。モバイルデバイスでは、暗号化された接続を使用し、公衆WiFiを避けることが重要な予防策となります。
最新のブラウザを使用すると、セッションハイジャックの防止に役立ちますか?
はい。最近のブラウザの多くは、セッションハイジャックに対する保護機能を内蔵しています。Webにアクセスするたびに最新のソフトウェアを使用するようにすれば、簡単かつ迅速にデータを保護できます。
参考文献
OWASPトップ10。OWASP。
FiresheepがWebセッションをハイジャックする仕組み。(2010年11月、Dark Reading)
Android用WhatsApp Sniffer Apkをダウンロード。WhatsApp Sniffer Apk。
セッションハイジャックとは?その防止策を解説(EC-Council)