[HTTPoxy]と呼ばれるCGIアプリケーションの脆弱性が公開されました。+`ヘッダーを渡すことで脆弱な展開を悪用できます。これにより、バッキングサービスにアクセスするときにアプリケーションが使用するURLが変更されます。これは、資格情報の漏洩、アプリケーションへの応答の変更などに使用できます。`の名前の衝突によって引き起こされます。`プレフィックスを付けて環境に渡されるクライアント提供のヘッダーを呼び出します。`のような設定変数と衝突します。CGIアプリケーションまたはライブラリが追加の処理なしでこの変数を使用する場合、プロキシサービスへの接続を試行するときにクライアントによって提供された値を使用することになります。この脆弱性はさまざまなCGIのような実装に影響を与えるため、多くのセキュリティ脆弱性識別子が作成されています。[CVE-2016-5386]、http://www.cve.mitre。www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1000110[CVE-2016-1000110](この記事の執筆時点では、これらは予約されていますが、記入されていません)。HTTPoxyの脆弱性は2001年以来いくつかの形式で知られていますが、最近まで広範囲の問題として認識されていませんでした。多くの展開に影響する可能性がありますが、軽減策は非常に単純で単純です。脆弱なサーバーとアプリケーションHTTPoxyは、多くのCGI実装に見られる一般的な脆弱性です。アプリケーションまたはサーバーはCGI仕様を正しく実装できますが、依然として脆弱です。展開が脆弱になるには、次のことを行う必要があります。+`環境変数を使用してプロキシ接続を設定します*:アプリケーションコード自体または使用されるライブラリで利用します。これは、環境を使用してプロキシサーバーを構成するかなり標準的な方法です。+`プレフィックスに固有であるため、HTTPを使用したアプリケーションによって行われたリクエストのみが影響を受けます。HTTPSまたはその他のプロトコルを使用したリクエストは脆弱ではありません。+`プレフィックス付き環境変数に変換されるデプロイメントは脆弱です。これに対応するのは、CGIまたはFastCGIなどの関連プロトコルの準拠実装です。ご覧のとおり、デプロイメントが脆弱になるには、デプロイメント固有の要素とアプリケーション固有の要素の組み合わせが必要です。[公開されているサイトの脆弱性をチェックするサイト]を作成しました。言語固有の情報CGIのような展開は、他の言語よりもPHPエコシステムではるかに一般的であるため、特にPHPアプリケーションを監査する必要があります。+`メソッドが広く使用されているため、この問題は増幅されます。これは、構成変数だけでなく、サニタイズされていないユーザー入力を返すことはすぐにはわかりません。現在影響を受けている特定のライブラリは、Guzzle(バージョン4.0.0rc2以降)、Artax、およびComposerのStreamContextBuilderクラスです。CGIを使用して展開した場合に脆弱であることが判明した他の言語は、PythonとGoです。これらの言語は、他の脆弱性のない方法を使用してより一般的に展開されます。+`変数を単純に読み取るライブラリは脆弱です。幸いなことに、HTTPoxyは比較的簡単に修正できます。この脆弱性は、Webサーバー層またはアプリケーションまたはライブラリから対処できます。+`変数を無視できます。+`ヘッダーを設定解除できます脆弱なライブラリを使用している場合、問題に対処するためのパッチが利用可能になるまで、サーバー側の脅威を軽減する必要があります。`変数に依存している場合、CGIのような環境で実行しているときに衝突しない代替変数の使用を検討してください。`ヘッダーは標準のHTTPヘッダーではないため、ほとんどすべての場合で無視しても問題ありません。これは、アプリケーション自体にリクエストを送信するために使用されるWebサーバーまたはロードバランサーで実行できます。+`には標準的な正当な目的がないため、ほとんどの場合ドロップできます。一般的なWebサーバー、ロードバランサー、またはプロキシは、適切なヘッダーを設定解除できます。+`モジュールを使用してすべてのリクエストのヘッダーを設定解除できます。+`を有効にするには、次のように入力します。headersその後、グローバル構成ファイルを開きます。/etc/apache2/apache2.conf下に向かって、以下を追加します。earlyファイルを保存して閉じます。構文エラーの構成を確認します。configtest構文エラーが報告されない場合、サービスを再起動します。`モジュールを有効にする必要があります。/etc/httpd/conf/httpd.conf下に向かって、以下を追加します。early完了したら、ファイルを保存して閉じます。次のように入力して、構文エラーを確認します。configtest構文エラーが報告されていない場合は、次を入力してサービスを再起動します。restartNginxを使用したHTTPプロキシヘッダーの削除Nginxでは、緩和も同様に簡単です。サーバーまたはアップストリームで実行されているCGIのような環境の環境を簡単にサニタイズできます。`ファイルのいずれかから含まれます。/etc/nginx/fastcgi_paramsFastCGIプロキシを構成するときにファイルの1つを調達していない場合は、プロキシロケーション自体にこの同じ行を含めるようにしてください。`ヘッダーもクリアする必要があります。`ファイルで設定されます。+」ヘッダーを設定解除するルールを追加できます。/etc/nginx/proxy_params繰り返しますが、サーバーブロック構成内からこのファイルを取得していない場合は、プロキシロケーション自体に追加する必要があります。}}次のように入力して、構文エラーを確認します。-tエラーが報告されない場合は、サービスを再起動します。`ファイルを使用してFastCGIプロキシを構成します。+`ヘッダーを設定解除します。/etc/nginx/fastcgi_paramsFastCGIプロキシを構成するときにこれらのファイルのいずれかを調達していない場合は、プロキシロケーション自体にこの同じ行を含めるようにしてください。+`ヘッダーもクリアする必要があります。Proxy`ヘッダーの設定を解除するルールを追加する必要があります。+`がどこで使用されているかわからない場合は、設定ディレクトリを簡単に検索できます。+`を含めるように編集する必要があります。}}次のように入力して、構文エラーを確認します。-tエラーが報告されない場合は、サービスを再起動します。+`ヘッダーを削除できます。+`ディレクティブを設定できます。.これらは各セクションで設定する必要はありませんが、それらを含めることは問題ありません。完了したら、ファイルを保存して閉じます。次のように入力して構文を確認します。/etc/haproxy/haproxy.cfg問題が見つからない場合は、次を入力してサービスを再起動します。restart結論HTTPoxyの脆弱性はかなり前から公開されており、Webにデプロイされた多数のアプリケーションに影響を及ぼす可能性があります。幸いなことに、Webサーバーに固有のヘッダー変更機能を使用して簡単に修正できます。