哪些 Linux 内核漏洞允许安装内核级 rootkit?

信息安全 linux 开发 Rootkit
2021-09-03 02:44:40

我的问题与允许安装 Linux 内核级 rootkit 的漏洞有关(例如,修改内核内部的执行流程;针对返回导向的攻击;或修改某些结构以隐藏某些进程)。

在下面的站点中,我发现了迄今为止已知的 Linux 内核漏洞的一个很好的分类:

http://www.cvedetails.com/product/6861/Linux-Kernel.html?vendor_id=33

当我注意到 2011 年没有(公开的)代码执行漏洞时,我有点惊讶。

这是否意味着该表中的其他漏洞(例如,DoS、内存损坏、溢出)不能被用于执行内核级 rootkit?

我有一个基于 ARM 的 Android 嵌入式系统。Linux 内核禁用了此功能:“动态内核模块”、“/dev/kmem”、“/dev/mem/”、“ksplice”。此外,系统有一个安全启动过程(例如,Linux 内核无法访问任何启动文件,这是由硬件强制执行的)。因此,我知道安装内核级 rootkit(除了硬件攻击)的唯一方法是利用内核中的错误*。

2个回答

内核本身的漏洞虽然严重,但对于日常用户来说只是故事的一部分。

“正常”、“开箱即用”安装的问题实际上是以 root 身份运行的进程中的漏洞。由于这些是受信任的,它们可以要求内核做任何他们喜欢的事情——包括插入内核模块或访问/dev/kmem.

重要的是要了解,就 CPU 而言,根进程作为非特权进程运行,就 CPU 而言。在 x86 上,我们将此环称为 3;在 ARM 处理器上,CPU 模式是 User、FIQ、IRQ、Supervisor、Abort 和 Undef,其中User是用于进程的非特权级别(所有其他模式实际上都是特权模式)。模式下执行进程User不能直接修改其他进程或内核;他们必须先询问内核。但是,由于它们是受信任的,内核不会“说不”。因此,对于普通设置,破坏以 root 身份运行的进程就足够了。

现在,在您的设置中,情况有些不同 - 您已禁用模块加载和访问/dev/kmem. 要造成任何严重损害,您需要让您的 rootkit 在管理员模式下执行(环 0/任何不是的模式User)或能够操作/dev/kmem. 由于您也无法修改引导条目,因此这会将硬件级别作为主要威胁向量(或 ksplice。您在 SO 上提到了这一点;这绝对是一个风险,因为您允许使用代码修补正在运行的内核!kexec这是另一个潜在问题,因为您将内核替换到位)。

所以从理论上讲,你所拥有的东西要安全得多。

这是否意味着该表中的其他漏洞(例如,DoS、内存损坏、溢出)不能被用于执行内核级 rootkit?

好吧,首先处理最后一点 - 你不需要能够利用“正常”系统上的漏洞,因为你可以插入一个内核模块。但是,就您而言,这实际上是您唯一的途径;您需要在系统中的某个地方找到一个错误,该错误可以让您加载代码或者可以被利用来控制内核。

现在,根据您的零错误观察 - 正如您所说,该时间范围内的已知错误为零。这并不意味着没有错误。此外,我们应该警告这一点:

  • 这是您发行版的内核吗?它是否有香草内核中不存在的补丁?这些补丁也增加了风险。
  • 您的内核是否需要额外的第三方代码(显卡驱动程序、虚拟化驱动程序)?如果是这样,这些也会增加风险。

现在,关于那些 CVE - 是的,当他们说不“代码执行”时,这就是它的意思。存在的漏洞可能会破坏内存并执行 DoS,但实际上无法运行恶意代码。看看其中一个代码执行漏洞

...允许远程攻击者导致拒绝服务(恐慌)或可能执行任意代码...

所以是的,就目前而言,在编写更新时,内核中没有已知的代码执行漏洞,鉴于这个答案,我正在跨越这一点 - 从网站上不清楚哪个条目代表香草内核,哪个代表供应商提供的内核,或者实际上有什么区别。让我提醒一下,无论对内核的定义如何,漏洞都是零,这就是我之前在谈论供应商提供的补丁/第三方代码时试图得到的。

由 NVD 发布的 CVE 数据(cvedetails.com 发布由国家漏洞数据库发布的数据,nvd.nist.gov.)存在一些不一致之处,尤其是产品和版本信息不可靠。

例如,linux 内核有多种产品定义。有关相关产品的列表,请参阅http://www.cvedetails.com/product-list/vendor_id-33/Linux.html(并且可能会使用其他一些供应商或产品名称定义更多漏洞)

因此,为了确保您也应该检查为其他相关产品定义的漏洞。您至少应该检查http://www.cvedetails.com/product/47/Linux-Linux-Kernel.html?vendor_id=33(有一些与该产品相关的漏洞相关的利用)

很难确定您没有遗漏漏洞。cvedetails.com 具有产品/供应商匹配功能,允许用户匹配相关产品,但老实说它们并不受欢迎。

(PS:我是 cvedetails.com 的所有者)