Linux内核更好地抵御禁用SMAP/SMEP/UMIP保护的漏洞

Google工程师对Linux内核做了一个改动,将使在Linux上利用禁用SMAP和SMEP保护作为其漏洞利用路径的一部分上变得更加困难。

管理程序模式执行保护(SMEP)和管理程序模式访问保护(SMAP)是最新一代英特尔CPU的安全功能,可防止内核访问非预期的用户空间内存,从而帮助抵御各种攻击。但是一些漏洞利用Linux内核的native_write_cr4函数来禁用SMEP/SMAP,因为这些安全选项的状态是通过CR4控制寄存器中的位控制的。

由于在Linux 5.1内核周期之前,tip tree中现在挂起了一个新的补丁,所以SMEP和SMAP以及UMIP的位都被固定住了,因此它们不再容易被更改。UMIP同时也是一种用户模式的指令预防功能,可以防止某些指令在较高权限级别下执行,其行为也通过CR4位进行控制。

Google的Project Zero之前演示了一个漏洞利用路径,它使用这个CR4内核函数来禁用SMAP/SMEP保护,然后继续它的恶意活动。现在,多亏了Google工程师,这些SMAP/SMEP/UMIP位被固定在native_write_cr4函数中,因此不能在受支持的CPU上对该调用进行简单禁用。

 

相关推荐