ハッカーがあなたの登録情報を盗むことなく、あなたに代わって銀行振込やオンライン購入を行うことができることをご存知ですか?
当社は Cookie を追跡や迷惑なオンライン広告と関連付けていますが、Cookie には検索クエリも保存されるため、ユーザー名とパスワードを入力せずに Web サイトにアクセスできるようになります。
ただし、誰かが Cookie を傍受すると、セッション ハイジャックと呼ばれる壊滅的なサイバー攻撃につながる可能性があり、機密データが攻撃者の手に危険にさらされる可能性があり、何が起こったのかを知る前に多大な損害を与える可能性があります。
それが何なのか、そしてどうすれば防ぐことができるのかを見てみましょう!
セッションハイジャックとは何ですか?
セッション ハイジャックでは、攻撃者は、Web サーバー、Telnet セッション、またはその他の TCP ベースの接続など、ユーザーとホストの間に確立されたセッションを傍受し、乗っ取ります。 Web サイトまたはアプリケーション (ソーシャル ネットワーキング Web サイトなど) にログインすると、セッションが開始されます。
アカウント内にいる間、プロフィールを確認している間、またはスレッドに参加している間は継続され、システムからログアウトすると終了します。しかし、Web サーバーは、ユーザーが行うすべてのリクエストが実際にユーザーからのものであることをどのようにして知るのでしょうか?
ここで Cookie が登場します。ログイン後、資格情報を Web サーバーに送信します。これは、あなたが誰であるかを確認し、セッション中に添付される Cookie を使用してセッション ID を提供します。誰かのプロフィールにアクセスするたびにアプリケーションからログアウトする必要がなく、ページを更新してもオンライン ストアがショッピング カートに入れたものを記憶しているのはこのためです。
ただし、攻撃者が特別なセッション管理手法を使用したり、Cookie を盗んだりすると、セッションをハイジャックされる可能性があります。したがって、Web サーバーをだまして、リクエストが許可されたユーザーから送信されたものであると信じ込ませることができます。
セッション ハイジャックの現象は 2000 年代初頭に有名になりましたが、依然としてハッカーによって使用される最も一般的な手法の 1 つです。
最近の例としては、今年 FBI の最重要指名手配リストの一部となった Lapsus$ Group があります。 InfoStealer Maleware 感染を使用してセッションをハイジャックします。
同様に、 GenesisStore は 、侵害された Cookie データを販売する同名のグループが運営する招待制のストアで、そのリストには 400,000 を超えるボットが含まれています。
セッションキャプチャのタイプ
セッションハイジャックは、加害者の目的に応じて、主に 2 つのカテゴリに分類できます。
アクティブ: アクティブな攻撃では、攻撃者がセッションを乗っ取り、リソースへの正当なクライアントの接続を奪います。セッションのサイトに応じて、ハッカーはオンラインで購入したり、パスワードを変更したり、アカウントを回復したりすることができます。アクティブな攻撃の一般的な例としては、ブルート フォース攻撃、XSS、さらには DDoS などがあります。
パッシブ : パッシブ攻撃では、攻撃者はセッションを乗っ取ったり変更したりしません。代わりに、デバイスとサーバー間のデータ トラフィックを静かに監視し、すべての機密情報を収集します。通常、IP スプーフィングとマルウェア インジェクションは、パッシブ インジェクション攻撃の実行に使用されます。
セッションハイジャックはどのように機能しますか?
HTTP はステートレス プロトコルです。つまり、サーバーにはクライアントの操作の記憶がありません。新しい HTTP リクエストはそれぞれ新しい作業単位と同時に発生します。つまり、より簡単に言うと、サーバーはクライアントの以前のリクエストを記憶することなく、クライアントにページを提供します。
しかし、Web を閲覧すると、アプリケーションはクライアントが誰であるかを理想的には (十分すぎるほどに) 知っていることがわかります。サーバーのこの「メモリ」のおかげで、Web サイト、オンライン銀行、Web メール サービスなどの最新の予約領域を作成することが可能になります。
これを行うために、HTTP ステートフルのようなステートレス プロトコルである Cookie を作成する付属物が生まれました。
ステートフルセッション
ログインすると、ステートフル セッションを使用する Web アプリケーションはセッション Cookie をドロップします。これは、クライアントを追跡するためにこの Cookie に依存していることを意味します。 Cookie 内には、クライアントの認識を可能にする一意のコードが保存されます。次に例を示します。
SESSIONID=ACF3D35F216AAEFC
上記の一意のセッション ID またはコードを持つ人は誰でも、サーバーの認証されたクライアントになります。以下の図に示すように、攻撃者がこの識別子を取得できた場合、正当なセッションを盗聴したり、セッションを完全に乗っ取ったりすることによって、最初に被害者に対して検証されたセッションを悪用する可能性があります。この識別子は通常、URL、フォームの隠しフィールド、または Cookie に埋め込まれます。
ステートレスセッション
Web の進化に伴い、セッション Cookie を使用せずにサーバーの「メモリ」を管理するソリューションが登場しました。フロントエンドとバックエンドが十分に分離されており、API 経由でのみ通信する Web アプリケーションでは、最適なソリューションは、フロントエンドがバックエンドによって提供される API を使用できるようにする署名付きトークンである JWT (JSON Web トークン) である可能性があります。
通常、JWT はブラウザの sessionStorage に保存されます。これは、タブが閉じるまでクライアントがアクティブにしておくメモリ領域です。したがって、新しいタブを開くと、(Cookie の場合とは対照的に) 新しいセッションが作成されます。
クライアントの識別トークンを盗むと、ユーザーのセッションを盗み、セッション ハイジャック攻撃を実行できるようになります。しかし、そのトークンを盗むにはどうすればよいでしょうか?
現在、ハッカーが最も使用している手法は次のとおりです。
#1. セッションサイドジャッキング
この方法では、安全でないネットワークを使用してセッション ID を見つけます。攻撃者はスニッフィング (特別なソフトウェア) を使用し、通常、セキュリティが低いことで知られる公共 Wi-Fi や SSL 証明書のない Web サイトをターゲットにします。
#2. セッションの固定
被害者は、攻撃者が作成したセッション ID を使用します。これは、セッション ID を「修正」するフィッシング攻撃 (悪意のあるリンク経由) によって行われる可能性があります。
#3. 強引な
最も時間がかかり、非効率な方法です。この攻撃中、ハッカーは Cookie を盗みません。代わりに、考えられるすべての組み合わせを試してセッション ID を推測します。
#4. XSS またはクロスサイト スクリプティング
ハッカーは、Web サイトやアプリケーションの脆弱性を悪用して、悪意のあるコードを挿入します。ユーザーがサイトにアクセスすると、スクリプトが起動され、ユーザーの Cookie が盗まれ、攻撃者に送信されます。
#5. マルウェアの注入
悪意のあるソフトウェアは、デバイス上で不正なアクションを実行して個人情報を盗む可能性があります。また、Cookie を傍受して攻撃者に情報を送信するためにもよく使用されます。
#6. IPスプーフィング
サイバー犯罪者は、パケットの送信元 IP アドレスを変更して、パケットがあなたから送信されているかのように見せかけます。偽の IP により、Web サーバーはそれがユーザーであると認識し、セッションがハイジャックされます。
セッションハイジャックを防ぐには?
セッション ハイジャックの可能性は通常、使用する Web サイトまたはアプリケーションのセキュリティに起因します。ただし、自分自身を守るために実行できる手順があります。
- 無料のホットスポットはサイバー犯罪者にとって最適な場所であるため、公共 Wi-Fi は避けてください。通常、セキュリティが不十分で、ハッカーによって簡単になりすまされる可能性があります。言うまでもなく、データトラフィックが常に侵害される潜在的な被害者で常にいっぱいです。
- SSL 証明書を使用していないサイトではトラフィックを暗号化できないため、脆弱になります。 URL の横にある小さな南京錠を探して、サイトが安全かどうかを確認します。
- マルウェア対策アプリケーションをインストールして、個人情報を盗む可能性のあるマルウェアやネズミを検出してデバイスを保護します。
- 公式アプリ ストアまたは Web サイトを使用してアプリをダウンロードし、マルウェアのダウンロードを避けてください。
- 見覚えのないリンクをクリックするよう求めるメッセージを受け取った場合は、クリックしないでください。これは、デバイスに感染して個人情報を盗む可能性のあるフィッシング攻撃である可能性があります。
セッション ハイジャック攻撃に対してユーザーができることはほとんどありません。しかし、逆に、アプリケーションは、別のデバイスが同じセッション識別子で接続していることを認識できます。そして、それに基づいて、次のような緩和戦略を設計できます。
- 登録されたパラメータの変更を検出するために、接続されたデバイスの技術的なフィンガープリントまたは特性を各セッションに関連付けます。この情報は、完全に暗号化されて Cookie (ステートフル セッションの場合) または JWT (ステートレス セッションの場合) に保存される必要があります。
- セッションが Cookie ベースの場合は、HTTPOnly 属性を持つ Cookie を削除して、XSS 攻撃の場合にアクセスできないようにします。
- 侵入検知システム (IDS)、侵入防止システム (IPS)、またはネットワーク監視ソリューションを構成します。
- 一部のサービスは、ユーザーの身元に対して二次チェックを実行します。たとえば、Web サーバーはリクエストごとに、ユーザーの IP アドレスがそのセッション中に最後に使用された IP アドレスと一致するかどうかを確認できます。ただし、これは同じ IP アドレスを共有する誰かからの攻撃を防ぐことはできず、ブラウジング セッション中に IP アドレスが変更される可能性があるユーザーにとってイライラする可能性があります。
- あるいは、一部のサービスはリクエストごとに Cookie の値を変更します。これにより、攻撃者が活動できる範囲が大幅に短縮され、攻撃が発生したものの他の技術的な問題が発生する可能性があるかどうかを特定しやすくなります。
- ユーザー セッションごとに異なる多要素認証 (MFA) ソリューションを使用します。
- 最新のパッチとセキュリティ更新プログラムを適用して、すべてのシステムを最新の状態に保ちます。
よくある質問
セッション ハイジャックではユーザーになりすますのに対し、スプーフィングではユーザーを置き換えます。ここ数年、一部のセキュリティ アナリストは後者をセッション ハイジャックの一種として特徴付け始めました。
最後の言葉
セッション ハイジャックは、ハッカーがセッション トークンまたは Cookie を使用して、本物のユーザーになりすましてサーバーと通信できる方法です。近年、セッションハイジャック攻撃の頻度が増加しています。したがって、このような攻撃を理解し、予防策に従うことがますます重要になっています。しかし、テクノロジーが発展するのと同じように、攻撃もより洗練されています。したがって、セッション ハイジャックに対する積極的な軽減戦略を作成することが不可欠です。
自分のデータがダークウェブ上でどれくらいの価値があるのか知りたいと思うかもしれません。