安卓|如何使用隔离进程

标签 android

据我所知,这里有一个 IsolatedProcess 来运行不受信任的代码。

但是如果 IsolatedProcess 基本上是一个没有任何权限的进程,那么如何将不受信任的代码(比如说一个类)发送到 IsolatedProcess?

我的意思是 IsolatedProcess 无法访问设备中的文件、互联网或其他任何内容。

那么如何将不可信代码发送给IsolatedProcess呢?

我正在尝试将构造函数传递给 IsolatedProcess,以便他可以安全地启动这个不受信任的类,但是进程之间的所有通信都必须使用可序列化对象,而构造函数不是可序列化对象。

最佳答案

您误解了 isolatedProcess 的用途。它不提供 API 来做你想做的事,因为它不是它的预期用途,并且像那样使用它不是一个好的安全实践。它旨在提供攻击者在通过漏洞获得远程代码执行后需要绕过的安全层。您根本不应该运行不受信任的 Java 代码,因为 Android 不是为这样做而设计的。它仍然可以在 isolatedProcess 中访问 native API,包括内核的系统调用等。 isolatedProcess 几乎放弃了所有特权(获得唯一的 UID/GID 并在 isolated_app SELinux 域中运行)但它本身并不是一个很好的沙箱。如果您决心这样做,那么在 isolatedProcess 中进行比在其外部进行要好,但是您将为此编写自己的代码。

isolatedProcess 的主要用户是 Chrome。每个站点实例都由单独的 isolatedProcess 服务呈现。它不运行不受信任的 Java 或 native 代码。攻击者需要远程代码执行漏洞来获得对 isolatedProcess 的控制。 Chrome 也不依赖 isolatedProcess 作为第二层防御。它使用严格的 seccomp-bpf 过滤器来大大减少内核攻击面。

关于安卓|如何使用隔离进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37010237/

相关文章:

java - 如何在 android 上执行连续检查另一个类的返回值?

android - 如何在 EditText 控件中的文本更改后 0.5 秒执行某些操作?

android - 我的 Android 应用程序未显示在三星平板电脑的 Play 商店中(使用 Kitkat 操作系统)

java - 添加 admob 会导致不存在的错误。错误 - java.lang.IllegalArgumentException : Service not registered: lt@777a78f

android - 如何隐藏 EditText 的文本选择处理程序的 ActionPopupWindow

java - RSS 提要描述返回 '<'

android - 改变窗框的颜色

android - 如何解决 FATAL EXCEPTION Timer-0?

android - 如何解决pdfbox中的 "No glyph for U+000A in font Helvetica-Bold"(android端口)

android - 如何更改在android中选择的列表项的背景