
セキュリティ企業FoxIOは、Web通信の新しい規格「HTTP/3」で使われる「QPACK(キューパック)」という仕組みに、複数の欠陥が見つかったと公表しました。ログインなどの認証を受けていない外部の攻撃者が、1回の接続だけで多くのHTTP/3対応サーバーを停止(クラッシュ)させられるおそれがあるといいます。FoxIOは、実際に動作する検証用コード(PoC)も公開しています。
QPACKは、Webサーバーとやり取りする際の「ヘッダー」と呼ばれる付随情報を圧縮して、通信を効率化するための仕組みです。今回の問題は、この圧縮データの扱いにあります。攻撃者が小さくまとめた圧縮ヘッダーを送ると、サーバー側でそれを元に戻す際に、メモリ上ではるかに大きなデータへと膨らんでしまいます。FoxIOによれば、その増幅率は最大で4,000倍に達します。
サーバーが使えるメモリには限りがあるため、これを使い切らせることでサービスを止める攻撃を、DoS(サービス拒否)攻撃と呼びます。今回のように、送るデータは小さいのに受け手の負担が極端に大きくなる攻撃は、攻撃する側のコストが低く、対策が遅れると影響が広がりやすいのが特徴です。これはセキュリティホールの中でも、情報を盗むのではなく「サービスを止める」タイプの問題です。
一般の利用者が今すぐ何かをする必要はありません。影響を受けるのは主にHTTP/3に対応したWebサーバーやリバースプロキシ(通信の中継役)を運用する側です。該当する製品を使っている場合は、各ソフトの開発元が出す修正版の情報を確認し、公開され次第更新してください。更新までの間は、HTTP/3を一時的に無効にして従来のHTTP/2で運用する、という選択肢も検討できます。