CDN 経由で提供されるページを利用不能にする CPDoS 攻撃

ハンブルク大学とケルン大学の研究者
開発した コンテンツ配信ネットワークとキャッシュ プロキシに対する新しい攻撃手法 - CPDoS (キャッシュ毒によるサービス拒否)。 この攻撃により、キャッシュ ポイズニングによってページへのアクセスが拒否されます。

この問題は、CDN が正常に完了したリクエストだけでなく、http サーバーがエラーを返したときの状況もキャッシュするという事実に起因します。 原則として、リクエストの形成に問題がある場合、サーバーは 400 (Bad Request) エラーを発行しますが、唯一の例外は IIS で、大きすぎるヘッダーに対して 404 (Not Found) エラーが発行されます。 標準では、コード 404 (見つからない)、405 (メソッドが許可されていない)、410 (ゴーン)、および 501 (実装されていない) のエラーのみをキャッシュできますが、一部の CDN はコード 400 (不正なリクエスト) の応答もキャッシュします。送信されたリクエストについて。

攻撃者は、特定の方法でフォーマットされた HTTP ヘッダーを含むリクエストを送信することにより、元のリソースに「400 Bad Request」エラーを返させることができます。 これらのヘッダーは CDN では考慮されないため、ページにアクセスできないことに関する情報はキャッシュされ、元のサイトがコンテンツを提供しているにもかかわらず、タイムアウトが切れる前の他のすべての有効なユーザー リクエストはエラーになる可能性があります。問題なく。

HTTP サーバーにエラーを返させるために、次の XNUMX つの攻撃オプションが提案されています。

  • HMO (HTTP メソッド オーバーライド) - 攻撃者は、一部のサーバーでサポートされている「X-HTTP-Method-Override」、「X-HTTP-Method」、または「X-Method-Override」ヘッダーを通じて元のリクエスト メソッドをオーバーライドできます。 CDN では考慮されません。 たとえば、元の「GET」メソッドを、サーバーで禁止されている「DELETE」メソッドや、静的データには適用できない「POST」メソッドに変更できます。

    CDN 経由で提供されるページを利用不能にする CPDoS 攻撃

  • HHO (HTTP ヘッダー オーバーサイズ) - 攻撃者は、ソース サーバーの制限を超えるが、CDN 制限内には収まらないヘッダー サイズを選択できます。 たとえば、Apache httpd ではヘッダー サイズが 8 KB に制限されていますが、Amazon Cloudfront CDN では最大 20 KB のヘッダーが許可されます。
    CDN 経由で提供されるページを利用不能にする CPDoS 攻撃

  • HMC (HTTP メタ キャラクター) - 攻撃者はリクエストに特殊文字 (\n、\r、\a) を挿入できます。これらの文字はソース サーバーでは無効とみなされますが、CDN では無視されます。

    CDN 経由で提供されるページを利用不能にする CPDoS 攻撃

最も攻撃を受けやすいのは、アマゾン ウェブ サービス (AWS) で使用される CloudFront CDN でした。 Amazon は現在、エラー キャッシュを無効にすることで問題を解決しましたが、研究者が保護を追加するまでに 77 か月以上かかりました。 この問題は、Cloudflare、Varnish、Akamai、CDNXNUMX、および
高速ですが、それらを介した攻撃は、IIS、ASP.NET、 フラスコ и 1を再生. それは注意されます、米国国防総省のドメインの 11%、HTTP アーカイブ データベースの URL の 16%、Alexa によってランク付けされた Web サイトの上位 30 の約 500% が攻撃の対象となる可能性があると述べています。

サイト側で攻撃をブロックする回避策として、応答のキャッシュを禁止する「Cache-Control: no-store」ヘッダーを使用できます。 一部の CDN では、例:
CloudFront と Akamai では、プロファイル設定レベルでエラー キャッシュを無効にすることができます。 保護のために、Web アプリケーション ファイアウォール (WAF、Web アプリケーション ファイアウォール) を使用することもできますが、それらはキャッシュ ホストの前の CDN 側に実装する必要があります。

出所: オープンネット.ru

コメントを追加します