【Android】俺選!Androidアプリの糞パーミッションベスト5!【uses-permission】

もっとプログラムの話でも書けとガイアが俺にささやいた。

嘘です。

今日のお話はAndroidの糞アプリを見つけるための、お手軽パーミッション講座です。

Androidにはパーミッションというものがあります。これは端末の重要な機能にアクセスする際には、ユーザーの承諾を得てからでないとアクセス出来ないというAndroidのセキュリティ機能です。例えば、電話帳にアクセスするには「READ_CONTACTS」、端末を振動させるには「VIBRATE」、SDカードへデータを書き込むには「WRITE_EXTERNAL_STORAGE」といったように、使う機能によって権限がわかれています。英語ですがどんなのがあるか、一覧はこちら。http://developer.android.com/reference/android/Manifest.permission.html

しかし、このパーミッションという仕組は正直なところほとんどセキュリティに貢献していないというのが実際のところです。なにせ、GooglePlayでアプリをインストールするときにはたしかにこのような警告が出ます。

Screenshot_2013-03-22-00-35-06

しかしユーザーは宣言されているパーミッションのすべてを許可するか、それともアプリをインストールしないかの2択しか許されておらず、一部の権限だけ許可するということができないので、結局クソ権限があったとしてもそれを除外することができません。また、パーミッションはあくまで機能を使うという宣言であって、実際のところ危険な利用方法になっているか、それとも正しく使われているかというのはユーザーからはわかりません。しかし、使われているパーミッションの傾向から、怪しい権限というのを見分けられるようになれば・・・Android上級者といえるかもしれませんかね。臭い権限に蓋をしたいでござる。そんなわけでAndroidのクソ権限ランキング!

第5位!
■com.android.vending.BILLING
◯カテゴリ「ネットワーク通信」呼称「Google Play請求サービス」
◯正当な使い方
アプリ内課金を行う
◯危険な使い方
なし
◯利用されるアプリの傾向
アプリ内での支払いサービスに使います。逆に無料アプリなのにこの権限がついてたら、実は金払わないとフル機能使えないってことじゃないですか、ヤダー。アプリの開発は皆様の温かい支援によって行われています。

第4位!
■WRITE_EXTERNAL_STORAGE
◯カテゴリ「ストレージ」呼称「SDカードのコンテンツを修正/削除する」
◯正当な使い方
外部ストレージにデータを書き込む
◯危険な使い方
外部ストレージのデータをぶっこぬいて送信する
◯利用されるアプリの傾向
容量の大きいゲーム
SDカードエクスポート機能を持つアプリ
よく使うパーミッションですが、実は外部SDの情報を自由にぶっこ抜く事のできる権限。書き込み権限だけでなく読み込みの権限も持つのがポイント。大容量アプリだとSDカードにデータをダウンロード出来るようにしてたりするので、よく使うのですが、よく考えたら外部SDの写真とかぶっこ抜けるよね・・・。おおこわいこわい。ただしよく使う権限なので99%のアプリは安全です。

SDカードの読み込みは権限なくても読めます。なので、気がついたらSDカードからぶっこ抜かれていたとかAndroidではデフォルト

第3位!
■WAKE_LOCK
◯カテゴリ「システムツール」呼称「端末のスリープを無効にする」
◯正当な使い方
端末をスリープさせず、Activityをサスペンドさせません。多くの場合これは正当な使われ方がされません。殆どの場合Serviceを利用したり、画面を消灯しないようなマニフェストを記述するのが正解です。
◯危険な使い方
ずっとWAKE_LOCKを取得する。電池を食う。死ね。
◯利用されるアプリの傾向
・・・私の大嫌いなパーミッションです。でも自分の作ったアプリには使う矛盾。ファック!これを利用すると、端末が電源ボタンを押してもスリープしなくなります。作り方が悪いと、あっという間に電池を消耗する原因になるので、特に理由がなければ使わないのが望ましいパーミッションです。コロプラとかでも使われてて、サスペンドしてても本当に電池を食うんだよね・・・死ねよコ◯プラ。ちなみにこれがついていても電池をバカ食いしてなければ無害です。

第2位!
■INTERNET
◯カテゴリ「ネットワーク通信」呼称「完全なインターネットアクセス」
◯正当な使い方
インターネットに接続する
◯危険な使い方
広告を表示する
個人情報をぶっこぬいてサーバーに送る
◯利用されるアプリの傾向
ほぼすべてのアプリ
・・・最も基本的なパーミッションにして、最も怪しいパーミッション。これがないとネットに接続することもできないのですがね。ちなみに、アプリがアップデート時にこれを要求してきたら、ほぼ間違い無く広告がつくようになった証です。アップデートやめときましょ。これがついていないアプリはほぼ安全と言えるが、複数アプリを組み合わせるなど抜け道もあったり。

第1位!
■READ_CONTACTS
◯カテゴリ「個人情報」呼称「連絡先データの読み取り」
◯正当な使い方
電話帳のデータを取得する
◯危険な使い方
電話帳のデータを取得する
◯利用されるアプリの傾向
LINEやSkypeのような電話アプリの他に一部のホームアプリやATOKなんかにも使われています。FacebookとかLINEとか個人情報をぶっこ抜くためのアプリにしか使われないので殆どの場合はこれがついてたら危険だと判断ですね。とはいえ、個人情報保護法もありますので、普通はぶっこ抜かれた電話帳データは安全に運用されるとは思いますが・・・気持ち悪いですね。ちなみにATOKとかは電話帳のデータをIMEで直接入力する機能に使ってますが、こういう信頼できそうな会社だと使ってても安心なのですが。

Screenshot_2013-03-22-00-43-35例はコロプラ。絶対にこんなに権限いらんだろう・・・。ストレージとか端末のスリープ無効とか何に使ってるんでしょう?マジキチ。

気をつけないといけないのはユーザーからはそのパーミッションがどのように使われてるかわからないということです。例えば、READ_PHONE_STATEとか付いているからといって、殆どの場合電話番号がぶっこ抜かれて・・・なんてことはなく、もっと別の用法として使われている場合がほとんどです。なので、「この権限が付いているから糞だ!」と言うことは正直なところありえないんですよね。結局、そのアプリを作っている開発者が本当に信用できるかどうかが一番大事です。オメーラ、LINEに個人情報ぶっこ抜かれんじゃねーぞ?

逆に、このパーミションは多くの場合安全というのも説明しておきましょう。

Android!このパーミッションは意外とよく使う!なら安全じゃね?(※ただし信頼出来る開発者に限る)

■READ_PHONE_STATE
◯カテゴリ「電話/通話」呼称「携帯のステータスとIDの読み取り」
◯正当な使い方
電話がかかっているかどうかを取得します
IMEI/IMSIといった端末のIDを取得し、一意の固有デバイスを特定します
◯危険な使い方
電話番号をぶっこ抜きます
◯安全に利用されるアプリの傾向
ゲームなどで電話がかかると音楽を止めたりします
・・・一見危険そうに見える権限で、電話番号をぶっこ抜けるのですが、割と安全に使われる権限です。なぜ、電話番号を抜けるパーミッションと、電話がかかってきたかどうかを判定するためのパーミッションが同じなのか全く意味不明。

■ACCESS_COEARTH_LOCATION
◯カテゴリ「現在地」呼称「おおよその位置情報(ネットワーク基地局)」
◯正当な使い方
おおまかな位置情報を取得する
◯危険な使い方
GPS位置情報と組み合わせて、ユーザーの位置を特定する
◯利用されるアプリの傾向
広告を出すのに使うことが多いです。ユーザーのおおまかな位置にあわせて広告を出したりします。GPS位置情報であるACCESS_FINE_LOCATIONと組み合わせてある場合は、カレログのようにユーザーの位置を特定するのが目的になるのですが、どちらか単体だとだいたい安全です。ACCESS_FINE_LOCATIONも単体ならGPSが動作しているかどうか取得するためだけに使っている場合が多いです。基本的にGPS位置情報とネットワーク位置情報両方揃ってない限りは安全な可能性が高い?逆にそれら2つが揃っている上に位置ゲーとかでない場合は危険なアプリと言えます。

こんなものでしょうかね。なれると怪しい権限を見抜けるようになるかと思います。あんまり見かけないような権限がついてるアプリは、怪しいですよねえ。個人情報(デバッグ)-「機密ログデータの読み取り(READ_LOGS)」とかアカウント「アカウントリストの管理(GET_ACCOUNTS)」なんかはかなりエグいことが出来る権限だったりします。まず使わないけど。

Screenshot_2013-03-22-01-44-50例は機密ログデータの読み取り。実はデバイスログにはデバッグ用に色々まずいデータが出力されていたりします。こういうあまり見かけないパーミッションには注意ですね。(まあこれ自作アプリなのですが)

最後に、ぶっちゃけパーミッションでアプリの安全性を語るなんてネタでしかないのでそこだけは注意です。今日の日記はネタの要素が強いですしね。結局制作してるところが、信用できるかどうかですよ。お前らふぇーすぶっくに個人情報ぶっこ抜かれて泣くんじゃないぞ?

最後にちらっと落書きするのが恒例になっているのでもう何が何やら。

blog20130319

なんか久しぶりに絵を描いたら、すごい変になったOrz

ところでそろそろこのクソブログも30万アクセスに行きそうですね。もう10年近くやってる気がしますが、ようやく30万の大台ですなあ。もちろんエッチな絵を用意してお待ちしております。お楽しみに。

コメント

  1. aaa より:

    WRITE_EXTERNAL_STORAGE

    これ、勘違いしてる人多いですけど、書き込みの権限ですよ。
    読み込みの方は特にパーミッション設定してなくても出来ます。
    要するに漏れちゃまずいようなファイルはSDカードには入れるなってことですね。

    • ingaouhou より:

      おお、確かにREADはなくても読み込みできますね。JB以降デバッグ機能で読めなくなるするオプションが有るくらいで。
      修正しました

  2. 匿名 より:

    無料で使ってるんだから
    広告ぐらいいいでしょ

    • ingaouhou より:

      まあ、広告の善し悪しはともかくとして、このパーミッションがついたら広告がつくようになった可能性が高いってだけですね。アップデートするしないはユーザーの自由です。

タイトルとURLをコピーしました