Offset2lib攻击绕过64位Linux内核防护

  安全研究人员Hector Marco发布公布了针对64位Linux内核的ASLR防护的绕过,这种攻击被称为offset2lib。

  ASLR的实现是在Linux内核里,而在GNU/Linux发行版上加载一个应用程序到内存中会先找一个随机的地址加载第一个共享库,之后加载的共享库紧跟之前加载对象的地址,一个内存地址的泄漏就足够让地址随机化变得无用,甚至GOT(Global Offset Table)的地址泄漏都不是必须的,由于大部分的GNU/Linux发行版的包都是预编译的二进制文件,所以这些发行版的offset都是一样的。

  作者的POC中是轻松的绕过了NX(stack上不允许执行),ASLR(地址随机化)+PIE(针对代码段的随机化),SSP(压栈出栈检测是否被修改的canary)的组合防御,offset2lib攻击为绕过普通的GNU/Linux针对漏洞的整体防御给以了致命的一击。

  这次offset2lib的曝光引起了0ld sch00l黑客社区的广泛讨论,多年来Linux内核开发者社区的自大是导致这种程度攻击的主要原因。虽然offset2lib攻击在目前的内核代码里比较容易修复,但是这种攻击方式对于Grsecurity/PaX无效,Grsecurity/PaX早在13年前的实现就已经杜绝了这种攻击的可能性,不幸的是只有Gentoo和Debian Mempo提供了直接使用Grsecurity/PaX的途径。

 

上一篇:智能无惧挑战 山石网科轰动RSA2015

下一篇:揭恶意APP软件如何吸费:内置SP收费代码