2.2. 既知のプロキシー
Automation Controller を REMOTE_HOST_HEADERS = ['HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR', 'REMOTE_HOST'] で設定している場合は、X-Forwarded-For の値が、Automation Controller の前にあるプロキシーまたはロードバランサ―から送られていることを前提としています。プロキシー/ロードバランサーを使用せずに Automation Controller に到達できる場合、またはプロキシーがヘッダーを検証しない場合は、X-Forwarded-For の値が偽造されて発信元の IP アドレスを偽装する可能性があります。
HTTP_X_FORWARDED_FOR 設定で REMOTE_HOST_HEADERS を使用すると、脆弱性が発生します。
これを回避するには、許可する既知のプロキシーのリストを設定します。
手順
-
ナビゲーションパネルから、
を選択します。 Proxy IP Allowed List フィールドに、サービスがカスタムリモートヘッダー値を信頼すべきプロキシー IP アドレスのリストを入力します。
注記既知のプロキシーのリストに含まれていないロードバランサーおよびホストの場合、要求が拒否されます。
2.2.1. 既知のプロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller に既知のプロキシーのリストを設定するには、System Settings ページの Proxy IP Allowed List フィールドにプロキシー IP アドレスを追加します。
手順
-
ナビゲーションパネルから、
を選択します。 Proxy IP Allowed List フィールドに、次の例の構文を使用して、Automation Controller への接続を許可する IP アドレスを入力します。
Proxy IP Allowed List のエントリーの例
[ "example1.proxy.com:8080", "example2.proxy.com:8080" ]重要-
Proxy IP Allowed List は、ヘッダー入力を適切にサニタイズすること、およびクライアントの実際の送信元 IP と同じ
X-Forwarded-For値を正しく設定することを、リスト内のプロキシーに要求します。Automation Controller は、Proxy IP Allowed List 内の IP アドレスとホスト名を利用して、X-Forwarded-Forに偽装されていない値を提供できます。 次の条件が すべて 満たされない限り、Remote Host Headers の項目として
HTTP_X_FORWARDED_FORを設定しないでください。- SSL Termination でプロキシー環境を使用している
-
プロキシーにより
X-Forwarded-Forヘッダーのサニタイズまたは検証が行われ、クライアントのなりすましを防止できる -
/etc/tower/conf.d/remote_host_headers.pyが信頼されたプロキシーまたはロードバランサーの送信元 IP のみを含むPROXY_IP_ALLOWED_LISTを定義している
-
Proxy IP Allowed List は、ヘッダー入力を適切にサニタイズすること、およびクライアントの実際の送信元 IP と同じ
- をクリックして設定を保存します。