禁用 SELinux 有什么安全隐患?

信息安全 selinux
2021-08-16 05:42:05

是否存在仅通过禁用 SELinux 就可能发生的任何攻击?特别是在运行 http 和 ssh 服务的服务器上?

2个回答

SELinux 主要是关于将进程限制在指定的资源中,并且不允许它们访问其他资源。

SELinux 知道 Apache 是什么,它应该能够访问哪些文件,它应该能够绑定到哪些端口等。如果有人利用您网站中的漏洞并尝试读取或写入不属于webroot,SELinux 实际上会阻止它发生,即使你搞砸了你的权限并让它容易受到攻击(它也会发出一个很大的错误)。

这在运行网站或其他可能安全或不安全的应用程序时特别有用,因为愚蠢的客户或人们害怕更新的旧软件(或经常被利用的平台,如 Java)。它通常不会阻止漏洞利用,但它确实减轻了之后的损害,并且应该将安全问题包含在被利用的进程中。

桌面的另一个例子:Web 浏览器。他们应该能够阅读 ~/.ssh 吗?不!网络浏览器永远没有理由进入那里,除非该网络浏览器已被攻击者接管。SELinux 将阻止 Web 浏览器访问 ~/.ssh,即使浏览器正在使用您的用户权限运行(可能应该如此)。

编辑:许多人关闭 SELinux 是因为打开它时事情不起作用。这是因为 SELinux 期望“就像我们告诉您在 Red Hat 文档中配置它一样”进行配置(对于 EL 系统上的 SELinux),这意味着您可以使用标准文件路径在标准端口上运行东西,而不是做奇怪的事情。如果你想做一些奇怪的事情,audit2allow 是你的朋友,你可以为你需要做的任何事情构建 SELinux 策略。

只要你的服务器打了补丁并且是最新的,那么 SELinux 就没有已知的漏洞可以防御。如果不是这种情况,可能会有窗口 - 但这些窗口很少且很短。这是 SELinux 的标语:它(可能)保护您免受零日攻击。

恕我直言,SELinux 对安全性会产生反效果(除非您从事生产运行 Linux 的设备的业务),它会消耗大量时间和精力,但效果却比其他方法要好得多。

但是,我无法确定这是否适用于您的上下文。使用 SELinux 并启用分发者策略的开箱即用配置比没有配置更安全。