セッションハイジャックとは? セッションのプライバシーを確保する方法
公開: 2021-07-13ログインとログアウトの間に多くのことが発生する可能性があります。
攻撃者は、アカウントへの不正アクセスやデータの悪用が可能なセッションを探します。 安全な環境でログインの詳細を認証し、セッション ハイジャック攻撃から身を守る必要があります。
使用できます Web アプリケーション ファイアウォール 受信トラフィックの異常を検出し、潜在的に悪意のあるトラフィックをブロックします。 しかし、堅牢なセキュリティ防御を修正するには、セッション ハイジャックの詳細、その種類、および攻撃者がユーザー アカウントに侵入するために使用する可能性のあるツールを理解することが重要です。
セッションハイジャックとは?
セッション ハイジャックは、Cookie ハイジャックとも呼ばれ、セッションがまだ進行中にセッション ID を取得または生成することによって、ユーザーのセッションを制御するプロセスです。
攻撃者は、クロスサイト スクリプティング (XSS)、ブルート フォース、リバース エンジニアリング、またはその他のさまざまな方法を使用して、セッション Cookie を入手し、ユーザー アカウントへの不正アクセスを取得する可能性があります。
セッションは、Web アプリケーションなどのサービスにログインすると開始され、ログアウトすると終了します。 Hypertext Transfer Protocol (HTTP) はステートレス プロトコルです。つまり、以前のリクエストを参照せずに各リクエストを個別に転送するため、ユーザーは Web ページを表示するたびに認証を受ける必要があります。 ユーザーが毎回ログインするように求められるのを避けるために、サーバーはセッション ID を割り当てて、認証後にシームレスな Web エクスペリエンスを提供します。
攻撃者は、ターゲットのセッション ID を盗もうとするか、ターゲットを騙して悪意のあるリンクをクリックさせ、セッション ハイジャック攻撃のために事前に作成されたセッションに誘導します。 ユーザーがサーバーで認証されると、攻撃者はセッションを乗っ取り、サーバーをだましてセッションが有効であると見なさせることができます。
攻撃者がセッション Cookie を標的にする場合、それは伝送制御プロトコル (TCP) セッション ハイジャックではなく、Web アプリケーション セッション ハイジャックに関連しています。 TCPは、信頼性の高いパケット転送を保証するために IP の上で使用されるトランスポート プロトコルです。 Web アプリケーションは、認証の成功後にセッション Cookie を返します。攻撃者はこれを悪用してセッションをハイジャックします。 ユーザーのデバイスとサーバー間の TCP 接続とは関係ありません。
セッションハイジャックの方法
通常、攻撃者は、セッション ハイジャックを実行する際にいくつかの方法を選択できます。 それらを個別に、または組み合わせて使用して、ユーザー アカウントを乗っ取り、悪意のある活動を行うことができます。
クロスサイト スクリプティング
クロスサイト スクリプティング (XSS)攻撃では、悪意のあるハッカーがターゲットのコンピューターをだまして、サーバーに属する信頼できるコードになりすましたコードを実行させます。 これにより、攻撃者は Cookie のコピーを取得して、悪意のあるアクションを実行できます。 通常、Web ページには JavaScript が埋め込まれています。 適切な保護手段がなければ、 アプリケーション セキュリティ ツールであり、スクリプトが実行されると、ユーザーの機密情報が明らかになります。
サーバーがセッション Cookie にHTTPOnly属性を設定しない場合、スクリプトはそれらを攻撃者にさらす可能性があります。
マルウェアの注入
いくつか マルウェア またはトロイの木馬は、ブラウザの Cookie を盗み、ユーザーの知らないうちに悪意のあるアクションを実行するようにプログラムされています。 たとえば、ユーザーが悪意のある Web サイトにアクセスしたり、迷惑なリンクをクリックしたりすると、マルウェアはネットワーク トラフィックをスキャンし、セッション Cookie を収集して悪意のある人物に送信します。 ローカル ストレージにアクセスできる攻撃者は、ブラウザーの一時的なローカル ストレージ (Cookie jar) からセッション キーを盗んだり、サーバーまたはユーザーのコンピューターのファイルまたはメモリの内容を取得したりできます。
強引な
攻撃者はブルート フォース攻撃を実行して、ユーザーのセッション キーを推測できます。 アプリケーションがシーケンシャルまたは予測可能なセッション キーを使用すると、セッションがハイジャックに対して脆弱になります。 これは、以前は推奨される方法でしたが、最新のアプリケーションでは、セッション ID が長く、ランダムに生成されるため、ブルート フォース攻撃に対する耐性が大幅に向上します。
セッションサイドジャッキング
セッション サイド ジャッキングでは、攻撃者はパケット スニッフィングを利用してネットワーク トラフィックを読み取り、セッション Cookie を盗みます。 通常、Web サイトは認証ページで Secure Sockets Layer/Transport Layer Security (SSL/TLS) 暗号化を使用します。 それでも、認証後にサイト全体で使用しないものもあり、攻撃者がサーバーと Web ページ間で交換されるデータを傍受できるようになります。
攻撃者がセッション Cookie を手に入れると、ユーザーのセッションをハイジャックして悪意のある操作を実行できます。 たとえば、セキュリティで保護されていない WiFi に接続しているユーザーを標的とする悪意のある人物は、他のノードとアクセス ポイント間で共有されているデータやトラフィックを簡単に読み取ることができます。
セッション固定
攻撃者は、偽装したセッションを作成し、ユーザーをだまして脆弱なサーバーへの認証を行わせることがあります。 たとえば、攻撃者は以下を使用できます。 ソーシャルエンジニアリング (フィッシング) または同様の方法で、既知のセッション Cookie を使用して細工されたセッションに移動するリンクをクリックするようにユーザーを誘導します。 ユーザーが認証されると、攻撃者は既知のセッション キーを使用してユーザーのセッションを乗っ取ることができます。
攻撃者は、非表示の固定セッション ID を含む事前に作成されたログイン フォームにユーザーを入力させることもできます。
セッションハイジャック攻撃のレベル
セッション ハイジャック攻撃には 2 つのレベルがあります。 ネットワーク層への攻撃が成功すると、アプリケーション レベルで実際のユーザーを悪用するための情報が攻撃者に与えられるため、これらの攻撃は相互に関連している可能性があります。
トランスポート層の乗っ取り
トランスポート層のハイジャックは、攻撃者が Web サーバーとユーザーの間のデータ交換を傍受し、その間に設定された通信チャネルを妨害する TCP 接続で発生します。 次に、悪意のある人物が、正規のものに偽装した悪意のあるデータ パケットをクライアントとサーバーの両方に送信し、ユーザー セッションを乗っ取ります。
トランスポート レイヤー ハイジャックの一般的な方法は、 IP スプーフィングです。攻撃者は、信頼できる IP アドレスを装った偽の IP アドレスを使用して、ネットワーク上のコンピューターと通信します。 これらは、ソースルート IP パケットを使用して、2 つのノード間のアクティブな通信を傍受します。 IP スプーフィングは、TCP セッションの開始時の 1 回限りの認証を過度に利用します。
アプリケーション層の乗っ取り
アプリケーション層のハイジャックでは、ユーザーがアプリケーションに対して認証された後、攻撃者がユーザーのセッション ID を盗みます。 中間者攻撃は、ハイジャッカーがクライアントとサーバー間の通信チャネルを傍受するアプリケーション層セッション ハイジャックの典型的な例です。
プロキシ攻撃も、アプリケーション層のハイジャックに該当します。 攻撃者は、定義済みのセッション ID を使用してトラフィックをプロキシ サーバーに送信し、これらの攻撃中に通信を傍受します。
3 種類のセッション ハイジャック
セッション ハイジャックには、既存のセッションでセッション Cookie を推測または傍受することや、事前に作成されたセッションで認証するようにユーザーを騙すことが含まれます。 セッションハイジャック攻撃には 3 つのタイプがあります。
1.アクティブ
アクティブ セッション ハイジャックでは、攻撃者がネットワーク内のアクティブな接続を乗っ取ります。 すべてのデバイスをミュートし、クライアントとサーバー間の通信チャネルを引き継ぐことができます。 次に、サーバーとユーザーのデバイスの間の関連付けを手放します。
攻撃者がクライアントとサーバー間の通信を妨害する方法はいくつかあります。 通常、侵入者は大量のトラフィックを送信して有効なセッションを攻撃し、サービス拒否 (DoS)攻撃を引き起こします。
2.パッシブ
パッシブ セッション ハイジャックは、攻撃者がクライアントとサーバー間の通信を監視する点を除いて、アクティブ セッション ハイジャックと似ています。 攻撃者は実際のユーザーをセッションからブロックしませんが、進行中の通信交換を監視します。
受動的攻撃の主な動機は、交換された情報を盗み、悪意のある目的に使用することです。
3.ハイブリッド
ハイブリッド セッション ハイジャック攻撃は、アクティブ攻撃とパッシブ攻撃の組み合わせです。 ハイブリッド攻撃では、攻撃者は問題が見つかるまでネットワーク トラフィックを監視し、その後セッションを乗っ取って正当なユーザーになりすますことを開始します。
ハイブリッド攻撃はスプーフィングに依存しており、さらに次のタイプに分類されます。

- ブラインド スプーフィング攻撃では、攻撃者がセッションを中断することなく被害者を標的にします。 サーバーとユーザーの間で交換されるデータ パケットをキャプチャし、TCP パケット シーケンスをクラックしようとします。
- 非ブラインドスプーフィング攻撃には、サーバーとユーザー間のトラフィックを監視して、その後の協定を予測し、その TCP シーケンス範囲を予測することが含まれます。 攻撃者はアプリケーション レベルでセッションを乗っ取り、盗まれたり予測可能なセッション トークンを使用して新しいセッションを形成します。
セッション ハイジャック vs. セッション スプーフィング vs. セッション リプレイ
セッション ハイジャックとセッション スプーフィングの主な違いは、攻撃のタイミングです。
ユーザーがアプリケーションで自分自身を認証すると、セッション ハイジャック攻撃が実行されます。 この攻撃により、アプリケーションでラグや異常な動作が発生する可能性があります。 ログインしている間に攻撃者がデータを悪用するためです。アプリケーションが頻繁にクラッシュする場合は、セッション ハイジャック攻撃を示唆している可能性があります。
セッション スプーフィングでは、被害者は攻撃に気づきません。 攻撃者は、盗んだまたは偽造したセッション ID を使用して、認証の実行をユーザーに依存せずに本物のユーザーになりすます可能性があります。
セッションの再生は少し異なります。
セッション リプレイでは、攻撃者はすでにセッション Cookie (セッション ハイジャックから収集されたもの) を持っており、好きなように使用できます。 被害者をだまして、以前は有効だったリクエストを再送信させる可能性があります。たとえば、最初に 1 単位でリクエストした商品を複数の数量で購入するなどです。
セッション ハイジャック ツール
攻撃者がセッション ハイジャック攻撃を実行するのに役立つツールがいくつかあります。 あなたはでそれらを使用することができます 侵入テスト システムとアプリケーションが攻撃に対して耐性があるかどうかを確認します。
攻撃の実行に使用される一般的なセッション ハイジャック ツールの一部を次に示します。
* これらのツールは、セッション ハイジャックに対してシステムをテストおよび強化するための倫理的な目的でのみ使用する必要があります。
ハムスターとフェレット
Hamster は、ネットワークを通過するセッション Cookie をキャプチャする Ferret によって収集されたデータを操作するプロキシ サーバーのように機能します。
これは、によって提案されたハムスターの使用例です。 カリツール:
root@kali:~# ハムスター
--- HAMPSTER 2.0 サイドジャッキツール ---
プロキシ http://127.0.0.1:1234 を使用するようにブラウザを設定します
デバッグ: set_ports_option(1234)
デバッグ: mg_open_listening_port(1234)
プロキシ: 127.0.0.1:1234 でリッスン
開始スレッド
Tサイト
T-Sightは当初、Windows プラットフォームで実行するネットワーク監視ツールとして開発されました。 ただし、ネットワークを監視している間、ネットワーク全体のすべての通信がリアルタイムでコピーされ、正確なデータ送信出力が提供されるため、セッションを乗っ取ることができます。 このため、T-Sight の開発者である Engrade は現在、事前に決定された IP アドレスにのみソフトウェア ライセンスを提供しています。
ジャガーノート
Juggernautは、セッション ハイジャック攻撃を実行するために悪意を持って使用できるネットワーク スニッフィング ツールです。 Juggernaut を構成して、ローカル エリア ネットワーク (LAN) 内のすべてのネットワーク トラフィックを監視したり、特定のセッション トークンをリッスンしたりすることができます。 被害者がログインを試みた後、ネットワーク トラフィックを記録するように設定できます。
Juggernaut は、すべてのネットワーク トラフィックを巨大なログ ファイルに記録する通常のネットワーク スニファーとは異なります。 Juggernaut は、攻撃者がすべての TCP ベースの接続を監視し、さらにはセッションをハイジャックできるようにする接続データベースを維持しています。 セッション ハイジャック ツールは、パケット アセンブリの組み込み機能も提供します。 攻撃者は、この機能を使用してパケットを断片化し、侵入検知システムやファイアウォールを回避します。
Linux コマンド ラインから Juggernaut を実行する場合の使用例を次に示します。
Juggernaut ?) ヘルプ 0) プログラム情報 1) 接続データベース 2) 接続のスパイ 3) 接続のリセット 4) 自動接続リセット デーモン 5) シンプレックス接続ハイジャック 6) 対話型接続ハイジャック 7) パケット アセンブリ モジュール 8) スーパー シークレット オプション番号8 9) ステップダウン
- 接続データベースは、アクティブな接続を示します。
- 接続をスパイすると、開いている通信チャネル全体のネットワーク トラフィックを監視でき、ログを保存するオプションが提供されます。
- 接続をリセットすると、RST パケットがソースに送信されてセッションが終了します。
- 自動接続リセット デーモンを使用すると、ホストがセッションを確立しようとするたびに、ホストベースの IP アドレスとソースへの RST パケットを構成できます。
- シンプレックス接続ハイジャックを使用すると、ターゲットに対して 1 つのコマンドを入力できます。 攻撃者はこれを使用して検出を防ぎます。
- インタラクティブな接続ハイジャックにより、完全なセッション ハイジャックを実行し、大量の ACK ストームを作成できます。
- パケット アセンブリ モジュールを使用すると、独自のパケットを作成できます。
- Souper sekret オプション番号 8には機能がありません。
- ステップダウンすると、プログラムを終了できます。
これらは、攻撃者がセッション ハイジャック攻撃を実行するために使用するツールの一部です。
Hunt、TTY-Watcher、IP-Watcher、1164、Wireshark、SSHMITM、Hjksuite、C2MYAZZ など、攻撃者がユーザー セッションを悪用するために使用する同様のツールに対して、ネットワークとシステムを強化する必要があります。
セッションハイジャックを防ぐ方法
セッション ハイジャックは、業界で何年にもわたって高い評判を築き、忠実なサービスを提供してきたために発生した金銭的損失や評判の損失など、組織に悲惨な結果をもたらす可能性があります。
ビジネスは、セッション ハイジャック攻撃の標的にならないように、戦略的なセキュリティ対策を講じる必要があります。 これらの措置には以下が含まれます。
- Web ページでのすべてのデータ送信の暗号化
- Web ページに Hypertext Transfer Protocol Secure (HTTPS) 認証を実装する
- ブラウザの定期的な更新とパッチ適用
- DDoS 防御ソフトウェアや 欺瞞技術
- すべてのセッションで慎重にログインおよびログアウトする
- 社内のセッション管理システムを作成する代わりに、Web フレームワークを組み込む
- 認証後にセッション キーを再生成して、ハッカーがログイン中に生成されたセッション ID を悪用するのを防ぎます
- ユーザーの通常の IP アドレスやアプリケーションの使用傾向を確認するなどの追加チェックを含めることで、本人確認を強化します
- 安全なワイヤレス ネットワークのみを使用し、公共の WiFi での操作は避けてください
- 仮想プライベート ネットワーク (VPN) ソフトウェアを使用して IP アドレスをマスクし、セッションを保護します
サイト全体で HTTPS を使用することは、間違いなく最も重要な予防メカニズムです。 パフォーマンスの問題が心配な場合は、Web サイトのログイン ページやその他の機密領域に SSL を実装できます。 もう 1 つの重要な予防策は、セッション Cookie に保存されているセッション値を暗号化することです。
セッションを保護する
セッション ハイジャックは厄介な場合があります。 セッション ハイジャック攻撃から身を守り、アカウントとデータを保護するために、積極的に適切な防御メカニズムを設定してください。
ハッカーが組織の防御境界を突破するための新しい方法を絶えず開発しているため、100% のセキュリティを確保することはさらに困難になる可能性があります。
インシデント対応の詳細と、攻撃者がアカウントやデータにアクセスした場合のサイバー インシデントの管理方法について説明します。