据我所知,IsolatedProcess在这里运行不受信任的代码。
但是,如果IsolatedProcess基本上是一个没有任何权限的进程,那么如何将不受信任的代码(例如类)发送到IsolatedProcess?
我的意思是,IsolatedProcess无法访问设备中的文件、互联网或其他任何东西。
那么,向IsolatedProcess发送不可信代码的方法是什么呢?
我试图将构造函数传递给IsolatedProcess,以便他能够安全地启动这个不受信任的类,但是进程之间的所有通信都必须与可序列化对象通信,而构造函数不是可序列化对象。
发布于 2017-07-07 21:03:23
你误解了isolatedProcess的目的。它不提供API来做您想做的事情,因为它不是打算使用的方式,这样使用它将不是一个好的安全实践。它旨在提供一层安全,一旦攻击者通过利用漏洞获得远程代码执行,就需要绕过该层安全层。您根本不应该运行不受信任的Java代码,因为Android的设计并不能做到这一点。它仍然可以在isolatedProcess中访问本地API,包括内核的系统调用等。isolatedProcess放弃了几乎所有的特权(获得唯一的UID / GID并在isolated_app SELinux域中运行),但它本身并不是一个很好的沙箱。如果您决心这样做,那么在isolatedProcess中做它比在它之外做要好,但是您将为它滚动您自己的代码。
isolatedProcess的主要用户是Chrome。每个站点实例都由一个单独的isolatedProcess服务提供。它不运行不受信任的Java或本机代码。攻击者需要远程代码执行漏洞来获得对isolatedProcess的控制。Chrome也不仅仅依靠isolatedProcess来进行第二层防御。它采用严格的seccomp滤波器,大大减少了内核的攻击面.
https://stackoverflow.com/questions/37010237
复制相似问题