※追加:この元の英語記事には結構反論もあるようです。今読んでます。
Qualcomm製のチップが勝手に情報を送信しているという話です。ひどいことに、暗号化もされていないのです。教えてくださったguaranaさんありがとうございます。
Smartphones With Popular Qualcomm Chip Secretly Share Private Information With US Chip-Maker
Google Pixelにおいては、Pixel 5aまではQualcommのチップが使用されていましたが、6以降は使用されておらず、Google Tensorプロセッサに変更されています。Google Pixel Wikipediaを参考。また、5aまでの機種においても、GrapheneOS側が対応済とのこと。
この記事をざっと読むと、Qualcomm製のチップがOSとは無関係にデータを送信しているように思えますが、そうではなく、データ送信ソフトウェアはユーザ空間で実行されているようです。
もちろん、Qualcommのチップを利用しており、なおかつGrapheneOSのような対応をしていないOS(おそらくQualcommチップを搭載した他すべてのスマフォ)では、本文中に示される情報が「公開」されてしまうということです。つまり、Google/Appleのようにプライバシー情報を暗号化して自社だけが秘密裏に取得するのではなく、通信路にいる誰でもが得ることのできる「広く一般公開された情報」になってしまうという意味です。これには、例えば、カフェのWifiの管理者でさえ含まれます。
※強調は訳者
要約
当社のセキュリティ調査において、Qualcommのチップを搭載したスマートフォンが、個人データをQualcommに密かに送信していることが判明した。このデータは、ユーザーの同意なしに、暗号化されずに送信され、Googleが提供するものではない「Androidディストリビューション(カスタムROM、Google監視の無いスマフォのこと)」でさえ送信される。そのハードウェアをサポートするQualcomm独自のソフトウェアが、データを送信するためだ。影響を受けるスマートフォンは、Sony Xperia XA2、Fairphone、および人気のあるQualcommのチップ採用の多くのAndroid携帯電話を含む可能性がある。
イントロダクション
スマフォは、我々の秘密のほとんどすべてを託すデバイスだ。何しろ、私たちが1日24時間持ち歩く最もユビキタスなデバイスなのである。AppleもAndroidも、App StoreとGoogle Play Storeで、お金を払ったユーザーをスパイしている。そのため、一部の技術に詳しい人は、普通のスマフォにGoogle無しバージョンのアンドロイドをインストールしている。例として、ソニーのXperia XA2での設定を分析したが、(オープンソースの)オペレーティングシステムとは異なるベンダー独自のソフトウェアが、Qualcommに個人情報を送信しており、個人情報を十分保護できない可能性のあることがわかった。この結果は、FairphoneのようなQualcommのチップを搭載した他のスマートフォンにも当てはまる。
脱Googleスマフォとは何か?
脱グーグルのAndroidスマフォは、Googleのプロプライエタリ(クローズドソース、設計図の公開されないソフト)のアプリやサービスを全く含まないように変更されたものだ。通常は、カスタムROMをインストールすることで、標準的な(Googleありの)Androidソフトウェアを、Googleアプリが付属しないオープンソースのAndroidに置き換える。このようなAndroidは自分でインストールするか、既にインストールされているスマフォ(NitroPhoneなど)を購入することができる。
Googleによる監視・追跡ツールはいたるところにあるが、この「悪」のほとんどは、クローズドソースであるGoogle Play Servicesの中に入っている。数百万行ものコードには、BluetoothやWiFiデバイスがないか周囲を常にスキャンし、WiFi信号の三角測量を行って、目に見えるWiFiアンテナを、Googleが収集したすべてのWiFiアクセスポイントの地理的位置のデータベースと照合し、常に正確な位置を把握するようなものがある。これらはすべて、検出されたWiFiネットワークに接続することなく、またGPSがオフの状態でも機能する。この方法は、1990年代にCIAがパブロ・エスコバルを追跡した方法と似ているが、現在では地球上のすべての市民を追跡するために大規模に使われている。
全能の力を持つGoogleとApple、そしてその24時間追跡・監視ツールを排除する一つのアプローチとしては、脱GoogleのAndroidスマフォを使うことだ。その結果、脱グーグルスマフォにはGoogle PlayサービスやGoogle Playストアがなく、代わりに同じアプリを提供するオープンソースのストアアプリを使うことになる。また、ソフトウェアベンダーのウェブサイトから直接アプリ(拡張子がAPKのファイル)をダウンロードすることで、ストアの使用を完全に回避することも可能だ。これは、PCにインストールするためのプログラムをダウンロードするときと同じことである。
訳注:通常のパソコン用のソフトは、提供元からダウンロードするようになっているが、スマフォの場合は、通常「ストア」からインストールさせるようになっている。PCのソフトと同じことをしてもよい。
脱Googleスマフォの分析
今回のテストでは、プライバシーに重点を置き、データをコントロールできるよう設計されたAndroidの脱グーグルオープンソース版である/e/OSを試してみた。/e/OSは、あなたを追跡せず、あなたのデータを販売しないと主張している。調べてみよう。
ソニーのXperia XA2スマートフォンに/e/OSをインストールする。インストール後、スマートフォンは/e/OSセットアップウィザードで起動する。GPS位置情報サービスをオンにするよう要求されたが、今は必要ないのであえてオフにしておく。
また、SIMカードも入れていないので、Wiresharkで監視しているWIFIネットワーク上でのみデータの送受信が可能だ。Wiresharkは、ネットワーク上で送信されるすべてのトラフィックを監視し分析することができるプロフェッショナルなソフトウェアツールである。
セットアップウィザードでWiFiパスワードを入力すると、ルーターは/e/OS de-Googled携帯にローカルIPアドレスを割り当て、トラフィックの生成を開始した。
最初に見られるのは、DNS要求である。
[2022-05-12 22:36:34] android.clients.google.com [2022-05-12 22:36:34] connectivity.ecloud.global
意外なことに、脱Googleのスマフォが最初に接続する先はgoogle.comでである。Googleによれば、android.clients.google.comというホストは、定期的な端末登録、位置情報、アプリの検索など、多くの機能を持つGoogle Play Storeを提供している。Google Play Storeのない脱Googleスマフォなのに、これは不思議なことだ。このリクエストは、Google独自のコア・ライブラリとアプリケーションをオープンソースで再実装したmicroGから発信されていることが後に判明した。
訳注:microGは、Googleのコードを使わずに、Googleの提供するサービスを実現するオープンソース実装だが、一部機能はGoogleに接続してGoogleのサービスを受けることになる。GrapheneOSには、microGはなく、代わりにsandboxed Google Playという機能が提供される。これもGoogleに接続することになるが、Googleが欲しいデータは渡さない仕組みになっている。結局、Googleの機能を必要とするアプリを動かすには、Googleに何らかの接続をしないといけない。その際に、プライバシー情報をいかに受け渡さないかという話になる。
そして、/e/OSによれば、AndroidのGoogleサーバーの接続チェックconnectivitycheck.gstatic.comを置き換えるconnectivity.ecloud.globalに接続するのである(訳注:接続チェックはGoogleを使わないという意味)。
2秒後、携帯電話は通信を開始した:
[2022-05-12 22:36:36] izatcloud.net [2022-05-12 22:36:37] izatcloud.net
我々は、izatcloud.netという名前の会社やサービスを知らなかった。そこで、/e/OSの法的通知とプライバシーポリシーを検索してみたが、izatcloud.netとのデータ共有に関する記述は見つからなかった。e/OSのプライバシーポリシーには、「私たちは個人情報を誰とも共有しません」と明記されている。さらに、Gitlabで公開されている/e/OSのソースコードを検索してみたが、Izat Cloudへの言及は見つからなかった。
WHOISで調べてみると、izatcloud.netドメインはQualcomm Technologies, Inc.という会社に所属していた。これは興味深い。Qualcommのチップは、現在、サムスンやアップルのスマートフォンを含むすべてのAndroidデバイスの約30%に使われている。我々の使った、/e/OS、つまり脱GoogleのAndroidのテストデバイスは、Qualcomm Snapdragon 630プロセッサーを搭載したSony Xperia XA2でである。つまり、我々はリードしている(訳注:Nitrokeyのプライバシー保護が先んじているの意?)
Qualcommは我々をスパイしているのか?
調査を進めると、これらのパッケージ(データ)がHTTPで送信されており、暗号化、つまりHTTPS、SSL、TLSは使われてないことがわかった。つまり、ハッカー、政府機関、ネットワーク管理者、国内外の通信事業者など、ネットワーク上の誰もが、このデータを収集し、保存し、Qualcomm(のチップ)が奇妙な名前のIzat Cloudに送信している、スマフォ固有IDとシリアル番号を使って記録履歴をひもづけることによって、簡単に我々をスパイできるということだ。
Qualcommへのデータ送信は、ソニー(デバイスベンダー)やAndroid、/e/OSの利用規約にも記載されていない。Qualcommは、ユーザーの同意なしにこれを行っている。
我々は、ユーザーの同意なしのユーザーデータ収集は一般データ保護規則(GDPR)に反すると考え、この件についてQualcommの法律顧問に連絡した。数日後、彼らから回答があり、このデータ収集はQualcomm Xtraのプライバシーポリシーに従っているというのだ。また、XTRAサービスのプライバシーポリシーへのリンクも送ってきた。つまり、我々が聞いたこともないこのIzat Cloudは、我々が聞いたこともないXTRAサービスの一部のようだ。Qualcommは物事を謎めいたものにしたがるという印象があり、それゆえIzat CloudとXTRAサービスという名前がついているのだろう。
Qualcommからのリンクの「XTRAサービス」のプライバシーポリシーにはこう書かれている:
「これらのソフトウェアアプリケーションを通じて、当社は、位置情報、一意の識別子(チップセットのシリアル番号や国際加入者IDなど)、デバイスにインストールおよび/または実行されているアプリケーションに関するデータ、メーカー、モデル、ワイヤレスキャリアなどの構成データ、オペレーティングシステムおよびバージョンデータ、ソフトウェア構築データ、チップセットの性能、バッテリー使用、熱データなどデバイスの性能に関するデータを収集する場合がある。
また、データブローカー、ソーシャルネットワーク、その他のパートナー、または公的な情報源などの第三者の情報源から個人データを取得することがある。」
IPアドレスに言及がないが、これも収集していると思われる。我々の調査が完了した後になって、プライバシーポリシーが更新され、デバイス(スマフォ)のIPアドレスの収集が追加された。また、このデータを「品質目的」のために90日間保存するという条項も追加されている。
Qualcommのプライバシーポリシーに基づき、彼らが顧客のスマフォから収集する可能性のあるデータの一覧を以下に示す:
- ユニークID
- チップセット名
- チップセット・シリアル番号
- XTRAソフトウェアのバージョン
- 携帯電話の国番号
- モバイルネットワークコード(国と無線通信事業者の識別が可能)
- オペレーティングシステムの種類とバージョン
- デバイスのメーカーとモデル
- アプリケーションプロセッサーとモデムの最終起動からの時間
- デバイス上のソフトウェアのリスト
- IPアドレス
もう少し掘り下げると、Qualcommの「XTRAサービス」はアシスト型GPS(A-GPS)を提供し、モバイルデバイスの正確な位置を提供するのに役立つことがわかる。
アシスト型GPS(A-GPS)とは何か、なぜ必要なのか?
GPSは当初、飛行機、人員、爆弾の誘導を目的とした軍事用途に限定して開発された。受信機は通常、衛星に見通しでアクセスできる開けた場所に設置されていた。しかし、GPSが商業利用可能になり、新しい用途が増え、システムの要件が増加した。
これらの新しい用途では、GPS信号が木や屋根などの頭上の障害物を通過する必要がある。そこで、「アシストGPS」またはA-GPSソリューションが生まれたのである。A-GPSでは、携帯電話が衛星の軌道と状態を含む様々なファイルをダウンロードし、今後7日間のおおよそのGPS衛星の位置を表示することで、スマフォの位置を素早く特定することができる。
プロプライエタリなデバイスドライバは問題だ
Androidの大部分はオープンソースとして公開されているため、潜在的なセキュリティやプライバシー問題について分析できる。しかし、通常、スマフォベンダーは、デバイスドライバ、ファームウェアブロブ、システムサービス、アプリなどの独自のソフトウェアを追加している。アプリはユーザーが直接見ることができ、90年代のWindows 95や多くのブロートウェア(初めからインストールされているソフト)が搭載されたPCを思い起こさせるほど、システムを変化させることができる。
もちろん、Google無しのAndroidディストリビューションも、明らかに、対象のハードウェア(スマフォ)をサポートするためにデバイスドライバを必要とする。これらのドライバは通常、オペレーティング・システムにより実行が許されるプロプライエタリなソフトウェアであり、必要なハードウェアへのサポートを単に提供するだけではなく、望ましくない動作をすることがある。その結果、脱Googleのスマフォであっても、我々のプライバシーや、個人情報を共有してしまうクローズドソースベンダーのソフトウェアのために、どの個人識別情報(PII)が共有されるかを完全には制御することができない
そのため、Nitrokeyでは、安全なシステムを実現するために、必然的にオープンソースにこだわっている。オープンソースのソフトウェア(およびハードウェア)は、システムの動作を検証し、その安全性を保証する唯一の方法である。
他のスマフォにも影響するのか?
プライバシー保護の観点からよく選ばれるもう一つの人気選択肢は、Fairphoneである。オランダのこの会社は優れたスマフォを製造しており、ユーザーがスマフォをメンテし、壊れたときに自分で部品を交換できる。ユーザーのプライバシー強化の評判に反し、Fairphoneの全モデルにはQualcommのチップが搭載されており、Qualcommのソフトウェアが実行されている。したがって、Fairphoneは、Qualcomm XTRA Serviceに個人データを共有してしまうという同じ問題を抱えている。テストはしていないが、同じプライバシー問題が、いわゆる暗号化電話(encrypted phones、crypto phones)など、Qualcommのプロセッサを使用する他のスマートフォンブランドの多くの選択肢に影響すると思われる。
NitroPhoneは安全
NitroPhone 3 ProNitrokeyのNitroPhoneはQualcommのチップセットを搭載しておらず、当社のテストでは、GPSをオフにした場合、A-GPSのリクエストが行われないことを確認している。GPSがオンになっている場合、GoogleがIPアドレスを取得して保存するのを防ぐため、NitroPhoneのGrapheneOSは、ユーザーのプライバシー保護のためにGrapheneOSが提供するプロキシサーバーgoogle.psds.grapheneos.orgに連絡してA-GPSファイルをダウンロードする。また、GrapheneOSはQualcommとは異なり、個人情報をGrapheneOSのプロキシサーバーやGoogle、Qualcommと共有することは一切ない。
さらに、GrapheneOSでは、A-GPSファイルを要求する機能を無効にしたり(オプトアウト)、お好みでAndroidの標準サーバagnss.googを使うことができる。現時点では、/e/OS、Lineage、Sailfish OS、および私たちが見つけた他のどの携帯電話も、この機能をサポートしておらず、このレベルの自由度を提供していない。
結論
Qualcomm独自のソフトウェアは、GPS位置情報をより速く確立するために携帯電話にいくつかのファイルをダウンロードするのみならず、デバイスの固有ID、国コード(この場合はドイツ)、携帯電話事業者コード(国と携帯電話事業者を識別可能)、オペレーティングシステムとバージョン、デバイス上のソフトウェアのリストなどの個人データもアップロードしている。これにより、我々に関する完全にユニークな署名が作成され、行動追跡が可能になり、ユーザーのプライバシーが大幅に低下する。GPSをオフにしていても同じだ。
Qualcommが大量の機密データを収集し、安全でない時代遅れのHTTPプロトコルでそれを送信するという事実は、彼らがユーザーのプライバシーとセキュリティを気にしていないことを物語っている。このことは、Qualcommが政府のスパイ機関と協力しているなどと推測するまでもない。Qualcommと協力するまでもなく、独裁者やその他の抑圧的な政府によってトラフィックが傍受される可能性があるというリスクを生み出しているのだ。位置情報を頻繁に利用して人を狙うのはドローンだけではないのだ。位置情報を利用することで、誘拐や暗殺が容易になった例もある。最近の例では、イランでデモ参加者がスマフォの位置情報を追跡されたために逮捕された。この場合、電話を盗聴する必要はない。また、クリアテキスト(暗号化されていないデータ)のトラフィックは、人々のデータを販売するデータブローカー(例:ショッピングセンター)の温床にもなっている。
影響を受けたユーザーは、DNS-over-TLSクラウドベースのブロックサービスを使用してQualcomm XTRA Serviceをブロックするか、GrapheneOSのプロキシサーバーにこのトラフィックを自分で再ルーティングできるが、これには専門知識が必要で、NitroPhoneと同じレベルのセキュリティは提供されない。
2023/5/6更新情報
GrapheneOSは、この問題を解決するための第2弾(最終版)をQualcommデバイス向けにリリースした。
訳注
GraphineOSのリリース内容は以下の通りです。
GrapheneOSの最新リリースでは、Qualcomm PSDS(XTRA)サーバーを、デフォルトでデータをキャッシュするGrapheneOSサーバーに置き換えている:
GrapheneOS (@GrapheneOS@grapheneos.social)GrapheneOS version 2023050500 released: See the linked release notes for a summary of the improvements over the previous release. Forum discussion thread: ...また、不要なUser-Agentヘッダを完全に削除し、以前のようにシリアル番号だけを削除するのではなく、User-Agentヘッダを削除した。
最初に書いたように、これが影響するのは、Qualcommを使用しているPixel 5aまでで、Google Tensorをつかっている6以降は無関係です。リリースノートにも次のようにあります。
- Pixel 4, Pixel 4 XL, Pixel 4a, Pixel 4a (5G), Pixel 5, Pixel 5a: add support for controlling PSDS on Qualcomm SoC devices to extend PSDS configuration to them along with using the GrapheneOS PSDS cache by default
- Pixel 4, Pixel 4 XL, Pixel 4a, Pixel 4a (5G), Pixel 5, Pixel 5a: disable User-Agent for Qualcomm PSDS (XTRA) via xtra-daemon hooking to avoid providing device information to the server (we already removed the hardware identifier via SELinux policy in a previous release)
- Pixel 4, Pixel 4 XL, Pixel 4a, Pixel 4a (5G), Pixel 5, Pixel 5a: use time.grapheneos.org for XTRA NTP and qualcomm.psds.grapheneos.org for XTRA PSDS downloads by default
- Pixel 4, Pixel 4 XL, Pixel 4a, Pixel 4a (5G), Pixel 5, Pixel 5a: always use most complete / generic Qualcomm PSDS (XTRA) variant via xtra-daemon hooking to avoid leaking info on radio variant or region
(以下、この記事が公開された時の議論などについての記述があるが省略。基本的には、Nitrokeyが自社製品は安全だと強調するような書き方をしたので激論になったものと思われる)