【发布时间】:2014-08-23 11:29:34
【问题描述】:
Cyanogenmod 11.0 现在启用了 SELinux,但您可以使用应用商店中的应用将其更改为许可模式(SElinux Mode Changer)。这不是违背 SELinux 的目的吗?一个应用程序可以做的任何事情,另一个应用程序可以恶意做,对吧?
【问题讨论】:
-
这就是为什么生根设备被认为会削弱其安全性的原因之一。您需要 root 权限才能更改此设置。
Cyanogenmod 11.0 现在启用了 SELinux,但您可以使用应用商店中的应用将其更改为许可模式(SElinux Mode Changer)。这不是违背 SELinux 的目的吗?一个应用程序可以做的任何事情,另一个应用程序可以恶意做,对吧?
【问题讨论】:
即使设备已经root,强制模式和许可模式之间的切换也只能在defconfig中使用CONFIG_SECURITY_SELINUX_DEVELOP=y构建的内核中进行。对于安全的生产设备,应该禁用此功能,因为它可以大大减少故意 root 或产生 root 权限的漏洞的负面影响。
启用 SELinux 开发模式后,您需要以 root 身份运行setenforce(假设sepolicy 允许,它通常会这样做,但不一定):
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
SELinux Mode Changer 需要 root 设备,这意味着它通过获取 root 并调用 setenforce 0 来工作。正如您所指出的,这几乎违背了 SELinux 的全部目的,这正是为什么生根不是一个好主意,除非您能接受所有风险。
【讨论】:
如果内核不是用 CONFIG_SECURITY_SELINUX_DEVELOP=y 构建的,你是否 root 手机都没有关系。在这种情况下,即使您是 root,SELINUX 策略也不允许您执行 setenforce 命令。因此,Google Play 禁止 SElinux Mode Changer 应用程序确实没有任何意义。该应用程序可以做什么,任何应用程序都可以。从 Google Play 中删除它类似于默默无闻的安全性。 CONFIG_SECURITY_SELINUX_DEVELOP=y 通过调整 SELinux 策略以允许通过 setenforce 更改 SELinux 模式打开一个安全漏洞。这对开发很有用,但在实际使用中违背了 SElinux 的目的。
【讨论】: