HTTPoxy - Go アプリケーションは影響を受けますか?

Solution Verified - Updated -

Environment

Red Hat Enterprise Linux 7.x

Issue

Go を CGI モードで使用する場合、この問題の影響を受けます。Go の CGI スクリプトが HTTP_PROXY 環境編集を使用して、後続の HTTP リクエストの送信 HTTP プロキシーを設定する場合や、スクリプトがこの動作を公開するモジュールやライブラリー (Go の http モジュールなど) を使用する場合、Go の CGI スクリプト内から発生する後続の HTTP トラフィックはすべて攻撃者が制御する外部プロキシーを介してリダイレクトされる可能性があります。

これは、影響する Go の CGI スクリプトが、HTTP_PROXY 環境変数を通じて受信 HTTP リクエストの Proxy ヘッダーの内容を提供する CGI が有効な HTTP サーバーにデプロイされている場合のみ問題になることに注意してください。

Resolution

Red Hat は、HTTP Proxy ヘッダーの内容を HTTP_PROXY 環境変数として渡さないようにするため、HTTP サーバーの更新および軽減策ガイドをリリースしました。HTTP サーバーを更新したり軽減策を適用したりすると、この問題の悪用を防ぐことができます。

攻撃者が提供するヘッダーを使用しないようにするには、以下の方法の 1 つを使用します。

  • Web アプリケーションのファイアウォールを設定し、Proxy: ヘッダーを削除します。
  • HTTP サーバー設定を変更し、Go スクリプトが呼び出される前に Proxy: ヘッダーを削除します (HTTPoxy - CGI での HTTP_PROXY 変数名の競合 に記載されているその他のナレッジページ記事を参照してください)。
  • プログラムに以下の変更を加えます。
    追加されていない場合は、インポートに「os」を追加します。
    import “os”

main 関数の上部付近に追加します。

    os.Unsetenv(“HTTP_PROXY”)

Root Cause

詳細は HTTPoxy - CGI での HTTP_PROXY 変数名の競合 を参照してください。

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.