研究人员发现,英特尔Haswell cpu的一个特性可以被滥用,以可靠地击败存在于所有主要操作系统中的反开发技术。
这项技术由纽约州立大学宾厄姆顿分校和加州大学河滨分校的三名研究人员开发,可用于绕过地址空间布局随机化(ASLR),并于本周在台北举行的第49届IEEE/ACM国际微架构研讨会上发表。
ASLR是操作系统用来随机化进程关键区域使用的内存地址的一种安全机制,这样攻击者就不知道在哪里注入他们利用的shell代码。
ASLR用于防止任意代码执行(而不是崩溃)导致的内存损坏bug(如堆栈和堆溢出)。一旦这种漏洞被利用,就需要将恶意代码注入到内存中的某个位置,目标进程或操作系统内核本身将作为正常操作的一部分执行。
在他们的论文中,这三个研究人员证明了分支目标缓冲区(BTB),一种被CPU的分支目标预测器使用的缓存机制,可以通过触发不同用户进程或进程与内核之间的BTB冲突来泄漏ASLR地址。分支预测机制在现代cpu中被用于优化性能。
“BTB存储了最近执行的分支指令的目标地址,因此这些地址可以直接从BTB查找获得,从而在下一个周期中获取从目标开始的指令,”研究人员在他们的报告中解释道纸.由于BTB由在同一核心上执行的几个应用程序共享,信息通过BTB侧信道从一个应用程序泄漏到另一个应用程序是可能的。
研究人员在一台装有英特尔Haswell微架构CPU并运行最新的Linux内核(4.5版)的计算机上演示了他们基于btb的ASLR旁路。他们的攻击可以在大约60毫秒内使用BTB冲突可靠地恢复内核ASLR。
该研究论文提出了基于软件和硬件的缓解措施,可以在未来防止基于btb的侧信道攻击,或强化当前的ASLR实现。
攻击者目前有其他绕过ASLR的方法,但他们通常需要找到额外的内存泄漏漏洞,并将这些漏洞与原始的内存损坏缺陷链接在一起。由于近年来软件安全性的提高,现在大多数远程代码执行攻击都需要使用链接攻击。
英特尔没有立即回复记者的置评请求。