Hello there, ('ω')ノ
🔑 「権限」って何のこと?
Androidのアプリは、あることをするために、事前に「許可(パーミッション)」を求めてきます。
例えば…
- カメラを使いたい → 「カメラ権限」
- 位置情報を取得したい → 「位置情報権限」
- 通話履歴にアクセスしたい → 「通話権限」
つまり、**アプリがスマホの中の“特別な機能や情報”にアクセスするための「鍵」**のようなものです。
📱 アプリがよく要求してくる権限の例
| 権限名 | できること | リスク例 |
|---|---|---|
| カメラ | 写真や動画の撮影 | 勝手に盗撮される可能性 |
| マイク | 音声の録音 | 盗聴される可能性 |
| 位置情報 | 現在地の取得 | 行動履歴を追跡される可能性 |
| SMS | ショートメッセージの送受信 | 不正な課金やなりすまし |
| 通話履歴 | 通話の情報にアクセス | プライバシー漏洩 |
| 連絡先 | アドレス帳の読み書き | 知人へのスパム送信 |
日常的に見慣れているこれらの許可ですが、アプリがこの権限をどう使うかで、リスクは大きく変わります。
🧨 問題なのは「必要以上に権限を求めるアプリ」
診断の現場でよく見かけるのが、
「なんでこのアプリがそんな権限を要求してるの?」
というケース。
たとえば:
- 電卓アプリが「連絡先」や「位置情報」へのアクセスを求める
- 単なるカレンダーアプリが「カメラ」と「マイク」の両方を要求してくる
これは、本来の機能と関係ないのに権限を広く取りすぎている状態で、脆弱性の原因にもなりやすいです。
とくに広告SDKや外部ライブラリが組み込まれているアプリでは、開発者が意図していない権限が含まれることもあります。
🕵️♀️ 権限診断で見るべきポイント
脆弱性診断の中で、「権限」が関係するチェック項目は以下の通りです。
| チェック項目 | 確認ポイント |
|---|---|
| 権限一覧の確認 | アプリが要求している権限を洗い出す |
| 権限の使い道 | 本当にその権限が機能に必要か? |
| 過剰な権限 | 利用目的と関係ないものはないか? |
| 古い権限 | 廃止された権限や危険な設定が残っていないか? |
| 権限の制限範囲 | permission.PROTECTION_LEVEL などの設定確認 |
このように、「何を求めているか」「なぜそれが必要なのか」「設定が適切か?」を1つ1つ見ていきます。
🔐 Android 6.0以降の「実行時権限」とは?
Android 6.0(Marshmallow)以降では、アプリインストール時ではなく「アプリを使う瞬間」に権限を求めるようになりました。
たとえば:
写真アプリを開いたときに、「カメラへのアクセスを許可しますか?」と表示される
これはユーザーにとっては安心な仕組みですが、開発側での対応ミスや、ユーザーの無意識な操作によって、結局すべて許可されているケースも多いです。
診断ではこうした「実行時許可の扱い方」も確認対象となります。
👨💻 実際の診断方法(例)
診断ツール(例:MobSFやDrozer)を使って、アプリの権限一覧を抽出できます。
コマンド例(Drozer):
dz> run app.package.info -a com.example.app
出力例(抜粋):
Requested Permissions: - android.permission.CAMERA - android.permission.READ_CONTACTS - android.permission.ACCESS_FINE_LOCATION
この結果を見て「機能と関係ない権限があるか?」を見極めるのが第一歩です。
✅ まとめ
- 権限とは、アプリがスマホの重要な機能や情報にアクセスする“鍵”のようなもの
- 必要以上の権限を持つアプリは、情報漏洩や悪用のリスクがある
- 診断では、アプリの目的と照らし合わせて「過剰な権限」がないかをチェックする
- Android 6.0以降は「実行時権限」にも注意が必要
Best regards, (^^ゞ