2 ポイント 投稿者 GN⁺ 2025-05-18 | 1件のコメント | WhatsAppで共有
  • O2 UKの4G Calling/WiFi Calling実装では、発信者が受信者の位置推定に使えるIMS/SIPヘッダーを受け取れてしまう問題があり、この露出は数か月にわたりすべてのO2顧客に影響していた
  • IMSシグナリングメッセージには、O2のIMS/SIPサーバーであるMavenir UAG、そのバージョン、デバッグ情報、エラーメッセージに加え、発信者・受信者のIMSI・IMEIおよび受信者のCellular-Network-Infoが含まれていた
  • Cellular-Network-Infoutran-cell-id-3gpp値をPLMN、Location Area Code、Cell IDに分解し、Cellmapperのような公開基地局データと照合すると、受信者のおおよその位置を特定できる
  • 都市部では街灯などに設置されたsmall cellが狭いエリアを担当するため、位置推定の精度が大きく上がり、海外ローミング中のO2顧客でもコペンハーゲン中心部まで絞り込めた
  • 4G CallingとWiFi Callingの両方を無効にすれば位置露出は防げるが、IMEIとIMSIの露出はIMS登録状態に関係なく残るため、O2は関連ヘッダーをIMS/SIPメッセージから削除する必要がある

IMS通話から漏れた位置の手がかり

  • Voice over LTE(VoLTE)は、IP Multimedia Subsystem(IMS)標準を使い、モバイルネットワーク上でインターネットベースのプロトコルにより音声通話を処理する
  • IMS実装は複雑で端末依存性が大きく、過去にはVoLTEやWiFi Callingを使うために特定のファームウェアが必要な端末もあった
  • モバイルネットワークはIMSサービスをどのように実装し、どの設定を使うかを選択し、携帯電話はそのサーバーと直接通信する
  • この構造では、サーバーを最新状態に保ち、設定が不要なデータ露出につながらないよう管理する責任がモバイルネットワーク側にある

O2 UK 4G Callingを確認していた過程

  • O2 UKは2017年3月27日に最初のIMSサービスである4G Callingを開始した
    • 通話品質を改善し、通話中に3Gへフォールバックしないことでデータ体験も改善するサービスだった
  • 調査者はO2へ移行した後、4G/WiFi Callingでどの音声コーデックがサポートされているか確認しようとした
  • root化したGoogle Pixel 8で**Network Signal Guru(NSG)**を使い、別のO2顧客の4G VoLTE対応端末へ電話をかけた
  • 最新のGoogle Pixelに搭載されたSamsungモデムではNSGのバグにより、VoLTEセクションに現在の通話コーデックが自動表示されず、その代わり端末とネットワーク間の生のIMSシグナリングメッセージを確認した

IMS/SIPメッセージに含まれていた機微なヘッダー

  • ネットワークからの応答は、他のネットワークで見られるものと異なり、非常に詳細で長かった
  • メッセージにはO2が使用するIMS/SIPサーバーであるMavenir UAGとそのバージョン番号が含まれていた
  • 通話情報を処理するC++サービスで問題が起きた際のエラーメッセージや、そのほかのデバッグ情報も一緒に露出していた
  • 特にメッセージ下部付近には次の種類のヘッダーが含まれていた
    • P-Mav-Extension-IMSI: IMSI 2件
    • P-Mav-Extension-IMEI: IMEI 2件
    • Cellular-Network-Info: 受信者のセル情報
  • IMSIとIMEIを調査者の端末情報と比較した結果、発信者だけでなく通話受信者のIMSIとIMEIも含まれていることが分かった

Cellular-Network-Infoで位置を計算する方法

  • Cellular-Network-Info値の先頭部分である3GPP-E-UTRAN-FDDは、そのセルデータが4G、正式名称ではE-UTRAN FDDに該当することを示す
  • 続くutran-cell-id-3gpp値は3つの部分に分かれる
    • 最初の5~6文字は受信者ネットワークのPLMN
    • 次の4文字は受信者のLocation Area Code(LAC)で、16進数
    • 最後の7文字は受信者のCell IDで、16進数
  • 最後のセクションはデータの古さを秒単位で示す
    • 端末が現在ネットワークに接続していない、電波がない、またはWiFi Callingに依存している場合に存在する
  • 例のメッセージでは、受信者がO2ネットワーク234-10に接続し、LAC 0x1003、Cell ID 0x7a60773におり、Google Pixel 9とO2 SIMを使っていると計算できた

公開基地局データと組み合わせた位置推定

  • Cell IDはCellmapperのcell ID calculatorに入力して、対応するサイトIDを計算できる
  • その後、Cellmapper mapで該当サイトを探し、通話時点のマクロセルを確認できる
  • マクロセルは比較的広いカバレッジを持つが、高密度の都市部では小型セルが多く使われる
    • small cellは街灯に直接設置されることがある
    • 各サイトが**100㎡**ほどの小さなエリアをカバーする場合がある
  • 海外ローミング中の別のO2顧客に対しても同じ攻撃を試し、デンマーク・コペンハーゲン中心部まで特定できた
  • 調査者の端末はネットワークに対して特別な動作をしておらず、単に端末へ送られてきた情報を見られるようにしただけだった
  • IMS、すなわち4G CallingまたはWiFi Callingで電話をかけるO2端末は、通話受信者の地理的位置推定に利用できる情報を受け取れてしまう

O2が削除すべきヘッダーと、ユーザーができる緩和策

  • O2は顧客のプライバシーと安全を守るため、強調したヘッダーをすべてのIMS/SIPメッセージから削除すべきである
  • デバッグヘッダーも無効化するのが妥当である
    • ネットワークコア外のどの端末にも、こうしたヘッダーが見える理由はない
    • デバッグヘッダーが追加情報を意図せず漏らす可能性がある
  • 競合のEEはBT responsible disclosureの窓口を提供しているが、O2にはこのような潜在的攻撃ベクトルを報告する明確なエスカレーション経路が不足している
  • 2025年3月26日と27日に、O2のCEOであるLutz Schülerとsecurityincidents@virginmediao2.co.uk宛てに、この挙動とプライバシー上のリスクを知らせるメールが送られたが、応答も挙動の変化もなかった
  • 4G CallingとWiFi Callingの両方を無効にすれば、位置露出の部分は効果的に防げる
    • Cellular-Network-Infoヘッダーは、受信側端末が応答したときにのみ送信される
    • IMEIとIMSIの露出は、IMS登録状態に関係なく継続して発生する
  • 2025年5月27日の修正では、当初は位置露出を緩和する方法はないとしていたが、IMSシグナリングと端末ヘッダー送信の仕組みをさらに確認した後、4G CallingとWiFi Callingの両方を無効にすれば位置露出部分は緩和できると訂正された

1件のコメント

 
GN⁺ 2025-05-18
Hacker News の意見
  • 2025年3月26〜27日に O2 の CEO とセキュリティインシデント用メールアドレスへ、この挙動とプライバシー上のリスクを知らせたにもかかわらず、返答も変化もなかったというのは本当にひどい
    なぜ Virgin Media のアドレスが最善の連絡先に近いのかも疑問だし、https://www.o2.co.uk/.well-known/security.txt は 404 ではなく 200 を返すべき
    この状況で公表することに問題はないと思うが、NCSC なら特定の条件下でこうした案件を扱え、組織とのやり取りもよりうまくできるのではないかと思う

    • これは実際にはこちら側のミス
      連絡したメールは @virginmedia.co.uk ではなく @virginmediao2.co.uk で、記事にタイプミスがあった
      訂正して更新する
    • プライバシーポリシーには GDPR 要件のため、複数のメールアドレスが掲載されている
      たとえば DPO@o2.com のようなところは、誰かが見ているかもしれない
      https://www.o2.co.uk/termsandconditions/privacy-policy
  • O2 には以前、責任ある開示用のアドレスがあったが、数年前に廃止された
    かなり前にそこで働いていたとき、セキュリティチームは優秀だったが、昨年ある問題でメールを送ったときには、その人たちは全員いなくなっていた

    • O2 内部の関連チームが実際に通知を受けていたことは知っているが、結果として対応がなかったか、十分ではなかったように見える
  • この件で本当に興味深いのは、ほとんどの法域ではおそらくハッキングにも分類されない可能性が高いこと
    データはネットワーク上で通常利用中に自発的に送信されている
    どのシステムも個人情報を露出するようだまされたわけではなく、そうした行為はハッキングが些細なものでも違法になることが多い
    URL に &reveal_privat_data=true のようなものを付けるだけでも、アクセス権のないデータにアクセスしようとする明確な意図があるとして違法と見なされ得るが、この場合はそれすらない

    • それでもこれはデータ漏えいであり、規制管轄が英国にあるなら直ちに監督機関へ報告すべき案件で、報告しなければ罰金などが科される
    • 英国の Computer Misuse Act がどれほど広く適用されるのか、よく分かっていないようだ
  • 恐ろしいのは、これが理論上のバグではないという点
    記事にもある通り、他の英国キャリアはすでに解決している実装上の怠慢で、LTE 導入時から ECI の漏えいは指摘されてきた
    https://arxiv.org/abs/2106.05007—and のような論文もあり、公開基地局データベースがあれば自動的な位置マッピングも取るに足らない作業だ

    • これを使ってきた治安機関が何をすべきか指示してくるのを待ちながら、パニックに陥っている可能性がある
  • 通話発信者が通話制御メッセージ、つまり SIP をどうやって見られたのかも非常に気になる
    こうしたメッセージは端末、基地局、MME の間で暗号化された GRE トンネル内に入るのではないのか? GRE トンネルの暗号を解けるならとんでもない穴だが、おそらく原文の筆者が自分の端末で解析を走らせているから可能なのかもしれない
    それでも暗号化前のペイロードが見えるという点は驚きだ

    • 記事の編集者です
      Qualcomm チップを搭載した多くの Android 端末は USB 経由でモデム診断ポートを露出できるため、root 化した端末すら不要
      ただし、ノートPCを持ち歩くより、端末上で root 化した NSG を使うほうがずっと簡単
      モデム診断ポートを有効にして Scat(https://github.com/fgsect/scat) を使えば、ネットワークとやり取りするすべてのシグナリングトラフィックを見られるほど簡単
    • root 化した Android スマートフォンと Network Signal Guru というアプリを使っている: https://play.google.com/store/apps/details?id=com.qtrun.Quic...
      少なくとも無料版アプリは何かを「復号」しているようには見えないが、root 権限とモデムへのアクセス権があるので、こうしたログを読める
      バンドをオフにしたり特定の基地局に固定しようとしたりすることも可能なので、専用の 4G/5G ルーターのようにモバイルデータを主回線として使いたい場合に便利
    • 多くの通信事業者は VoLTE 用の SIP シグナリングが P-CSCF で終端される IPsec トランスポートを使うよう設定しているが、ほとんど、あるいはすべては IPsec を完全性保護用にのみ設定している
    • 言おうとしていたのは GRE ではなく GTP トンネルだと思う
      GTP トンネルは eNodeB とコアネットワークの間にあり、IPsec 内で動作するときだけ保護される
    • 修正: GTP です
  • O2 は今では問題が解決したと主張している: https://www.ispreview.co.uk/index.php/2025/05/o2-uk-fixes-vo...

    • 投稿された記事は今朝更新された
      「O2 がメールで連絡してきて、この問題は解決済みだと確認してくれた。自分で検証したところ、脆弱性は解消されたようだ」という内容
    • 声明では「エンジニアリングチームが数週間にわたって修正案の作業とテストを行ってきた」と述べている
      これほど機微なデータを含むデータベースが、その期間中、しかも誰にも知らせていないような状態で、意図的に無防備なまま放置されていたと想像してみてほしい
      ICO がこれをどう扱うのか興味深い
  • かなり深刻な問題に見える
    携帯電話をroot化してNSGをインストールしたうえで、この情報を見るのは難しくない
    O2は英国最大のモバイルネットワークでもあり、政府とも契約している
    回答しなかったのは残念だが、驚きではない
    O2は内部がめちゃくちゃなようで、店舗で誰かがすぐ直せないようなことは解決に時間がかかる
    たとえば番号ポータビリティのエラーのようなもの
    システムは古く見え、一部のユーザー層はいまだにVoLTEを使えず、新しい5G SAは音声をサポートしておらず、n28に過度に依存しているようで、多くの場合遅い
    CTOは、通常データ性能では最悪のネットワークであるにもかかわらず、「虚栄の指標から離れよう」とブログに書いている
    [0] https://news.virginmediao2.co.uk/leaving-the-vanity-metrics-...

    • EUローミング料金を取らない理由は、実は課金するシステムがないからではないかと思い始めている
  • O2がいまだにどうやって営業を続けているのか分からない
    圧倒的に最悪のネットワークで、ひどいバックホール状況のThreeでさえまだまし
    EEのSIMと一緒にO2のSIMを持っている唯一の理由は、PriorityチケットとO2会場内での電波のため

    • 5G Standaloneネットワークにアクセスできるなら、はるかに良くなっていた
      ただし新しいSIMと対応端末が必要で、体感差はまったく別物
  • O2網を使うgiffgaffは、O2の物理ネットワーク上で独自のサービス実装を使っているため影響を受けないと主張している
    事実かもしれないが、今は同じ会社の所有だと分かっているので、統合されている可能性が高そうで少し疑わしい
    giffgaffのSIMでこれを再現してみる人がいれば、結果を知りたい

    • Telefónicaがずっと以前から所有している
      記憶では、Telefónicaは2006年にO2を買収し、2009年にGiffgaffを新ブランドとして立ち上げた
    • giffgaffネットワークでテストしてみたが、実際に影響がある
      どうやって別の結論に至ったのか分からない
  • VoLTEをオフにすれば緩和できるのだろうか? iPhone 11ではオフにする手順をオンラインで見たが、自分のiPhone 15にはそのオプションがない

    • 「4G Callingをオフにしても、このヘッダーの露出は防げず、端末が接続不能状態になると、内部ヘッダーは最後に接続していたセルと、その時点からどれだけ時間が経ったかを引き続き明らかにする」とある
      なので効果はなさそう
    • O2 UKのいら立たしい点の一つは、古いプリペイド顧客にはVoLTEをサポートせず、月額契約の顧客にだけサポートしていることだが、今となってはむしろそれが少し幸いにも思える