深刻なSquidプロキシの脆弱性によるキャッシュ中毒



中国清華大学の大学院生であるJianjun Chenは、人気のあるSquidプロキシサーバーに危険な脆弱性を発見しました。 彼がなんとか見つけたように、システムはRFC 7230標準に準拠しておらず、HTTP要求のHostヘッダーを解析および処理するときにも正しく機能しません。 その結果、攻撃者は悪意のあるパッケージを作成し、それを使用してキャッシュポイズニング攻撃を実行できます。

問題は何ですか


研究者は、暗号化されていないHTTP要求に対してSquid-3.5.12キャッシュポイズン攻撃を実行できました。 このような攻撃を実行するには、攻撃者がプロキシサーバーを介して自分のサイト(attack.comなど)に要求を送信できる必要があります。 このシナリオでは、まずattack.com WebサーバーとのTCP接続が確立されます。Squidは透過プロキシモードで動作するため、これらの要求をインターセプトして渡します。 次のステップで、攻撃者はHTTPリクエストを開始します。

GET http://victim.com/ HTTP/1.1 Host: attack.com 

キャッシングモジュールはキーのクエリ文字列(victim.com)からのホストアドレスを使用しますが、検証モジュールはホスト(attack.com)ヘッダーを使用してホストとIPアドレス間の接続を検証します。 これにより、攻撃が可能になります。

研究者はデモビデオも投稿した。

同様の攻撃は、たとえばFlash広告を使用してリモートで実行できます。 Squidは多くのインターネットプロバイダーによって透過的なプロキシとして使用されているため、発見された脆弱性を悪用すると深刻な結果を招く可能性があります。

当初、Squidの開発者は、検出された脆弱性がCVE-2009-0801で説明されているエラーを繰り返すと考えていました。 しかし、中国の研究者は、新しい攻撃は古い脆弱性とは関係がないことを証明しました。 CVE-2009-0801の場合、攻撃者はSOPバイパス攻撃を実行できます。このエラーは、宛先ホストのIPアドレスの誤った処理に関連していました。 この問題は、バージョンSquid 3.3以降で修正されています。 新しい脆弱性は、ルートチェックモジュールとSquid 3.5キャッシングモジュールの一貫性のない動作にあります。

自分を守る方法


この脆弱性は修正されましたが、CVEはまだ存在せず、Squidの別バージョンとしての公式パッチもありません。 これまでの修正は、バージョン4および3.5の毎日のビルドにのみ含まれています。

Positive Technologiesの専門家は、 host_verify_strictオプションを有効にすることをお勧めします。このオプションはデフォルトで無効になっており、Suricata IDSルールを使用して操作の試行を検出します。

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


All Articles