web-dev-qa-db-ja.com

Androidには十分なアプリサンドボックスがありますか?

InfoSecの前の質問 で、サイドロードされたAndroidルート権限が必要なアプリの安全性を判断する方法について尋ねました。

次に、関連するが別の質問をしたいと思います。Androidアプリの安全性をチェックすることは重要ですか)ルート権限を必要とせず、データにアクセスできませんか?

(ルート権限を持つファイアウォールを介して)アプリのデータアクセスが無効になっている場合、アプリが何らかの形で「不良」であるかどうかさえ問題になりますか? AppOpsまたはXPrivacyを使用して、連絡先やカレンダーへのアクセスを防止したり、電話やSMS/MMSを発信/受信したりできます。では、データにアクセスできない(そしてAppOpsまたはXPrivacyによってそのアクセス許可が制限されている)アプリは実際にどのような害を及ぼすのでしょうか。

この質問をする別の方法は次のとおりです:Does Android KitKat以降には、マルウェアが害を及ぼすのを防ぐのに十分なデフォルトのサンドボックスがあります(ファイアウォール経由でアプリとの間のデータアクセスをブロックし、AppOps/XPrivacyなどを使用して、連絡先、カレンダー、電話、SMS/MMSへのアクセス許可をブロックできると想定)

11
RockPaperLizard

Androidの各バージョンは、この面で以前よりも段階的に強力になり、Lolipopは確かに、特にアプリ間の分離に関して、アプリケーションのサンドボックス化をKitKatよりもさらに一歩進めています。

Androidのサードパーティの「ファイアウォール」アプリはおそらく少々宣伝過剰であり、応援することなく提供できる保護のレベルは少し疑問です。Androidは デバイス管理API を介してある程度のデバイス制御を提供しますが、それはアプリ内部の細かい制御ではなく、大まかなポリシーに関するものです。

デバイスがルート化されている場合、すべての賭けはかなりオフであり、あなたは自分自身でいます。サンドボックス化を合理的に強制することはできなくなり、手動で実行を制御するのはあなた次第です。幸運を。

ルート権限を取得されていないデバイスの場合、アプリの権限は、インストール時に付与された権限セットによって制御されます。そして、その権限セットが適用されます。アプリが悪意のあるアプリで、SMSメッセージを送信する許可を与えた場合、SMSメッセージを悪意を持って送信することができます。許可されていない場合その許可は、そうすることはできません。

AppOpsを使用すると、これらの権限を実行時に更新できますが、開発者によると、一般ユーザーがサポートする機能ではありませんでした。その理由は それはものを壊す です。そして、すべてを壊す機能は、定義上、ある程度サポートされていません。

話はこれで終わりではありません。権限モデルは、Androidチームが多くの注意を払っていると伝えられています。(A)すべてのアプリを壊さない、(b)ユーザーに意味のある制御を提供するソリューションが必要です) 、および(c)は、スナネズミのテクニカルスキルセットを持つ顧客が使用できます。これは、意外と簡単ではありませんが、今後もこの面での注目と進歩が続くと予想されます。

10
tylerl

Android KitKat以降には、マルウェアによるanyの被害を防ぐために十分なデフォルトのサンドボックスがあります)

ひもはどれくらいの長さですか?機密性の確保が情報セキュリティの唯一の目標ではありません。アプリが常に大量のCPUを消費するバックグラウンドサービスを実行し、バッテリーを消耗させることが脅威だった場合、

Androidアプリがroot権限を必要とせず、データにアクセスできない)の安全性を確認することは重要ですか?

デフォルトでアプリに与えられる権限以外に、アプリが脅威となる可能性のあるリソースとそうでないリソースは、Android権限システムの適用方法に大きく依存します。タイトルと説明は、 of Androidのパーミッションは、常に完全にまたは明確に、付与するアクセス権を伝えるわけではありません

たとえば、現在のPlayストアのアクセス許可ダイアログには、「SMS、MMSの1つ以上を使用します。料金が発生する場合があります。」のようなメッセージが表示されると思います。 SMSへのアクセスのため。SMSを読み取ることができるという印象を必ずしも与え​​るわけではありません。

したがって、すべての権限を個別に読んで選択的に適用したとしても、予期しないアクセスが許可される可能性があります。

それを超えてAndroidアプリはデフォルトでかなりの数の権限にアクセスできますまたは明示的な承認なし。たとえば、Playストアでは現在、許可の承諾ダイアログにインターネットアクセスが表示されていないと思います。

これらの例はどちらもPlayストア経由でインストールされたアプリに固有のものですが、Playストアに依存しない例もあると思います。また、Playストア経由でアプリをインストールした後で権限を確認し、特定の権限を取り消しても、アプリが脅威である可能性があるウィンドウがまだあります。

アプリのデータアクセスが無効になっている場合(ファイアウォール経由)

最後に、私はサイドチャネル攻撃を軽視しません。 悪意のあるアプリはIPCを使用して情報を別のアプリに渡し、それをインターネットに公開することができます。最も簡単な例は、アプリがURLを開くインテントを作成することですブラウザでは、もちろんそのURLには機密情報が含まれる可能性があります。残念ながら、Androidアプリセレクタダイアログ(ブラウザを選択する場所)には、以前に機密情報を確認するためのURLが表示されません。その段階では手遅れかもしれません。

TLDR; Androidは、従来のデスクトップOSと比較して強力なサンドボックス機能を備えていますが、これは不注意な言い訳にはなりません。サードパーティのソフトウェアを脅威と見なし、それに従って評価する必要があります。他のコントロールが失敗した場合に備えて、サンドボックスをセキュリティの追加レイヤーとして利用します。

5
thexacre