「Google Play」におけるアクセス許可表示の変更、アクセス権限の不正な追加の恐れ

iOS や Android といったモバイル端末のオペレーティングシステム(OS)が、 PC の OS に比べて安全な理由の 1つは、アプリのパーミッションに関して厳格な管理が行なわれているからです。理論上、各アプリは、ユーザもしくは OS のパーミッションの中から、必要なものに限定して要求します。

しかし、適用されたパーミッションが、いつも適切に働くとは限りません。アプリの開発者は、必要以上のパーミッションを求める傾向があります。一方、ユーザは、常に注意を払っているとは限らず、どんなもので許可します。パーミッションシステムに問題があったとはいえ、アプリのパーミッションに格段の注意を払っていたユーザに対しては、パーミッションを自由に確認する手段がありました。

しかし、Google が、Android のパーミッションモデルを抜本的に変更したことが明らかになりました。これにより、ユーザの可視性と使いやすさが大幅に悪化しました。また、不正なアプリを開発するユーザが、アプリを更新して危険性のあるパーミッションを追加する余地を与えました。

これはどのように行なわれたのでしょうか。Android のさまざまなフォーラム上では、開発者たちが、2014年5月中旬に配信された 「Google Play」におけるアクセス許可表示の変更によって、パーミッションとアプリの更新の取り扱いが改悪になったと議論しています。

これまでは、アプリを更新するためには新しいパーミッションが必要でした。そのため、ユーザは、新しいアプリをインストールするのと同様に、パーミッションを確認し、明確に許可を与える必要がありました。しかし、こうした方法は過去のものとなり、必要とするパーミッションが、ユーザがすでにアクセス権を与えたグループと同じであれば、明確な許可が必要でなくなりました。アプリの自動更新が有効になっていた場合、ユーザがパーミッションの変更に気づかないうちに、裏で更新される可能性があります。

これらの権限グループは、「Android Developers」に記載されています。各グループは機能ごとに作成されており、例えば、位置情報サービスを扱うすべてのパーミッションは、1つのグループにまとめられています。壁紙のパーミッション、保存に関するパーミッションも、それぞれの権限グループに分かれています。このように全31グループが、この Webサイト上で言及されていますが、この件に関して、13の権限グループについては、Google の FAQページで明確に定義されています。

これはすべて善意から生まれたものです。パーミッションを効率化し、ユーザにとってより簡易にしようとしました。しかし、これは厄介な問題も生み出しました。明らかに「無害」なパーミッションを持つアプリを最初に作成し、不正な挙動に必要なパーミッションを後から追加することを、いとも簡単にしたのです。例えば、フラッシュライトと録音・録画を使用するパーミッションは、同じグループに入っています。つまり、フラッシュライトのアプリが、変更にユーザが気づかないうちに、録音・録画もしくはストーカー行為を行うアプリに簡単に更新される可能性があります。これらと同じグループに所属する他のパーミッションは以下のとおりです。

  • 外部記憶装置のコンテンツの読み取り
  • 外部記憶装置のコンテンツの変更および削除
  • 外部記憶装置の初期化
  • 外部記憶装置の取り付けおよび取り外し

上記のリストを例にとってみると、外部記憶装置のコンテンツを読み取るパーミッションを備えたアプリは、コンテンツを変更したり削除する機能を備えたアプリに簡単に「アップグレード」することができます。

一般的に、Google は特定の機能ごとにグループを作成したため、読み取りと書き込みのパーミッションは同じグループになる傾向があります。実際、読み取りのパーミッションをアプリに許可すると、変更のパーミッションも許可したことになります。これは、正常な挙動と正反対です。友人に何かを貸したら、貸したときと同じ状態で戻ってくると普通は考えるものです。

これは、非常に現実的な意味で、パーミッションの役割を奪い、パーミッションを役に立たないものにしました。ユーザは、パーミッションを元にアプリを管理することが非常に困難になりました。なぜなら、カテゴリーが多岐にわたっているため、最も単純なアプリでも複数のパーミッションを必要とします。逆に、アプリ開発者にとっては、インストールしたアプリに、自動更新でパーミッションを追加することが非常に簡単になりました。これは不正利用される可能性があります。

こうした理由により、アプリの挙動を管理するためには、不正なアプリを自動検出する「Google Bouncer」や「アプリを確認する」といった他の方法のほうが頼れるかもしれません。どちらも良い機能ですが、これまでの経緯から、回避されやすいことがわかっています。例えば、Android アプリは、不正なコードを隠ぺいし、動的にリモートサーバからコードを読み込んで、不審な挙動の検知を難しくさせる可能性があります。

ユーザには、こうした「更新」に対抗する選択肢があまりありません。ユーザが取れる選択肢の 1つは、自動更新を完全に無効にすることです。「Google Play」のアプリは、ユーザに更新を通知するため、ユーザは新しいパーミッションを確認して、手動で更新することができます。ただし、この方法は、かなり面倒かもしれません。

さらに、プライバシーに対する今日の意識を考えると、Googleを「信用する」のは理想的な提案ではありません。ユーザは、Google を信用するかしないかを自身で決定する手段を持つべきです。こうした手段をユーザから取り上げたのは、企業の傲慢というしかないでしょう。

参考記事:

  • Play Store Update Changes Permissions, And Not For The Better
    by Veo Zhang (Mobile Threats Analyst)
  •  翻訳:品川 暁子(Core Technology Marketing, TrendLabs)