【ITニュース解説】「HTTP/2」実装に「MadeYouReset」脆弱性 - DoS攻撃のおそれ
ITニュース概要
「HTTP/2」を実装する複数のソフトウェアに、「MadeYouReset」という脆弱性が見つかった。これにより、サービスを停止させるDoS攻撃を受ける危険性がある。影響を受けるソフトウェアでは、修正パッチの提供が一部で始まっているため、速やかな適用が求められる。
ITニュース解説
今回のニュースは、インターネットの根幹を支える技術の一つである「HTTP/2」に発見された、「MadeYouReset」という名前の脆弱性に関するものだ。この脆弱性があると、インターネット上のWebサイトやサービスが一時的に利用できなくなる「DoS攻撃」を受けるおそれがある。システムエンジニアを目指す上で、このようなWebの基本技術とそのセキュリティ問題は避けて通れないため、詳しく見ていこう。 まず、「HTTP/2」とは一体何だろうか。普段私たちがインターネットを使ってWebサイトを閲覧するとき、Webブラウザ(ChromeやSafariなど)とWebサーバーの間で通信が行われている。この通信のルールを定めているのが「HTTP」(HyperText Transfer Protocol)というプロトコルだ。Webサイトの表示速度や効率性を向上させるために、HTTPはこれまでに何度かバージョンアップを繰り返してきた。現在主流となっているのは「HTTP/1.1」と、そして今回話題になっている「HTTP/2」だ。HTTP/2は、従来のHTTP/1.1に比べて通信効率が大幅に向上している点が特徴だ。例えば、Webページを表示するために必要な複数の画像やCSSファイルなどを、一度の接続でまとめて送受信できるようになったり、通信の優先順位をつけたりできるようになっている。これにより、Webサイトの表示速度が速くなり、ユーザー体験が向上するといったメリットがあるため、多くのWebサイトやサービスでHTTP/2の導入が進められている。 次に、「脆弱性」という言葉について説明する。脆弱性とは、ソフトウェアやシステムが持つセキュリティ上の欠陥や弱点のことだ。プログラムの作り方にミスがあったり、設計が不十分だったりすると、悪意のある第三者(攻撃者)がその弱点を利用して、システムに不正な操作を行ったり、情報を盗み出したり、今回のようにサービスを妨害したりすることが可能になる。システムエンジニアにとって、この脆弱性を見つけ出し、修正することは非常に重要な仕事の一つだ。 今回の「MadeYouReset」脆弱性は、このHTTP/2の通信において特定のメッセージが不正に利用されることで発生する。HTTP/2には、通信中に何らかの問題が発生した場合に、特定の通信ストリーム(データの流れ)をリセットするための「RESET_STREAMフレーム」という機能が備わっている。この機能は、通信エラーからの回復や、不要になった通信を早期に終了させるために設計された、本来は非常に便利なものだ。しかし、「MadeYouReset」脆弱性では、攻撃者がこのRESET_STREAMフレームを意図的に大量に、かつ不正な方法で送りつけることで、Webサーバーに過剰な処理負担をかけることが可能になる。 具体的に何が起こるかというと、サーバーは攻撃者から送られてくる大量の不正なRESET_STREAMフレームを処理しようと、CPUやメモリといった計算資源を大量に消費してしまう。サーバーの処理能力には限界があるため、過剰な負荷がかかると、正規のユーザーからのアクセスに応答できなくなったり、最悪の場合、サーバー自体がダウンしてしまったりする。これが「DoS攻撃」(Denial of Service attack、サービス妨害攻撃)と呼ばれるものだ。 DoS攻撃を受けると、そのWebサイトやサービスは利用できなくなる。例えば、オンラインショッピングサイトが閲覧できなくなったり、銀行のオンラインバンキングが使えなくなったり、ゲームサーバーが停止してゲームができなくなったりする。これは、企業にとってはビジネス機会の損失や信頼の失墜につながり、利用者にとっては日常生活に支障をきたす深刻な問題となる。今回の「MadeYouReset」脆弱性は、HTTP/2を実装している様々なWebサーバーソフトウェアやプロキシサーバーソフトウェア、ロードバランサーなどが影響を受ける可能性がある。具体的なソフトウェア名としては、Apache HTTP Server、Nginx、H2O、Envoyなど、Webサービスを支える主要なソフトウェアが含まれる。 幸いなことに、この脆弱性はすでに発見されており、多くのソフトウェアベンダーが修正プログラム(パッチ)の提供を開始している。パッチを適用することで、この脆弱性からサーバーを保護し、DoS攻撃のリスクを低減できる。システムエンジニアとしては、自分が管理するシステムや利用しているソフトウェアがこの脆弱性の影響を受けるかどうかを確認し、もし該当するようであれば、速やかに提供されている修正パッチを適用することが求められる。また、常に最新のセキュリティ情報を入手し、使用しているソフトウェアを最新の状態に保つことが、システムの安全性を維持するための基本となる。 今回の「MadeYouReset」脆弱性の事例は、Web技術の進化とそれに伴うセキュリティリスクの増大を浮き彫りにしている。システムエンジニアは、単に機能を実現するだけでなく、そのシステムが安全であるかを常に意識し、最新の脅威に対応していく必要がある。Webの仕組みや通信プロトコル、そしてセキュリティに関する知識を深めることは、将来のシステムエンジニアとして非常に重要なスキルとなるだろう。