TikTok、Meta、X などがiOSプッシュ通知を悪用してユーザーに関するデータを収集
Appleは長い間、フィンガープリンティング(デバイスのハードウェアやソフトウェア機能を通じてユーザーを追跡すること)は許可されていないと発言してきた。
しかし、一部の人気アプリは、平然と悪用できるバックドアを発見したようだ。
プライバシー研究者のトミー・マイスク(Tommy Mysk)は、多くの人気iOSアプリが、2016年に初めて導入されたプッシュ通知機能を使って、ユーザーのデバイスに関する詳細なデータを企業のサーバーに送信していることを発見した。
Mysk氏は、TikTok、Facebook、FB Messenger、Instagram、Threads、X(旧Twitter)を含むいくつかのSNSアプリを調査した際に、この不穏で持続的と思われるパターンに気づいたと説明した。
これらのアプリはすべて、アプリが起動していなくてもプッシュ通知をカスタマイズできる機能を活用していた。
この機能は本質的に悪意があるものではなく、本来重要な目的を果たすものです。
例えば、通知のペイロードをデコードしたり、追加コンテンツをダウンロードしたりして、ユーザーに最適な形で通知を表示する必要があるアプリに便利です。
アプリがプッシュ通知を受信すると、iOSはアプリに、起動して短時間実行させるシグナルを送ります。
この間、アプリはプッシュ通知の外観を調整するなど、開発者が望むことを何でもできる。
「プッシュ通知の外観を調整する」というのがこの機能の本来の目的だろうが、その時間内にアプリがデータを収集したり、ユーザーに関する情報を送信したりしている可能性があること問題がなのです。
Mysk氏が調査したアプリは、この限られた実行時間をフルに活用して、デバイスからデータを収集し、そのデータをリモートサーバーに送信できるようになっていたことを、Mysk氏は発見した。
マイスク氏は、バックグラウンドでコードを実行する能力を、「データを大量に収集したがるアプリにとっては金鉱」と呼んでいる。
では、Mysk氏によれば、この機能は具体的な仕組みは何でしょうか?
- アプリ開発者は、バックグラウンドで実行させたいコードを思いつく
- 開発者はアプリのユーザーにプッシュ通知を送る。プッシュ通知の内容は、ニュース、スポーツのライブスコア、新しい友だちリクエストなど、何でも可能。
- iOSはプッシュ通知がソーシャル(SNS)系アプリからのものだと認識し、バックグラウンドでそのアプリを起動させる。この時点でアプリは実行中になるが、ユーザーにはアプリのことは表示されず、アプリを操作したりすることもできません。
- アプリは開発者が用意したコードをバックグラウンドで実行する。
この時、例えば画像などという情報を通知に追加するという無害なことに使われる場合もあるが、ユーザーのデバイスから個人情報・データを採取し、そのデータを開発者のサーバーに送信するために使われることもできる。
このスキームを使って、ユーザーのデバイスに関するソフトウェアとハードウェアに関する情報の組み合わせというユニークな情報を、アプリの開発者が取得できる。
多くのアプリがこの機能を利用して、バックグラウンドで静かに動作しながら、デバイスの詳細情報を送信している。これには、システムの稼働時間、ロケール、キーボード言語、使用可能メモリ、バッテリー状態、デバイスモデル、ディスプレイの明るさなどが含まれます。
その後、このように収集されたデータはアプリ間でユーザーを追跡するために使用することができる、とMysk氏は指摘している。
具体的にどのような情報が収集されるのか?
このような手法の例を説明するビデオでは、Myskはこのプッシュ通知の抜け穴を通じてソーシャルメディア企業が収集できるデータの種類を示している。
収集は、自社サービスを通じて行われるか、あるいはGoogleの分析ツールであるGoogle AnalyticsやFirebaseなどのサードパーティツールの助けを借りて行われる。
例えばTikTokは、プッシュ通知を受け取るたびにiPhoneの起動時刻(boot time)をリモートサーバーに送信している。
つまりTikTokは、ユーザーが最後にiPhoneを再起動した時間を正確に把握しているのだ。
一定期間にわたってこの情報を収集すれば、起動時間からユーザーがiPhoneを再起動する頻度を知ることができ、iPhoneの使用量や安定性を推測することができる。
また、ユーザーのデバイスを特定したり、アクティビティを追跡したりするのにも使える。
Facebookアプリが同じデバイスにプッシュ通知を送ると、FacebookはユーザーのiPhoneの最終起動時間に関する同じデータを受け取る。
Mysk氏が指摘するように、これは異なるアプリ間でユーザーを追跡することを容易にする可能性がある。
端末の起動時刻はユーザーのデバイスの一意な識別子として使えるからだ。
いくつかのアプリが同じデバイスの起動時間を収集して一つもしくは複数サーバーに送信している場合、これらのサーバーは起動時間データを比較し、同じデバイスにリンクさせることができる。
こうすることで、ユーザーが各アプリで同じアカウントやログイン情報を使っていなくても、異なるアプリ間でユーザーの行動や嗜好を追跡することができる。
したがって、ソーシャルメディア企業らによるプッシュ通知機能の悪用は、正当なプライバシーの脅威となる。
さらにMysk氏は、FacebookやTikTokのようないくつかのアプリは、「通知センター」(あらゆるアプリからの通知を一箇所で確認できるiOS機能)で通知をクリアする際にもデータを送信していると指摘している。
例えば、ユーザーがFacebookの通知を消去すると、Facebookアプリは、以下の詳細情報を含むリクエストを外部サーバーに送信する:
- デバイスの利用可能なメモリに関する情報
- 最終アプリイベント(投稿に「いいね!」を付けるなどの操作)
- 最終アプリイベントから経った時間
- Facebook上のユーザーのアカウントを識別するアクターID
- 好みのコンテンツサイズ
- 通知が消去されたタイムスタンプ(つまり正確な日時)
- 接続タイプなど
Twitter(X)も、FacebookやTikTokとほぼ同じ方法でユーザーの情報を収集している。
3社ともGoogleが提供するFirebaseを利用しており、Mysk氏は、「多くのアプリが通知によってトリガーされた後、デバイス情報を送信する頻度には驚かされる」と付け加えている。
Appleの開発者向け新規定:何が変わるのか?
Mysk氏は、アップルが今春から施行する開発者向けの新規定に大きな期待を寄せている。
この新規定とは、開発者は自分のアプリが特定のAPI(Application Programming Interfaces)を使わなければならない理由を説明することが必須になると、Appleは発表した。
APIは、異なるアプリが通信し、データを共有するための一連の方法・手段である。
また、開発者は、自身のコードについてだけでなく、アプリに追加するサードパーティのSDK(ソフトウェア・デベロップメント・キット)についても、そのSDKがデバイス情報にアクセスする必要がある理由を説明しなければならなくなる。
具体的には、アプリとサードパーティSDKの両方が、特定のAPIを通じてデバイス情報になぜアクセスする必要があるのかを、「privacy manifest files」(プライバシー・マニフェスト・ファイル)と呼ばれる個別ドキュメントに1つ以上の「承認された理由」として記述することが必要。
しかしここで問題なのは、この新ルールが、プッシュ通知バックドアを通じて企業らがアプリからデータを収集することを止められるかどうかだ。
理論的には止められるはずだが、Appleがこの新規定を真剣に実施し、開発者のコンプライアンスを監視する場合に限られる。
Appleがしっかり取り組むかどうかは決して確実なことではない。
私たちAdGuardは、この新しい規定が状況を改善すると信じていますが、どの程度改善するのかという、多くの変数がある難しい疑問も湧きます。
開発者は新規則を考慮しなければならないので、誠実に守ろうとする可能性はあります。
しかし、このようなデータを収集し続けようと躍起になっている人たちは、おそらくリスクを冒すことを選ぶだろう。
そして、これらのアプリを“現行犯”で捕まえることができるかどうかは、Appleとその審査官にかかっています。
いずれにせよ、アップルがプライバシー保護に積極的で透明性のあるアプローチをしっかり取ることを望んでおります。