以下の内容はhttps://cysec148.hatenablog.com/entry/2025/08/24/155840より取得しました。


第44回:パーミッション昇格とは?

Hello there, ('ω')ノ

🔐 パーミッション昇格とは?

パーミッション昇格とは、本来は制限されている操作や情報へのアクセスを、攻撃手法によって不正に得てしまうことを指します。

Androidでは、アプリごとに明示的に許可された操作(パーミッション)しかできないはずですが、他のアプリやOSの機能を悪用することで、許されていない操作を“間接的”に行える場合があります。


💡 たとえばこんな例

権限 本来できること 昇格による悪用例
READ_SMS SMSを読む 権限を持つ他アプリにインテントを送り、内容を取得
CALL_PHONE 電話をかける 意図せず電話がかかるように仕向ける
ACCESS_FINE_LOCATION GPS情報の取得 位置情報付きIntentの受信で取得
システム設定変更 通常は不可 特権的なBroadcastを利用して書き換え

🧪 典型的な攻撃手法:権限委譲の悪用

Androidでは、アプリ間で以下のような情報や処理の受け渡し機構(インテントやコンテンツプロバイダ)があります。

攻撃の流れ(例)

  1. 攻撃者のアプリ(パーミッションなし)
  2. 権限を持つアプリ(脆弱な実装)
  3. 処理を受け渡され、権限を持つアプリが「代わりに操作してしまう」

つまり、**「持っていないけど、持ってるふりをして誰かに代行させる」**ようなイメージです。


💥 よくある脆弱なケース

✅ 1. 暗黙的インテントの受信処理に認証がない

Intent intent = getIntent();
String command = intent.getStringExtra("cmd");
if ("reset".equals(command)) {
    resetAllSettings(); // ← 本来はユーザー操作でしか実行できない処理
}

→ 誰でもこのインテントを送ることで、アプリの設定を勝手にリセットできてしまう。

✅ 2. Exportedコンポーネントがノーガード

<service android:name=".LocationService"
         android:exported="true" />

→ 外部アプリが自由にServiceを起動できてしまい、位置情報の取得が可能に。


🔍 診断ポイント(静的・動的)

🔎 静的解析(Manifest・コード確認)

  • exported="true" のコンポーネントが、危険な処理を含んでいないか?
  • 暗黙的インテント(IntentFilter)で不特定多数の呼び出しを受けていないか?
  • コンテンツプロバイダでアクセス制限(パーミッションやURIチェック)があるか?

🧪 動的解析(DrozerやADB)

  • Drozerで run app.activity.inforun app.service.start を使い、外部から起動できるActivity/Serviceをリストアップ
  • 実際に意図しない処理が実行されるかを adb shell am start ... などで検証

🛡️ 対策方法

対策 内容
exportedを制限 Android 12以降は exported の明示と制限が必須
インテントの送信元を検証 getCallingPackage()getReferrer() で確認
パーミッションのチェック 外部からのリクエストには checkCallingPermission() を使う
署名付きアプリだけに許可 android:protectionLevel="signature" のパーミッションを活用
不要なインテントやAPIの公開を避ける 内部利用に限定できる処理は外部に出さない設計にする

🧠 よくある誤解と現実

誤解 実際は…
自分のアプリ内だけだから安全 外部からインテントを送られると簡単に突破されることも
パーミッションが必要な操作だから安心 それを代わりに実行できる仕組みがないとは限らない
DrozerやADBの操作は特殊 実は悪意あるアプリが裏で同じことをしている場合もある

✅ まとめ

  • パーミッション昇格とは、「本来できない操作を、権限を持つアプリを通して実行してしまう攻撃」
  • 典型的なパターンは、exportedなActivityやServiceに対する未検証なインテント受信
  • 診断では、外部から呼び出せる処理の有無と、それに制限があるかどうかを確認することが重要
  • 対策の基本は「制限する・検証する・公開しすぎない」の3点!

Best regards, (^^ゞ




以上の内容はhttps://cysec148.hatenablog.com/entry/2025/08/24/155840より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14