在Android kitkat上将SElinux置于许可模式的安全隐患(CM 11.0)

时间:2014-08-23 11:29:34

标签: android selinux

Cyanogenmod 11.0现在已启用SELinux,但您可以使用应用程序商店中的应用程序(SElinux Mode Changer)将其更改为许可模式。这不是打败了SELinux的目的吗?一个应用程序可以做任何事情,另一个应用程序可以恶意做,对吗?

2 个答案:

答案 0 :(得分:2)

即使设备是root用户,只有在defconfig中使用CONFIG_SECURITY_SELINUX_DEVELOP=y构建的内核中才能在强制模式和许可模式之间切换。对于安全的生产设备,应该禁用它,因为它可以大大减少故意生根的负面影响或产生root权限的漏洞。

启用SELinux开发模式后,您需要是root用户才能运行setenforce(假设sepolicy允许它,它通常会这样做,但不一定):

usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

SELinux Mode Changer需要一个有根设备,这意味着它可以通过获取root并调用setenforce 0来工作。正如你所指出的那样,这几乎打败了SELinux的整个目的,而这恰恰是为什么除非你能接受所有的风险,否则生根不是一个好主意。

答案 1 :(得分:0)

如果内核不是使用CONFIG_SECURITY_SELINUX_DEVELOP = y构建的,那么您是否使用手机并不重要。在这种情况下,即使您是root用户,SELINUX策略也不允许您执行setenforce命令。因此,Google Play禁止使用SElinux Mode Changer应用程序真的没有任何意义。该应用程序可以做什么,任何应用程序都可以做。从Google Play中删除它类似于默默无闻的安全性。 CONFIG_SECURITY_SELINUX_DEVELOP = y通过调整SELinux策略以允许通过setenforce更改SELinux模式来打开安全漏洞。这对开发很有用,但在实际使用中却违背了SElinux的目的。