セッションハイジャックとは?種類、事例、対策について解説
「Cookie(クッキー)」と聞くと、不気味なトラッキングCookieや迷惑な広告を連想するかもしれませんが、必ずしも悪意のあるものではありません。Cookieは、私たちのオンライン体験をより良くしてくれる存在でもあります。しかし、もし悪意のある第三者があなたのCookieを盗んだ場合、セッションハイジャックと呼ばれる悲惨なサイバー攻撃を受ける可能性があります。
目次
目次
Cookieは危険かつ一般的なセッションハイジャック攻撃の重要な要素であり、Cookieを盗まれると最も重要なデータがハッカーにさらされる可能性があります。無断でお金が使われたり、パスワードが盗まれたりと、セッションハイジャックは、気づかないうちに多くの被害をもたらします。この記事では、セッションハイジャックの仕組みと、被害に遭わないためにできる対策を紹介します。
セッションハイジャックとは?
セッションハイジャックとは、ハッカーが何らかの方法でターゲットのセッションIDやCookieを入手し、ターゲットになりすまして通信を行うというサイバー攻撃のことを指します。セッションハイジャックは、セッションIDの発行や管理に不備がある場合に起こることが多いです。
セッションハイジャックをより深く理解するには、セッションとセッションIDについて知る必要があります。ここからは、セッションとセッションIDについて詳しく説明していきます。
セッションとは?
セッションとは、通信の開始から終了までの一連のやり取りのことで、ウェブサイトのアクセス解析の指標としても使われています。
たとえば、ひとつのウェブサイト内で離脱せずに複数のページを閲覧したとします。この場合、通信の開始から終了までの一連のやり取りなので、1セッションとして考えられます。
セッションの仕組みを簡潔に説明すると、セッション情報をサーバーに蓄積し、複数のページで共有できるというものです。セッションの仕組みを活用している例として、ショッピングサイトで使われているカート機能がわかりやすいでしょう。カートに入れた商品の情報は、複数の商品ページを閲覧している間も保持されています。セッションにデータを登録しておくと、ユーザーが別の画面に移動しても同じデータを取得して利用することができるのです。
セッションIDとは?
セクションIDとは、ウェブサイトなどにアクセスするユーザーのセッションを識別するために、WebサーバーやWebアプリケーションが割り当てるIDのことです。このIDは、基本的にログイン時に付与され、ログアウトするまで維持されます。
セッションとCookieの違い
セッションもCookieも、情報を保存するために使われるという点では同じです。セッションとCookieの主な違いは、それぞれの保存場所です。Cookieはブラウザにのみ保存されるのに対し、セッションはブラウザだけでなく、サーバーにも情報が保存されます。
また、それぞれの保存期間も異なっていて、Cookieは永続的に情報が保存され続けるのに対し、セッションはユーザーがブラウザを閉じたりサイトを離れたりすると情報が消えるという特徴があります。さらに、セッションは無効化できませんが、クッキーは無効化可能というのも大きなポイントです。
セッションハイジャックの種類
セッションハイジャックの種類は、ハッカーが何を望んでいるかによって、以下の2つに分けられます。
- 能動的な攻撃:能動的な攻撃では、ハッカーがセッションを乗っ取り、あなたのデバイスがサーバーと通信するのを阻止して、最終的にあなたを追い出します。ハッカーはあなたになりすまして、あなたにしかできない行動をとるのです。セッションが行われているウェブサイトに応じて、ハッカーはあなたになりすまして、オンラインショッピングや、パスワードの変更、アカウントの復元などを行います。
- 受動的な攻撃:受動的な攻撃では、あなたがセッションから追い出されることはありません。代わりに、ハッカーはあなたのデバイスとサーバー間のデータトラフィックを観察し、機密情報を収集します。このようにして、あなたに気付かれることなく、パスワードやクレジットカードの詳細などの情報を抜き取るのです。
セッションハイジャック攻撃の手口
セッションハイジャック攻撃を行う方法は、かなり多くあります。ほとんどのセッションハイジャックの手口は、Webサーバーの脆弱性を利用していますが、ユーザー側のセキュリティ意識の低さを悪用するものもあります。
- サイドジャッキング:サイドジャッキングとは、安全でないネットワークを利用して、ユーザーのセッションIDを見つけ出すという手口です。ハッカーはスニッフィングソフトウェアを利用して、セキュリティが無防備なフリーWi-FiやSSL証明書のないウェブサイトを標的にします。
- セッションフィクセーション:セッションフィクセーションは、「セッション固定攻撃」とも言われる、ハッカーが作成した不正なセッションIDをターゲットに使用させるという方法です。フィッシング詐欺の手口で、ハッカーはセッションIDを組み込んだウェブサイトにアクセスさせるために、ターゲットに偽のリンクをクリックさせようとします。ターゲットが悪意のあるウェブサイトにアクセスすると偽のセッションIDが付与され、ハッカーはセッションを乗っ取ることができます。
- ブルートフォース:ブルートフォースは「総当たり攻撃」とも言われている手口で、最も時間がかかり、効果が薄い方法と考えられています。この攻撃では、ハッカーはターゲットのCookieを盗むことはありませんが、セッションIDを推測し、考えられる全てのパターンを試して、セッションを乗っ取ろうとします。
- クロスサイトスクリプティング:クロスサイトスクリプティングでは、ハッカーは正規のウェブサイトやアプリケーションの脆弱性を利用して悪意のあるコードを挿入します。ターゲットがウェブサイトにアクセスすると、スクリプトが起動し、ターゲットのCookieを盗んでハッカーに送信します。
- マルウェア:悪意のあるソフトウェアは、ターゲットのデバイス上で不正な操作を行ったり、ターゲットの個人データを盗んだりと、あらゆることを行います。マルウェアは、クッキーのハイジャックを実行し、その情報をハッカーに送信するためにも利用されます。
- IP偽装(IPスプーフィング):IP偽装とは、ハッカーが送信元のIPアドレスを変更して、ターゲットであるあなたになりすますという手口です。ウェブサイトに接続する際には、三者間のTCPハンドシェイクを行う必要がありますが、ハッカーがなりすましたIPでその途中に入り込むと、ウェブサーバーは最初からそれをあなただと思い込んでしまいます。
セッションハイジャックの攻撃を受けた場合、どうなるのか
セッションハイジャック攻撃を受けると、以下のような被害が想定されます。
- アカウントの登録情報が漏洩したり、改ざんされたりする。
- クレジットカードが不正に利用される。
- オンラインバンクから、資金が引き出される。
- 社内サーバー内のファイルが盗まれる。
- 社内ネットワークに不正アクセスされる。
セッションハイジャックを防ぐ方法
セッションハイジャックが成功するかどうかは、利用しているウェブサイトやアプリケーションのセキュリティにかかっています。しかし、自分自身でできる以下のような対策もあります。
- フリーWi-Fiの利用を避ける:無料の公衆Wi-Fiホットスポットは、サイバー犯罪者にとって理想的な場所です。フリーWi-Fiはセキュリティが甘い上、ハッカーは簡単に偽のWi-Fiスポットを作ることができます。言うまでもなく、公衆Wi-Fiスポットには、データトラフィック流出の被害者になりうるユーザーが密集しています。
- 安全ではないウェブサイトは利用しない:SSL証明書を設定していないウェブサイトは、ユーザーとウェブサイト間のトラフィックを暗号化できないため、ユーザーを危険にさらす可能性があります。ウェブサイトが安全かどうかを確認するには、URLの横に小さな鍵マークがあるかどうかを確認しましょう。鍵マークが表示されている場合は、SSLサーバー証明書が設定されています。
- マルウェア対策アプリを入手する:NordVPNの脅威対策Proなどのマルウェア対策は、不正な動作をしたり、情報を盗んだりする可能性のある悪意のあるソフトウェアを検出し、デバイスを保護します。
- ソフトウェアやアプリを慎重にダウンロードする:安全とわかっているソフトやアプリだけをダウンロードするようにしましょう。知らないうちに使用中の端末にマルウェアをダウンロードしないようにするには、作成者や提供元が不明なものは避け、公式ストアからのみインストールを行いましょう。
- 不明なリンクは開かない:見慣れないリンクをクリックするようにメッセージが表示されても、クリックしてはいけません。そのリンクは、あなたのデバイスをマルウェアに感染させ、情報を盗むためのフィッシングの手口かもしれません。
- クライアント証明書を活用する:クライアント証明書とは、個人や組織を認証して発行されるデジタル証明書のことで、SSL証明書がウェブサイトの所有者の存在を認証するのに対し、クライアント証明書は、システムやサービス、メールなどを利用するユーザーが正当なユーザーであること
- VPNを導入する:VPNとは、ネット上のトラフィックを暗号化して、安全でプライベートな接続を確立する仕組みです。VPN保護により、第三者はあなたの通信情報を覗き見することができなくなります。