インターネット上の監視からユーザーを守るために設計された機能が、実際には本来の所在地を漏らしてしまう恐れがあることが判明しました。AppleのiCloud Private Relayに内在する、根本的な矛盾です。iCloud+加入者向けに提供されているこのサービスは、Safariのトラフィックを2つの独立したリレーノードに順番に通過させることで、Appleを含むいずれのノードも、リクエストの送信元と閲覧先のウェブサイトの両方を同時に把握できない仕組みになっています。
この脆弱性は、研究者のTalal Haj Bakry氏とTommy Mysk氏によって発見されました。WebKitプロキシのバイパスとiCloud Private RelayのIPアドレス漏えいに関する両氏の技術分析によれば、根本原因はWebKitブラウザエンジンの3つの異なる機能にあるとされています。WebKitはSafariの中核を担うエンジンであり、それを通じてiOSおよびiPadOS上のChrome、Edge、Firefox、Braveといったサードパーティ製ブラウザにも影響が及びます。
3つの漏えいメカニズム
関与が指摘された3つのWebKit機能はいずれも、設定済みのプロキシを完全に迂回し、デバイスから直接一部のデータを送信します。いずれのケースでも、ユーザーの実IPアドレスがPrivate Relayのトンネルから漏れ出し、外部から見える状態になってしまいます。
DNSプリフェッチ
WebKitのDNSプリフェッチ機構は、今後発生するリクエストを見越してドメイン名を事前に解決します。この名前解決処理はプロキシ経路の外部で行われるため、Private Relayのインフラがトラフィックを捕捉する前に、デバイスの発信元IPアドレスがDNSリゾルバーに露呈してしまいます。
WebAuthnのオリジン検証
3つのベクトルの中で最も深刻な影響を及ぼすのが、パスキー認証を支える業界標準であるWebAuthnに関するものです。WebAuthnが実行するオリジン検証のステップにおいて、プロキシを経由しないネットワークリクエストがデバイスから直接送信されます。特に重大なのは、この挙動を引き起こすのにユーザーがパスキーログインを開始したり、何らかの意図的な操作を行ったりする必要が一切ないという点です。WebAuthnに対応したウェブサイトであれば、この実装上の特性を意図的に悪用し、閲覧セッションとユーザーの実IPアドレスを紐づけることができてしまいます。しかも、ユーザーの同意なしに受動的に行われるのです。
WebTransport
低遅延の双方向通信に用いられるWebTransportプロトコルも同様に、接続確立に関わる一部のトラフィックをプロキシの境界外で処理してしまい、デバイスの実アドレスを漏えいさせます。
影響範囲:iOS、iPadOS、macOS
この脆弱性はモバイル端末だけにとどまりません。WebKitベースのブラウザがエンジン標準のプロキシ処理機構を利用している限り、iOS、iPadOS、macOSのいずれにも影響が及びます。研究者らはleaks.psylo.appにテストツールを公開しており、Private Relayが有効な状態で実IPアドレスが露呈していないかをユーザー自身が確認できます。
Mysk氏によれば、この漏えいはすべてのブラウザで一様に発生するわけではないとのことです。例えば、デスクトップ版のChromeはこの問題の影響を受けません。また、Private Relayに加えてVPN接続をさらに重ねて利用することでも、漏えいのリスクは低減します。
Appleの対応とこれまでの経緯
Appleは404 Mediaに対し、提出された報告書を精査中であることを認めています。本稿執筆時点では、公式声明や修正の時期についての発表は行われていません。
Appleのプライバシー基盤において、非公開の漏えいが見つかったのはこれが初めてではありません。Hide My Emailサービスでも以前、ユーザーの実際のメールアドレスが露呈しかねない同様の欠陥が存在していました。また、Private Relayが2021年にローンチされた直後には、FingerprintJSの研究者らがWebRTCを経由する別のIPアドレス漏えいを発見しています。
修正が提供されるまでの緩和策
Appleが正式な解決策を打ち出すまでの間、ユーザーはiCloud Private Relayに加えてVPN接続をもう一段重ねることで、露呈のリスクを軽減できます。また、Apple製デバイスを利用するユーザーは、WebAuthn経由でパスキーサインインを促してくるウェブサイトを操作する際には特に注意を払うべきです。こうしたサイトは、現時点で悪意ある攻撃者にとって最も受動的かつ深刻な悪用経路となっているためです。
翻訳元: https://meterpreter.org/icloud-private-relay-ip-leak-webkit/