2016-05-03 12 views
0

私が理解する限り、信頼できないコードを実行するためにここにはIsolatedProcessがあります。Android | IsolatedProcessの使い方

しかし、IsolatedProcessが基本的にアクセス権のないプロセスである場合、信頼できないコード(クラスと言う)をIsolatedProcessにどのように送信できますか?

つまり、IsolatedProcessには、デバイス内のファイル、インターネットなどにアクセスできません。

したがって、信頼できないコードをIsolatedProcessに送信する方法は何ですか?

この信頼できないクラスを安全に開始できるように、コンストラクタをIsolatedProcessに渡そうとしていますが、プロセス間のすべての通信はSerializableオブジェクトでなければならず、コンストラクタはSerializableオブジェクトではありません。

+0

私はあなたがIntentエクストラ、パイプなどを使うことができると思う。 – pskink

+0

こんにちは、私はそれを試して、またMessengerオブジェクトで試してみたが、それらのすべてが私のデータをSerializableにする必要があるが、 \ –

+1

"分離プロセスは信頼できないコードを実行するためにここにあります" - AFAIKは、信頼できない操作を実行する信頼できるJavaまたはネイティブコード(アプリケーションの一部)を実行するプロセスです。スクリプト言語でスクリプトを評価する)。 – CommonsWare

答えて

0

あなたはisolationProcessの目的を誤解しています。どのように使用するのか、そしてそれを使うのが良い方法ではないので、良いセキュリティプラクティスではないので、あなたが望むことをするAPIを提供しません。攻撃を介してリモートコードを実行した後、攻撃者がバイパスする必要があるセキュリティ層を提供するように設計されています。 Androidはこれを行うように設計されていないため、信頼できないJavaコードは実行しないでください。これは、依然として、isolatedProcess内のカーネルのシステムコールなどを含むネイティブAPIにアクセスできます。 isolatedProcessはほとんどすべての権限を落とします(一意のUID/GIDを取得し、isolated_app SELinuxドメインで実行します)が、それは単なる非常に良いサンドボックスではありません。あなたがそれをすることに決めたら、それをoutsideProcessの中でやるほうが良いのですが、独自のコードを動かすことになります。

isolatedProcessの主なユーザーはChromeです。各サイトインスタンスは、独立したisolatedProcessサービスによってレンダリングされます。信頼できないJavaやネイティブコードは実行されません。攻撃者は、isolatedProcessを制御するためにリモートでコードを実行する必要があります。 Chromeでもはありません防御の第2の層のための孤立したプロセスに依存していません。これは、厳密なseccomp-bpfフィルタを使用して、カーネルの攻撃面を大幅に削減します。

関連する問題