Cyber Ark研究人员开发了一种被称作GhostHook攻击的技术,该技术能够绕过微软Windows 64位操作系统上的PatchGuard防护来安装rootkit。那么,究竟GhostHook攻击是如何工作的?
Michael Cobb:PatchGuard于2005年在Microsoft Windows64位操作系统中首次推出。它通过定期检查以确保内核中受保护的系统结构没有被修改,从而防止对Windows操作系统的中央组件或内核进行任何非授权修改。事实证明,这是防止在Windows系统中安装rootkit的一种非常有效的方法。
然而,Cyber Ark的研究人员利用英特尔处理器中被称为“英特尔处理器追踪”(Intel Processor Trace,IPT)的功能,找到了绕过PatchGuard防护的方法。
与类似的现有技术相比,IPT通常可以更快,更灵活地记录跟踪信息的类型和数量,例如Last Branch Recording和Branch Trace Messages。它提供了一个API,内核代码可以调用这个API来从CPU接收和读取设备上运行的软件和进程的信息,以提供性能监视、代码诊断、调试、模糊、恶意软件分析以及漏洞检测。
Cyber Ark发现,微软实现这个API的方式让他们能够在指令指针跟踪期间利用缓冲区正在进行的通知机制以使CPU分支到自己的代码。通过为IPT中的代码包分配极小的缓冲区,CPU最终被迫打开一个性能监视中断(PMI)处理程序。
由于PatchGuard并不是用来监视PMI处理程序的,所以GhostHook攻击可以在系统修补时使用PMI处理程序来注入rootkit。这种挂钩技术可以使攻击一直不被察觉,因为它在内核级别运行,许多安全产品(例如防病毒和入侵防护系统)都无法将其查出。
对GhostHook攻击的严重性业界持有不同的看法。微软已经表示其不会修补这个漏洞,不过公司可能会在未来的Windows版本中解决这个问题。之所以没有特别急迫是因为要实施攻击,攻击者必须已经控制了一台被攻破的机器,并且已经在系统上运行内核代码,这是一种后开发技术,而非一种提升或开发技术。处于该位置的攻击者可以运行自己选择的任何代码而不被各种安全技术检测出,因此这种攻击并不能真正扩大Windows操作系统的攻击面。
然而,一些安全专家认为PatchGuard应能够防止这种类型的攻击,因为任何形式的隐形技术都可以帮助攻击者长期潜伏。