为了限制/沙盒进程,Android 使用 SELinux。为什么选择它而不是 linux 功能或 cgroups+namespaces 解决方案?毕竟 cgroups+namespaces 对他们来说也是自产自销的。SELinux 提供什么或其他人不提供什么?
为什么安卓使用 SELinux?
信息安全
linux
安卓
selinux
沙盒
2021-08-14 05:42:34
2个回答
cgroups 和命名空间是关于隔离的,而 SELinux 是一个强制访问控制系统:允许对哪些系统调用进行细粒度访问,如何允许信息在进程(域)之间流动。
应用程序必须订阅的 android 权限可以通过 SELinux 轻松强制执行,进程隔离甚至许多潜在漏洞都可以通过 SELinux 策略缓解(只要漏洞的利用不包含在应用程序中或者是内核漏洞)。
cgroups 和命名空间有不同的功能,不一定是唯一的:SELinux、cgroups 和命名空间可以很高兴地一起使用(正在改进 SELinux 对命名空间的支持,但它们已经可以一起使用)。
cgroups+namespaces 技术更新了很多,而且还在不断变化。返工这个基本的东西需要很多时间。请记住,Android 是由一群硬件制造商从谷歌那里获得的,并针对他们的产品进行了定制,而独立开发人员大军则在这些产品上提供软件。
这与典型的 Linux 发行版完全不同,它们提供了您需要配置为顺利协同工作的大部分软件,并且能够以相对较少的痛苦对第三方进行此类切换。