幽灵:如何逆向工程微处理器揭示了基本缺陷
2018年1月3日,谷歌的项目归零报告,可以滥用用于提高现代微处理器性能的技术来有效地泄露信息,导致它被描述为“跨本地安全边界的任意虚拟内存读取漏洞”。
谷歌确定了两种类型的攻击:幽灵和崩溃。幽灵似乎影响了所有现代微处理器,而崩溃似乎只影响英特尔。
屏幕验证概念显示在英特尔Haswell Xeon,AMD FX,AMD Pro和ARM Cortex A57处理器上工作。
缺陷可以允许网络犯罪分子窃取在云网络中运行的计算机的整个内存内容,包括移动设备,个人计算机和服务器。
虽然它很复杂,但需要深入了解微处理器架构,幽灵依赖于现代处理器如何优化它们运行指令的方式。
Rambus高级安全工程师Mike Hamburg是独立发现缺陷的研究人员之一。
“最复杂的处理器,无论它们是基于减少的指令[RISC]还是复杂的[CISC]架构,利用投机执行,处理器在未来计算中猜测猜测以帮助提升性能,”他说。“但是,在这样做时,处理器最终可以执行可能未出现的工作。”
“幽灵漏洞发生了,因为CPU不仅运行您告诉他们的说明。他们也展望未来,试图猜测您的程序将运行的指令下一步,所以他们可以获得一个头开始“Mike Hamburg,Rambus汉堡说,幽灵使用错误处理器在猜测从内存中撬起特权信息的未来指令时,通过所谓的侧通道攻击。
“虽然幽灵难以乘坐,但捍卫反对,因为这将需要对处理器的物理变化,”他警告说。
“幽灵漏洞发生,因为CPU [中央处理单元]不仅运行您告诉他们的指令。他们也展望未来,试图猜测您的程序将下次运行的说明,以便开始始终开始。“
例如,如果程序绕过五次循环,则处理器可能会推测它将围绕第六次。如果处理器已正确猜测下一步并提前可以更改内存和数据高速缓存,则会导致性能提高大的性能改进。但如果它的预测是错误的,它需要撤消这些更改。
汉堡说,高端处理器可以展望数百个程序指令,但是当他们的预测错误时,他们不会撤消他们所做的更改,例如从内存中删除预缓存的数据。
研究人员展示了他们能够利用微处理器中的缺陷来读取503kbps的PC的物理内存,而无需特权访问。这可以使攻击者能够获得存储在内存中的秘密信息,例如密码或加密密钥,非常快速。
据鉴于该处理器基于最近的程序的行为 - 在过去的几秒钟内或毫秒内完成他们的预测 - 黑客可以创建一个流氓计划,以训练处理器预测不正确,说汉堡。
为防范漏洞,汉堡表示,需要在处理器的核心保护新的处理器设计:“拥抱硬件第一策略,芯片应旨在在物理上独立的安全核心中运行加密功能,远离CPU。”
虽然幽灵展示了微处理器本身如何只需了解它是如何执行指令优化的方式损害,但它也开辟了整个时序和时间本身如何用于反向工程师秘密数据的整个区域。
Rambus已经研究了计算的副作用,例如时序,功耗和无线电排放,可以利用泄露有关计算机正在进行的信息的信息。
“时序信息是一个非常重要的侧频道,因为它可以直接在软件中进行利用,而无需物理访问机器。很多事情会影响计算机芯片的时机 - 不仅仅是指示本身,而且记忆缓存,分支预测,热,甚至功耗,“警告汉堡。
据汉堡称,由于该区域已经很长一段时间已经过很长时间了,因此在定时频道中捍卫软件的最佳实践。
所有处理器都使用所谓的程序计数器来确定接下来的计算机程序中的哪些指令。
汉堡表示,在安全编码中的常见做法是为了防止秘密信息流入这个程序计数器,因此“不同的指令几乎总是具有不同的时间”。如果他们确定了加密程序中的每个计算机指令所需的时间长度,入侵者可能会逆向工程师。
由于程序计数器和运行指令将影响系统上其他软件的性能,汉堡警告说:“如果有关秘密流到程序计数器的信息,则机器上的其他软件可以测量该信息,可能会泄漏您的钥匙,以否则更为虚拟的恶意软件。”
这类攻击被证实1996年被安全研究员保罗·科赫尔确定为1996年。在描述这种攻击的论文中,Kocher说:“通过仔细测量执行私钥操作所需的时间量,攻击者可能能够破坏密码系统。
“拥抱硬件 - 首先策略并在SOC级别实施必要的功能是全面保护设备和跨多个垂直的平台的关键元素”Mike Hamburg,Rambus汉堡表示,在微处理器上运行的指令的变化也将改变签名或解密操作所需的时间,并且“这些更改可能通过网络可见”。
“即使在编写程序以防御时间攻击时,如果CPU的投机者会对程序做错事件,可以违反辩护 - 并且同一台机器上的对手可以影响该猜测,”他说。
汉堡说,让投机执行是非常困难的,使安全更加复杂。他说,半导体行业需要共同努力,为更安全的计算机芯片制定一套新的最佳实践。
“从我们的角度来看,保护处理器应该从核心开始。拥抱硬件第一策略并在芯片级别实现系统上的必要功能是完全保护设备和多个垂直平台的关键元素。“
根据汉堡的说法,将单独的安全核心嵌入芯片(SOC)的系统中,可以帮助制造商在各自的生命周期内保持安全的设计设备,平台和系统。
幽灵脆弱性有三种变体。变体1和2似乎影响了AMD,ARM和Intel处理器,而研究人员只能展示变体3的概念证明,在英特尔芯片上也称为熔化。
英特尔首席执行官Brian Krzanich表示:“对于我们在过去五年推出的处理器产品中,英特尔预计将在一周内发出超过90%的最新信息,并在1月底之前为其留下。
“我们认为这些更新的绩效影响是依赖的高度工作量。结果,我们预计一些工作负载可能比其他工作量更大,所以我们将继续与该行业合作,尽量减少对这些工作量的影响。“
AMD说:“所描述的研究是由一个受到高知识渊博的实验室环境进行的,具有详细的,有关针对处理器的详细的非公开信息。”
AMD已为变量1发出补丁,该修补程序是为系统提供商提供的。它声称其处理器不受变体2的影响。ARM已发出内核补丁以减轻VARIANT 2,并提供用于保护在Linux上的变体1的说明。
正在更新IOS和Android,以防止Rogue浏览器脚本利用幽灵。