モバイルアプリがあなたを見ている

モバイルアプリが利用者の位置情報をトラッキングし、その情報が第三者に販売されている場合があります。利用者としては、どう対処できるのでしょうか。

モバイルアプリの中には、位置情報を追跡するものがあります。その情報が密かにサービス元へと報告され、サービス元がそのデータを販売している場合もあります。あなたが使っているアプリのうち少なくとも一つくらいは、そういった動きをしていることでしょう。どのアプリがそんな挙動をするのか、どうやって突き止めたらよいのでしょうか。こういうアプリに対し、どう対処すべきなのでしょうか。

自分を追跡しているのは、どのアプリか

米国フロリダ州のとあるビーチで繰り広げられた春休みのお祭り騒ぎから、米国全土へCOVID-19の感染が広がる様子を、視覚的に示した動画があります。これを目にしたとき、Kaspersky GReATのディレクターであるコスティン・ライウ(Costin Raiu)は、新型コロナウイルスのことではなく、利用者の位置情報を追跡するアプリのことを考えていました。このレポートでは、X-Modeが提供する位置情報が使用されていました。X-Modeはこのデータをどこから手に入れたのでしょうか?

X-ModeはSDK(アプリの中に組み込めるコンポーネント)を提供しており、定期的なアプリ利用者の数に応じた額をアプリ開発者に支払い、アプリに組み込んでもらっています。その見返りに、このSDKは位置情報のほか、スマートフォンのセンサー(ジャイロスコープなど)から情報を集め、X-Modeのサーバーへ送ります。こうして収集され、匿名化されたとされる情報を、X-Modeは販売しています。

X-Modeによると、このSDKは充電の1〜3%しか使用しないためバッテリー寿命が大きな影響を受けることはないとのことで、利用者は基本的にSDKの存在に気付くことはありません。X-Modeはまた、この方法での情報収集は「間違いなく合法」であり、SDKはGDPRに完全に準拠しているとも述べています。

トラッキングするアプリはどれほどあるのか

ライウは考えました。自分のスマートフォンもそのようにしてトラッキングされているのだろうか?確かめる一番簡単な方法は、トラッキング用SDKが使っている指令サーバーのアドレスを特定すること、そして、スマートフォンから外へ出て行くネットワークトラフィックをモニタリングすることです。スマートフォン上のアプリがこういったサーバーの少なくとも一つと通信していれば、実際に追跡されていたことになります。調査のためには、サーバーのアドレスが分からなければなりません。この調査を基に、今年オンライン開催されたSecurity Analyst Summit(SAS@home)で、彼は講演を行っています。

ある程度のリバースエンジニアリングと、いくらかの推量、いくらかの暗号解読と聞き込みの結果、サーバーのアドレスを突き止めたライウは、アプリによるこれらサーバーへのアクセス試行を検知するプログラムを作成しました。その結果、例のトラッキング用SDKを使用しているアプリには特定のコードが含まれることが判明しました。

ライウは、このSDKが組み込まれた特徴的なアプリを240個見つけました。これらのアプリがインストールされた回数は、合計で5億回以上。このようなアプリを1人の利用者が1回だけインストールしたと仮定すると、世界人口の16人に1人が、トラッキングアプリを自分のデバイスにインストールしている計算になります。これはかなりの確率です。あなたのデバイスにも、1/16の確率で、トラッキングアプリがインストールされているのです。

それだけでなく、X-Modeは、この業界の数ある企業の1社にすぎませんでした。

これに加え、どんなアプリでも、SDKが1つ以上組み込まれている可能性があります。例えば、X-ModeのSDKが含まれるアプリを調べていたとき、ライウは同じアプリの中に、それ以外にも別の会社の位置情報収集コンポーネントを5つ見つけました。アプリの開発元は、明らかに、アプリからできる限りの収益を上げようとしていました—無料アプリではないにもかかわらず。アプリに対してお金を払うことは、残念ながら、こういったトラッキングとは無縁であることを意味するわけではないようです。

トラッキングを回避するためにできること

このような位置情報追跡SDKの問題は、アプリをダウンロードする時点で、トラッキング用コンポーネントが含まれているかどうか分からないという点にあります。正しく機能するには位置情報が必要なアプリもあり、場合によっては位置情報の要求には正当な理由があります。しかし、そのようなアプリであっても、開発元が利用者の位置情報を販売しているかもしれません。これは見分けるのが難しい問題です。

トラッキングされる確率をできるだけ下げるための方法として、テクノロジーに詳しい人向けに、ライウはトラッキング用SDKが利用する指令サーバーの一覧をまとめました。詳しくは、ライウのGitHubページをご覧ください。Pi-holeとWireGuardをインストールしたRaspberryPiコンピューターを使用すれば、自宅ネットワーク内のトラフィックを傍受し、こういったサーバーと通信しようとするアプリを暴き出すことができます。

とはいえ、この方法は上級者向きであって、一般のアプリ利用者向きではありません。より一般的な方法としては、アプリの権限を絞ることでトラッキングされる可能性を低くする方法があります。

  • 位置情報を利用しているアプリはどれか、確認する。Android 8での確認方法は以前の記事で紹介していますが、それより新しいバージョンの場合も、方法はだいたい同じです。iOSデバイスによるトラッキングを無効化する方法は、こちらの記事をご覧ください。アプリにこういった権限が必要ないと感じたら、ためらわず権限を取り消しましょう。
  • アプリが位置情報にアクセスできるのはアプリ使用時のみにする。バックグラウンドで動作しているときには、位置情報は必要ないのが普通です。
  • 使わなくなったアプリは削除する。例えば、1か月以上も開いていないアプリは、もう要らないと考えていいでしょう。後で必要になったときには、インストールし直せばよいのです。
  • 位置情報を追跡するコンポーネントよりもたちの悪いコンポーネントは多々あります。公式アプリストアから配信されている正当なアプリでも、トラッキング用のコンポーネントが含まれている場合があります。また、明らかに悪質なアプリもあれば、ダウンロード時点では問題なかったのに更新のインストール後に悪質なアプリに変貌するアプリもあります。こうした事情から、カスペルスキー インターネット セキュリティ for Androidのような、モバイル脅威から保護するセキュリティ製品を使用することをお勧めします。
ヒント