O2 VoLTE、通話1回で全顧客の位置追跡が可能
(mastdatabase.co.uk)- O2 UKの4G Calling/WiFi Calling実装では、発信者が受信者の位置推定に使えるIMS/SIPヘッダーを受け取れてしまう問題があり、この露出は数か月にわたりすべてのO2顧客に影響していた
- IMSシグナリングメッセージには、O2のIMS/SIPサーバーであるMavenir UAG、そのバージョン、デバッグ情報、エラーメッセージに加え、発信者・受信者のIMSI・IMEIおよび受信者の
Cellular-Network-Infoが含まれていた Cellular-Network-Infoのutran-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に接続し、LAC0x1003、Cell ID0x7a60773におり、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件のコメント
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 で、記事にタイプミスがあった
訂正して更新する
たとえば DPO@o2.com のようなところは、誰かが見ているかもしれない
https://www.o2.co.uk/termsandconditions/privacy-policy
O2 には以前、責任ある開示用のアドレスがあったが、数年前に廃止された
かなり前にそこで働いていたとき、セキュリティチームは優秀だったが、昨年ある問題でメールを送ったときには、その人たちは全員いなくなっていた
この件で本当に興味深いのは、ほとんどの法域ではおそらくハッキングにも分類されない可能性が高いこと
データはネットワーク上で通常利用中に自発的に送信されている
どのシステムも個人情報を露出するようだまされたわけではなく、そうした行為はハッキングが些細なものでも違法になることが多い
URL に
&reveal_privat_data=trueのようなものを付けるだけでも、アクセス権のないデータにアクセスしようとする明確な意図があるとして違法と見なされ得るが、この場合はそれすらない恐ろしいのは、これが理論上のバグではないという点
記事にもある通り、他の英国キャリアはすでに解決している実装上の怠慢で、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 権限とモデムへのアクセス権があるので、こうしたログを読める
バンドをオフにしたり特定の基地局に固定しようとしたりすることも可能なので、専用の 4G/5G ルーターのようにモバイルデータを主回線として使いたい場合に便利
GTP トンネルは eNodeB とコアネットワークの間にあり、IPsec 内で動作するときだけ保護される
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-...
O2がいまだにどうやって営業を続けているのか分からない
圧倒的に最悪のネットワークで、ひどいバックホール状況のThreeでさえまだまし
EEのSIMと一緒にO2のSIMを持っている唯一の理由は、PriorityチケットとO2会場内での電波のため
ただし新しいSIMと対応端末が必要で、体感差はまったく別物
O2網を使うgiffgaffは、O2の物理ネットワーク上で独自のサービス実装を使っているため影響を受けないと主張している
事実かもしれないが、今は同じ会社の所有だと分かっているので、統合されている可能性が高そうで少し疑わしい
giffgaffのSIMでこれを再現してみる人がいれば、結果を知りたい
記憶では、Telefónicaは2006年にO2を買収し、2009年にGiffgaffを新ブランドとして立ち上げた
どうやって別の結論に至ったのか分からない
VoLTEをオフにすれば緩和できるのだろうか? iPhone 11ではオフにする手順をオンラインで見たが、自分のiPhone 15にはそのオプションがない
なので効果はなさそう