HTTP Desync攻撃: リクエストスマグリング攻撃の亜種
トピック: ネットワークおよびアプリケーションセキュリティ、Barracuda Web Application Firewall
2020年11月17日、Aravindan Anandan
2019年8月、PortSwiggerはHRS(HTTPリクエストスマグリング)攻撃の亜種であるHTTP Desync攻撃の最新情報を公開しました。また、調査では、スマグリング攻撃による大規模な損害を特定し、かつては無視されていた方法がどのように悪用されて、大規模な損害が生じるかを明らかにしました。
リクエストスマグリング攻撃はサーバがHTTPリクエストのさまざまな側面の異常をセキュアに処理できないことを悪用します。HRSの例は、リクエスト内のCR(キャリッジリターン)およびLF(ラインフィード)文字の標準的ではない使用方法、またはContent-Length、Transfer-Encodingなどの標準ヘッダの悪意のある使用です。この基本的な脆弱性は、XSS(クロスサイトスクリプティング)攻撃、権限情報への未認証のアクセス、およびキャッシュポイズニングにも悪用される可能性があります。
攻撃者がこのような攻撃を実行する典型的な方法はContent-LengthおよびTransfer-Encodingヘッダを同じリクエストで送信することです。RFC(Request for Comments)の仕様によると、この組み合わせでは、Transfer-Encodingヘッダの値を優先して処理する必要があります。しかし、この方法は、HTTPパーサがヘッダを無視するように、非ASCII(American Standard Code for Information Interchange)文字を名前に追加して、Transfer-Encodingヘッダを偽装することです。
このような攻撃の例は下記のとおりです。
POST / HTTP/1.1
Host: saas-app.com
Content-Length: 4
Transfer-Encoding : \x00chunked
1234<script>alert(“xss”)</script>GET / HTTP/1.0
上記の例では、Transfer-Encodingという名前にスペースが追加されています。GolangのHTTPライブラリ(Golang CVE-2019-16276)によると、このスペースは有効であり、リクエストを有効と見なすことができるため、スマグリングされたリクエストがバックエンドアプリケーションで実行されます。
HTTP Desync攻撃の防止方法
このような攻撃の防止方法は下記のとおりです。
- 第2のHTTPリクエストが別のHTTPリクエスト内に偽装およびトンネリングされていることを正しく特定する。
- バックエンドサーバへの第2のリクエストアクセスを拒否する。
現在、Desync攻撃の複数の亜種が存在します。Barracuda Web Application FirewallとBarracuda WAF-as-a-Serviceは、このようなすべてのDesync攻撃の防止を支援できます。また、プロトコル検証の段階でこのような攻撃を検出し、上記などの不正なリクエストを拒否します。この結果、このような攻撃からアプリケーションを完全に保護します。
実装されているセキュリティの例は下記のとおりです。
- Transfer-EncodingとContent-Lengthの両方のヘッダを含むリクエストをリクエストスマグリングと見なし、デフォルトで削除する。
- RFC 7230の文法に従わないHTTPヘッダを悪意のあるものと見なし、拒否する。
- 複数のContent-Lengthヘッダを含むリクエストをデフォルトで拒否する。
- Content-Lengthヘッダに複数の10進値を含むリクエストを拒否する。(例: Content-Length: 42, 42)
- Content-Lengthヘッダの長さがペイロードサイズと一致しないリクエストを拒否する。
Barracuda Web Application FirewallはOWASP Top 10、ゼロデイ攻撃、データ漏洩、アプリケーションレイヤDoS(サービス拒否)などのさまざまな攻撃からアプリケーション、API(アプリケーションプログラミングインターフェース)、およびモバイルアプリバックエンドを保護します。Barracuda Web Application FirewallとBarracuda WAF-as-a-ServiceはBarracuda Cloud Application Protectionの一部です。Barracuda Cloud Application Protectionは、場所、つまりクラウド、オンプレミス、またはハイブリッドに関係なく、Webアプリケーションを保護するプラットフォームです。
Barracuda Web Application Firewallはガートナーの2020年のMQ(マジック・クアドラント)でWAF(Webアプリケーションファイアウォール)のチャレンジャーとして評価されました。この結果、バラクーダは、Ability to Execute(ベンダが収益合計と市場シェア合計を含むソリューション戦略に対してどのように行動するか)とCompleteness of Vision(ソリューション戦略、ロードマップ、および将来性)に基づいて、このレポートで4年連続の評価を受けたことになります。ガートナーのWebアプリケーションセキュリティに関するすべての発言をご参照ください。ビジネスの保護に関するすべての分析結果を含むレポート全体を入手しましょう。
原文はこちら:
HTTP Desync attacks: A variant of request smuggling attacks
November 17, 2020 Aravindan Anandan
https://blog.barracuda.com/2020/11/17/http-desync-attacks-a-variant-of-request-smuggling-attacks/