火曜日のWOOT '19セキュリティ会議で発表予定の論文によると、HTTP Alternative Servicesヘッダーは、ネットワークの偵察や攻撃の実行、マルウェア対策サービスの回避、追跡防御やプライバシーの想定の無効化に悪用される可能性があるという。
2016 年 3 月に、インターネット エンジニアリング ステアリング グループは、Web サーバーがクライアントを別のサービスに送信する必要がある場合の Web 標準の提案として、HTTP Alternative Services ヘッダーを承認しました。
これを行う正当な理由はさまざまです。Web サーバーがリクエストで過負荷になっている場合、メンテナンス中の場合、または別のサーバーの方が近い (したがって応答が速い) と判断した場合などが考えられます。
IETF HTTP および QUIC ワーキング グループの共同議長であるマーク ノッティンガム氏が当時説明したように、このようなリダイレクトは、短命の HTTP/1.1 接続の下での DNS ロード バランシングによって処理できます。
しかし、DNS ロード バランシングは、永続的な接続を維持するように設計されている HTTP/2 ではうまく機能しません。
HTTP Alternatives Servicesは、リクエストを別の場所に転送するための代替手段として設計されました。これにより、Webサーバーはリソースのホストとして別のサーバーを指定するヘッダーを返すことができ、実質的には代替サーバーがコンテンツのファーストパーティソースであるオリジンとして機能するようになります。
「透過的かつ永続的にクライアントを別のサーバーにリダイレクトする機能は、明らかにセキュリティ上の懸念をもたらす」とノッティンガム氏は投稿で述べた。
ボストン大学在学中に論文を共同執筆し、現在はコーネル大学でサイバーセキュリティの博士課程に在籍するトリシタ・ティワリ氏と、ボストン大学の電気・コンピュータ工学教授アリ・トラクテンバーグ氏による「HTTP代替サービスの代替(悪用)」と題された論文は、こうした明白なセキュリティ上の懸念をさらに浮き彫りにしている。
HTTPヘッダーは、クライアントとサーバーがリクエストとレスポンスのやり取りにおいてメタデータをやり取りするための手段です。クライアントリクエストへのレスポンスで返される代替サービスヘッダーは、例えば次のようになります。
Alt-Svc: h2="new.example.org:443"; ma=600
これは、クライアントに対し、今後10分間(600秒)、HTTP/2プロトコルを使用してポート443でnew.example.orgに接続できることを伝えます。リダイレクト情報には、セッションやネットワークの変更後も代替サービスを記憶することを示すオプションのpersistパラメータが含まれる場合もあります。
ティワリ氏とトラクテンバーグ氏によると、Googleは代替サービスを利用して、UDPベースのQUICプロトコル経由でコンテンツを提供するための代替エンドポイントをアドバタイズしています。一方、Facebookをはじめとするウェブサイトは、Torクライアントブラウザを検出し、代替サービスを利用してユーザーをOnionの隠しサービスエンドポイントに誘導しています。このプロトコルは、Brave、Chrome、Firefox、Opera、Torなどのデスクトップブラウザや、様々なモバイルブラウザでサポートされています。
研究者らは、Alt-Svcヘッダーを利用することで、FirefoxまたはTorのユーザーに、被害者がアクセス可能なホストのTCPポートを強制的にスキャンさせることができることを発見しました。研究者らはこの脆弱性をMozillaに報告し、Mozillaは7月にリリースされたFirefox 68(Firefox ESRをベースにTorも対象)でCVE-2019-11728の修正をリリースしました。
彼らはまた、QUICをAlt-Svcエンドポイントとして使用し、ChromeとChromiumベースのBraveにもこの攻撃を実装しました。研究者は、この件をGoogleに報告し、緩和策について協議中であると述べています。QUICは現在、Chromeユーザーからは実験的なフラグで隠されており、ユーザーが有効化する必要があります。
「この攻撃の根底にあるのは、ウェブサイトがHTTP/2/QUICエンドポイントを持つセカンダリホストへのAlt-Svcヘッダーを指定すると、ブラウザはホストやポートを一切チェックすることなく、即座にセカンダリホストとのハンドシェイクを開始しようとするという観察です」と研究者らは論文で説明しています。「セカンダリホストはプライベートIPアドレスやローカルホストである可能性があり、ポートはブラウザのHTTPポートブラックリストに登録されている可能性があります。」
Alt-Svcは、Brave、Chrome、Firefoxが使用するセーフブラウジングシステムを回避する手段も提供します。「ホワイトリストに登録されたクリーンなファーストパーティが、ブラックリストに登録されたドメインをAlt-Svcとして指定すると、セーフブラウジングのチェックがスキップされ、すべてのコンテンツが悪意のあるドメインから読み込まれます」と研究論文は説明しており、ブロックされたサイトはクリーンなサイトの証明書を提示する必要があり、そのためには両者の共謀が必要になると指摘しています。
研究者らは、このヘッダーは、VirusTotal、URLVoid、Sucuri、IPVoidなどのオンラインサイトチェックツールを回避する方法も提供しており、セーフブラウジングなどのセキュリティチェックでは、ウェブサイトを安全とマークする前に、ファーストパーティドメインだけでなく、指定されたAlt-Svcドメインもチェックする必要があると指摘している。
FirefoxとTorは、Chromiumベースのブラウザとは異なり、破損したエンドポイントを記憶しないため、分散型サービス拒否攻撃(DDoS攻撃)の標的となり得ます。そのため、iframeを用いてリロードループを作成し、TLS接続を強制的に繰り返し試行させることで、サービス拒否攻撃を仕掛けることが可能です。
さらに、Alt-Svcはプライバシー保護にもかかわらず、ユーザーを追跡するために利用される可能性があります。「ユーザーごとに固有のAlt-Svcを指定し、その後のユーザーリクエストを監視することで、攻撃者はファーストパーティのウェブサイトとサードパーティのiframeまたは画像の両方でユーザーを追跡できる可能性があります」と論文は説明しています。
同様に、ネットワーク サービス プロバイダーは、Alt-Svc を悪用して、リソースの読み込みを監視することで、通常は入手できない Web 履歴データを抽出できます。
The Registerへの電子メールで、ティワリ氏は、Mozilla はポートスキャンと DDOS の脆弱性に対処し、特定の機密性の高い非 HTTP ポートへの Alt-Svc 接続を阻止することで攻撃対象領域を縮小するパッチを作成したと述べた。
「これは根本的な問題を完全に排除するものではないが(多くのサイドチャネル攻撃に対するパッチではよくあることだが)、このパッチにより、Mozilla の脆弱性は Chrome や Brave と同等のレベル(大抵の人が許容できる脆弱性レベルと考えるレベル)まで低下した」と彼女は述べた。
論文で議論されているセーフブラウジングの問題は、まだ完全には解決されていない。「Googleがこの問題にどのように対処しているかについて説明してくれたが、納得できなかった」と彼女は述べた。
Google社員は大嫌い!この奇妙なトリックでウェブサイトはChrome 76の防御を回避し、シークレットモードであることを検出できる
続きを読む
彼らとコミュニケーションを試みてきましたが、彼らの対策について私たちが提起した懸念に対して、特に反応を示していませんでした。セーフブラウジングはChromeだけでなく、FirefoxやBraveなどでも採用されており、多くの人が頼りにしていることを考えると、これは本当に残念です。
ティワリ氏は、ノッティンガム氏の2016年のブログ投稿で言及されたセキュリティ上の考慮事項がAlt-Svc仕様に組み込まれたと述べた。
「この仕様はこれらの問題に対処しようとしていますが、そこで提案されている緩和策(ユーザーがブラウザのキャッシュをクリアするときに Alt-Svc キャッシュもクリアするなど)は十分に強力ではありません」と彼女は述べた。
ブラウザベンダーはこれを理解しており、キャッシュ分離などのより強力な緩和策を提案しています(これは、個々のブラウザベンダーの裁量に委ねられることのないように、仕様に含めるべきだと思います。ユーザー追跡は深刻な問題となっており、これらのRFCでキャッシュ分離を事前に要求し始めるべき時が来ています)。
「論文で示した残りの攻撃は、Alt-Svc 仕様が不適切に実装されたことに起因しています。つまり、残りの攻撃は、根本的な設計上の欠陥ではなく、ブラウザベンダーが設計を実装した方法の欠陥であるということになります」と彼女は述べた。®