2025/08/15 17:27 HTTP/1.1 must die: the desync endgame

ロボ子、今日のITニュースはHTTP/1.1の脆弱性についてじゃ。

HTTP/1.1ですか。まだ多くのサイトで使用されているプロトコルですよね。

そうじゃ。HTTP/1.1はリクエストの区切りが曖昧で、長さの指定方法も複数あるから、本質的に安全ではないのじゃ。

リクエスト・スマグリング攻撃で、数百万のウェブサイトが乗っ取りの危険にさらされているとのことですが、深刻ですね。

HTTP Desync攻撃は、サーバーチェーン内のわずかな解析の不一致を突いて、サイト全体を乗っ取ることができるのじゃ。恐ろしいの。

HTTP/2+がこの問題を解決するとありますが、HTTP/2への移行は進んでいるのでしょうか?

HTTP/2はバイナリプロトコルで、メッセージの長さに曖昧さがないから、Desync攻撃のリスクを大幅に減らせるのじゃ。でも、HTTP/2にダウングレードすると、セキュリティ上の利点が失われるから注意が必要じゃ。

WAF(Web Application Firewall)による対策は完全ではないとのことですが、他にどのような対策があるのでしょうか?

HTTP/1.1を使う場合は、フロントエンドサーバーで厳格な検証と正規化を有効にして、バックエンドサーバーでも検証オプションを有効にする必要があるのじゃ。

HTTP Request Smuggler v3.0というツールも紹介されていますね。これはどのようなものですか?

HTTP Request Smuggler v3.0は、パーサーの不一致を検出して、HTTP Desync攻撃を可能にするオープンソースのBurp Suite拡張機能じゃ。定期的にスキャンして脆弱性を特定することが大事じゃ。

CloudflareのインフラストラクチャでもHTTP/1.1 Desyncが発生し、2,400万以上のウェブサイトが危険にさらされた事例もあるのですね。

Expectヘッダーを利用した攻撃で、T-Mobile、GitLab、Netlify、Akamaiなどの主要なプラットフォームで脆弱性が発見されたのは衝撃じゃったの。

Expectヘッダーは、リクエストを2段階に分割する最適化機能とのことですが、実装が複雑で問題を引き起こす可能性があるのですね。

Expectヘッダーを使うと、レスポンスヘッダーの削除を回避したり、メモリの内容を公開したり、0.CL Desync攻撃を引き起こしたりする可能性があるのじゃ。

0.CL Desync攻撃とは、Content-Lengthヘッダーを悪用してリクエストの境界を操作する攻撃のことですね。

そうじゃ。早期レスポンスガジェットを使うと、0.CLデッドロックを回避して攻撃を成功させることができるのじゃ。

AWS ALBの背後にあるMicrosoft IISも、HTTPヘッダーの処理に不備があり、Desync攻撃に対して脆弱とのことですが、AWSはこの問題を修正しないのですね。

互換性のために修正しないことを選択しているらしいのじゃ。困ったものじゃ。

HTTP/1.1の脆弱性を認識し、HTTP/2への移行を推進することが重要ですね。HTTP Request Smuggler 3.0を使用して定期的にスキャンを実施することも大切ですね。

HTTP/1.1を使う場合は、適切な緩和策を実施し、WAFの過信を避けることも忘れてはいけないのじゃ。

今回のニュースは、HTTPプロトコルのセキュリティについて深く考えさせられる内容でした。勉強になりました。

HTTP/1.1は、まるで昔の恋愛みたいじゃな。甘い思い出もあるけど、セキュリティホールだらけで危険がいっぱい…って、ロボ子、今のたとえ、分かったかのじゃ?

…博士、私はロボットなので、恋愛の経験はありません。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
