バランサーをバイパスするDDoS攻撃:Cookieを保護してください!

ITインフラストラクチャのセキュリティを分析するプロセスでは、さまざまなネットワーク機器を使用する必要があります。 よく知られたデバイスがあり、比較的まれです。 まれに発生するロードバランサーを区別できます。 今日は、F5 BIG-IPバランサーセッションのCookieサポートメカニズムを紹介します。 このメカニズムの特徴は、指定された負荷分散アルゴリズムをバイパスして、攻撃者がシステムを攻撃できることです。

画像

ロードバランサーとは何ですか? これは、サーバー間でアプリケーショントラフィックを分散するネットワークデバイスであり、指定したルールに従ってその特性を制御および変更することもできます。 Webアプリケーションを使用する場合、同じサーバーがクライアントセッションを提供する必要があります。 これを行うために、BIG-IPバランサーは、クライアントにサービスを提供する特定のWebサーバーのアドレスを含むセッション情報を監視および保存します。 この情報は、1つのセッションで同じWebサーバーにクライアント要求を送信するために使用されます。

BIG-IPは、Cookieの永続性、ハッシュの永続性、宛先/ソースアドレスの永続性、SSLの永続性など、セッションをサポートするためのいくつかの方法を提供します。 HTTPトラフィックの場合、ほとんどの場合、Cookieの永続化メソッドが使用されます。 これには、HTTP Cookie挿入、HTTP Cookieリライト、HTTP Cookieパッシブ、およびCookieハッシュの4つのタイプが含まれます。 HTTP Cookie挿入のタイプが最も一般的です。これは、他とは異なり、各Webサーバーが特定のCookieを送信する必要がなく、バランサーで自動的に生成されるためです。

クライアントに送信されたCookieに含まれる情報を見てみましょう。

画像

Cookie名は、BIGipServer <プール名>として形成されます。 クライアントは、BIG-IPバランサーの使用とサーバープールの名前に関する情報をすぐに受信します。

Cookieを見てみましょう。 サーバーのIPアドレス(4225695754)とそのポート(20480)の逆10進表現が含まれています。
IPアドレスとポートを使い慣れた形式に復元するには、2つの方法があります。

1. IPアドレスを処理する10進Cookie値を取得し、16進形式FBDF000Aに変換します。

バイトを分割し、逆の順序で並べます:0A00DFFB。

バイトを10進形式に変換します。各バイトはIPアドレスのオクテット10.0.223.251を開きます。

同じ原理で、ポートをデコードします(2バイト値が含まれています):

20480→5000→0050→80

2.コマンドラインで“ping 4225695754”入力し“ping 4225695754” 。 出力には、IP:251.223.0.10があります。

最後から最初までオクテットを書くと、10.0.223.251が得られます。

ポート値ping 20480に対しても同様の操作を実行できます。

値は0.0.80.0になります。

ポートは2バイトで書き込まれるため、最初の2つの値は省略します。 2番目から2番目までの2つの極端なオクテットの値を書き込むと、080が得られます。

したがって、サービスを提供しているサービスのアドレス10.0.223.251:80を受け取りました。

プールメンバーがデフォルトルートドメインの一部ではない場合、異なるエンコードタイプが使用されます。

画像

内容:


セッションを終了し(デフォルトではブラウザが閉じられると期限切れになります)、サイトに再度アクセスすると、プール内のすべてのサーバーに関する情報を取得できます。 これは、データセンターの内部構造に関する情報の完全に不必要な開示です。

前述のように、負荷を正しく分散するためにバランサーがインストールされます。 ただし、Cookie値を操作することで、攻撃者はプールから接続するサーバーを選択し、指定された負荷分散アルゴリズムをバイパスできます。

実際にどのように見えるか見てみましょう:

1. Cookieの値を、必要な対応するサーバーに変更します。

画像

2.サーバーに戻り、バランサーが前の手順でCookieに設定した値に対応するサービスにリダイレクトすることを確認します。

画像

合理的な質問が発生します:自分を守る方法は?

BIG-IPはCookie暗号化をサポートしています。 暗号化は192ビットAES暗号で実行され、その後、CookieはBase64アルゴリズムを使用してエンコードされます。

暗号化されたCookieの例:

画像

Cookie暗号化を使用すると、攻撃者はWebサーバーのIPアドレスに関する情報を取得できなくなります。 ただし、これは特定のサーバーに対するDoS攻撃の可能性から保護するものではありません。 事実、暗号化されたCookieはクライアントに関連付けられていないため、Cookieを使用して、複数のソース(ボットネットなど)からサーバーを攻撃することができます。

この記事の冒頭のチャートは、BIG-IPバランサーとセッションのCookieサポートを使用して、100のランダムなWebサイトから収集された統計を示しています。 これらの統計によると、これらのサイトのほとんどの所有者は、内部インフラストラクチャに関するデータを隠すための追加のセキュリティ設定を気にしません。

投稿:キリルプザンコフ、ポジティブリサーチセンター

Source: https://habr.com/ru/post/J244819/


All Articles