据我了解,IsolatedProcess 是用来运行不受信任的代码的。
但是,如果isolatedprocess基本上是一个没有任何权限的进程,那么如何将不受信任的代码(比如说一个类)发送到isolatedprocess呢?
我的意思是,IsolatedProcess 无法访问设备中的文件、互联网或其他任何内容。
那么如何将不可信代码发送到IsolatedProcess呢?
我试图将构造函数传递给IsolatedProcess,以便他可以安全地启动这个不受信任的类,但是进程之间的所有通信都必须使用可序列化对象,并且构造函数不是可序列化对象。
您误解了isolatedProcess 的目的。它不提供 API 来执行您想要的操作,因为这不是它的预期使用方式,并且这样使用它不是一个良好的安全实践。它旨在提供攻击者在通过漏洞获得远程代码执行后需要绕过的安全层。您根本不应该运行不受信任的 Java 代码,因为 Android 的设计初衷并不是这样做。它仍然可以访问独立进程中的本机 API,包括内核的系统调用等。isolatedProcess 几乎放弃了所有权限(获取唯一的 UID / GID 并在isolated_app SELinux 域中运行),但它本身并不是一个很好的沙箱。如果您决定这样做,那么在isolatedProcess 内执行比在其外部执行要好,但您将为此滚动自己的代码。
isolatedProcess的主要用户是Chrome。每个站点实例都由单独的isolatedProcess 服务呈现。它不运行不受信任的 Java 或本机代码。攻击者需要远程代码执行漏洞来获得对isolatedProcess的控制。Chrome 不仅依赖isolatedProcess作为第二层防御。它使用严格的 seccomp-bpf 过滤器来大大减少内核攻击面。
| 归档时间: |
|
| 查看次数: |
6151 次 |
| 最近记录: |