HTTP Connection Contamination
この記事の要約です: https://portswigger.net/research/http-3-connection-contamination。詳細についてはそちらをご覧ください!
Webブラウザは、共有IPアドレスと共通のTLS証明書を介して、HTTP接続の共有を通じて1つのHTTP/2+接続を異なるウェブサイトに再利用できます。ただし、これは逆プロキシにおける最初のリクエストのルーティングと競合する可能性があります。ここで、後続のリクエストは最初のリクエストによって決定されたバックエンドに向けられます。この誤ったルーティングは、特にワイルドカードTLS証明書と*.example.com
のようなドメインと組み合わせると、セキュリティの脆弱性につながる可能性があります。
たとえば、wordpress.example.com
とsecure.example.com
が同じ逆プロキシによって提供され、共通のワイルドカード証明書を持っている場合、ブラウザの接続共有によってsecure.example.com
へのリクエストが誤ってWordPressバックエンドで処理され、XSSなどの脆弱性が悪用される可能性があります。
接続共有を観察するには、ChromeのネットワークタブやWiresharkなどのツールを使用できます。テスト用のスニペットは以下の通りです:
現在の脅威は、最初のリクエストのルーティングの稀少性とHTTP/2の複雑さにより、限定されています。ただし、HTTP/3で提案されている変更は、IPアドレスの一致要件を緩和するため、MITM攻撃を必要とせずに、ワイルドカード証明書を持つサーバーをより脆弱にする可能性があります。
ベストプラクティスには、リバースプロキシでの最初のリクエストのルーティングを避けること、特にHTTP/3の登場に注意してワイルドカードTLS証明書を慎重に扱うことが含まれます。これらの複雑で相互に関連する脆弱性の定期的なテストと認識は、Webセキュリティを維持するために重要です。
Last updated