1,000 を超える Android アプリが適切な権限なしでユーザー データにアクセスできる

研究者は、Google Play ストアの多くの Android アプリには、Android の許可モデルをバイパスしてユーザー データを収集する方法があることを発見しました。

ユーザーの認識とは裏腹に、Android はモバイル OS として実際には非常に安全です。 私たちは一般に、最も弱い部分はユーザーであるという前提を受け入れます。 何をインストールするか、どのような権限を与えるかに注意していれば、不正なアクセスやデータの配布から安全に保つことができます。 Android アプリによるあなたの位置情報へのアクセスを拒否した場合、そのアプリはあなたがどこにいるか、またはどこにいたかを把握する方法を持たないようにする必要があります。 しかし、国際コンピュータサイエンス研究所(ICSI)の研究者らによると、一部のアプリ開発者はAndroidのパーミッションモデルを回避する方法を考え出したという。

によると CNET、この研究は先月、 プライバシーコン 昨年9月にGoogleとFTCの両方に責任を持って開示された後。 とはいえ、 FTCのウェブサイトで公開された論文 チームが分析でフラグを立てた正確なアプリはリストされていません(詳細は後ほど説明します) Usenix セキュリティ カンファレンス 来月)、分析方法と、アプリが Android の許可モデルをどのようにバイパスしたかについて詳しく説明します。 当然のことながら、Google はセキュリティとプライバシーが Google を変えると主張しています。 Android Qで導入されました したがって、この文書は、Android 10 で行われたプラットフォーム変更の一部に対する Google の正当性についての貴重な洞察を提供します。 飛び込んでみましょう。

1000 を超えるアプリが Android の権限モデルをバイパスした方法

研究者らは、サイド チャネルと秘密チャネルという 2 つの異なるセキュリティ回避技術を区別しています。 サイド チャネル手法には、セキュリティ メカニズムでカバーされていない方法で特定の情報にアクセスすることが含まれます。 たとえば、Android Pie で MAC アドレスのランダム化が導入されるまで、アプリは MAC アドレスを使用してデバイスの位置を追跡できました。 コバート チャネル技術では、2 つのサービスが連携して、有効なアクセス権を持つ 1 つのサービスから、有効なアクセス権を持たないサービスにデータを送信します。 たとえば、位置情報へのアクセスが許可されているアプリは、アクセスが許可されていないアプリとそのデータを共有する可能性があります。

ICSI チームは、米国の Google Play ストアで最も人気のある Android アプリ 88,113 個を分析し、1,000 を超えるアプリとサードパーティ ライブラリを発見しました。 サイドチャネルや秘密チャネルを利用して Android のセキュリティ対策を回避し、ユーザーの位置データや永続的な識別子にアクセスできるようにする デバイス。 チームは分析を計画していた 88,113 個のアプリの新しいバージョンを求めて Play ストアを定期的にスクレイピングしていたため、完全なデータセットは 252,864 個の APK で構成されていました。 彼らは最初に、各アプリの動作を Google Nexus 5X Android 6.0.1 Marshmallow を実行していましたが、後で調査結果を再テストしました。 グーグルピクセル2 Android Pie を実行して、調査結果が開示時点の最新リリースの時点でもまだ有効であることを証明しました。

このデータセットを使用して、チームは動的および静的分析を使用して Android の許可モデルの回避を検出する方法を開発しました。 言い換えれば、チームはアプリの実行時の動作を監査する (動的分析) か、潜在的に悪意のある動作がないかコードをスキャンする (静的解析) ことによって、アプリの動作を研究しました。 ) もちろん、悪意のあるアプリ開発者はこれらの手法を認識しており、コード難読化と動的コード読み込みを使用して静的分析を困難にしたり、TLS を実行したりしています。 アプリケーションが仮想化環境で実行されていることを検出するためにインターセプトを使用するため、ICSI チームは静的分析と動的分析 (ハイブリッド分析) を組み合わせて採用しました。 テスト中。 その結果、チームは、必要な権限を持たないアプリによって次のデータがスクレイピングされていることを発見しました。

  • IMEI: IMEI は一意の永続的な識別子であるため、オンライン サービスが個々のデバイスを追跡できるように収集するのに役立ちます。 チームが発見したのは、 サーモナード そして 百度 SDK は秘密チャネルを使用して IMEI を読み取りました。 IMEI への正当なアクセス権を持つアプリは、デバイスの IMEI を含む隠しファイルを外部ストレージに保存し、正当なアクセス権を持たない他のアプリが IMEI を読み取れるようにしていました。 この方法で Baidu の SDK を使用していることが確認されたアプリには、香港と上海向けの Disney のテーマパーク アプリ、Samsung Health、Samsung Browser が含まれます。
  • ネットワークMACアドレス: ネットワーク MAC アドレスも一意の識別子であり、通常は ACCESS_NETWORK_STATE 権限によって保護されます。 研究者らによると、アプリは C++ ネイティブ コードを使用して「多数の保護されていない UNIX システム コールを呼び出していた」という。 チームは、Unity SDK を使用して、 MAC アドレスを取得するためのネットワーク ソケットと ioctl が必要ですが、12,408 個のアプリのうち 748 個に問題のコードが含まれているものの、ACCESS_NETWORK_STATE が欠落していることが指摘されています。 許可。
  • ルーターのMACアドレス: ACCESS_WIFI_STATE 権限は BSSID を保護しますが、/proc/net/arp 内の ARP キャッシュを読み取ることで、アプリは権限を必要とせずにそのデータを取得できます。 研究者が特定したのは、 OpenX SDK はこのサイドチャネル技術を使用しています。
  • 地理位置情報: 研究者らは、Shutterfly アプリが写真の EXIF メタデータの位置タグにアクセスしていることを発見しました。 必要なのは READ_EXTERNAL_STORAGE 権限だけです。

Android Q では、Google はアプリに IMEI を読み取るための READ_PRIVILEGED_PHONE_STATE 権限を持っていることを要求するようになりました。 Android Q を実行しているデバイスは、デフォルトでランダム化された MAC アドレスを送信するようになりました。 ついに Android Q が登場 範囲指定されたストレージ この変更により、アプリが写真から位置データを読み取る機能が軽減されます。 したがって、これらの懸念は最新の Android リリースで解決されましたが、周知のとおり、 かなり時間がかかります 最新のアップデートが伝播されるようにします。


結論

全体として、この調査は、一部のアプリがアクセス許可の背後で保護されるべきデータにどのようにアクセスするかについての洞察を提供します。 この調査では、Google が「危険な」権限と呼ぶもののサブセットのみが調査されており、特に Bluetooth、連絡先、SMS などの権限はスキップされています。 このレポートの詳細については、以下を読むことをお勧めします。 FTCに提出された書類.