区块链安全咨询公司 曲速未来 消息:研究人员发现了一个名为PortSmash的新的旁道漏洞,PortSmash被命名为CVE-2018-5407。该漏洞使用定时攻击来窃取来自同一CPU核心中运行SMT /超线程的其他进程的信息。利用这种攻击,研究人员能够从与其利用相同的核心运行的OpenSSL线程窃取私有解密密钥。
SMT/超线程是指一个物理CPU核心被分成两个虚拟逻辑核心,可以同时使用两个独立的进程线程。此方法可以提高性能,因为两个线程将更有效地利用空闲CPU资源来更快地执行指令。
侧通道计时攻击是指攻击者分析线程执行特定指令的速度,并利用该信息向后工作以发现哪些数据用作输入。
这个PortSmash漏洞由研究人员Billy Bob Brumley,Cesar Pereida Garcia,Sohaib ul Hassan和来自芬兰坦佩雷理工大学的Nicola Tuveri和来自古巴哈瓦那大学的Alejandro Cabrera Aldaya发现。向OSS-Sec邮件列表提供了一份咨询报告,他们的研究报告已经作为一份题为“娱乐和利润的端口争用”的论文提交,作为IACR电子版,目前正在等待它发布前的审核。
研究人员解释说,端口争用用于衡量OpenSSL执行操作所需的时间。通过这些测量,研究人员能够向后工作以恢复私钥。
POC代码现已发布
PoC成功地钻了PortSmash的空子,因而从TLS服务器窃取了一个OpenSSL(<= 1.1.0h)P-384私钥,不过攻击手法稍加变动,就可以泄露任何类型的数据。
PortSmash PoC还需要恶意代码在与受害者相同的物理核心上运行,但这对攻击者来说不是很大的障碍。
研究人员还表示:“短暂而简化,每个核心使用SMT和2个线程,在一个线程上运行的进程将拥有自己的指令和数据,但将与共同定位线程上运行的进程共享一些硬件资源。
指令将在更简单的微操作中独立解码,并在CPU中流水线化到相应的执行单元。(执行单元是专门用于处理特定操作的实际硅区域:例如,有一些EU专用于整数加法/减法,单独用于整数乘法,其他用于浮点运算等)每个核心都有一个完整的一组EU支持整个指令集,同一核心的线程共享访问EU。欧盟被捆绑在一起,每个都可以通过一个端口访问:来自两个线程的微型组件被发布到可用端口,而另一个微组件,核心调度器,当相同的微型组件可以发布到不同的等效EU时,可以优化公平性和性能端口。
这些端口是讨论的端口争用的对象。例如,假设在特定加密操作期间受害者进程使用端口5:当受害者进程未使用端口5时,在另一个线程上运行的间谍进程将具有在端口5上重复执行的未延迟访问;一旦受害者进程在端口5上发出操作,调度程序就会将操作从间谍进程中延迟以确保公平性。因此,间谍过程可以测量端口5的操作执行的延迟,并确定受害者进程何时使用相同的端口。
这是可以被处理以最终恢复私钥的信号。”
为了更容易理解非技术术语中的漏洞,研究人员更简单地解释了这次攻击。
虽然研究人员仅针对英特尔Skylake和KabyLake处理器测试了此漏洞,但他们也预计它可以在AMD Ryzen处理器上运行。
这是由CVE-2018-5407跟踪的PortSmash微体系结构攻击的概念验证漏洞利用。
研究人员分享了一个仅针对OpenSSL的概念验证漏洞利用程序。该团队选择定位OpenSSL,因为他们熟悉代码库,因为它被广泛使用,但“PortSmash技术与特定软件无关”。
因此,勤奋的研究人员和攻击者将PoC移植到其他应用程序中窃取信息只是时间问题。
保护自己免受PortSmash漏洞的影响
区块链安全咨询公司 曲速未来 提醒:缓解此攻击的唯一方法是在计算机上禁用SMT/超线程,OpenBSD默认情况下已经在今年夏天发布了另一个称为TLBleed的计时攻击。
英特尔已经从其新的第9代游戏CPU中删除了超线程,以便为Meltdown v3和L1 Terminal Fault漏洞提供硬件保护。由于大多数游戏不支持超线程,因此删除它对游戏时计算机的性能影响不大。
但是,超线程并没有消失,因为许多组织在支持的硬件上投入了大量资金,以便为其企业应用程序提供更好的性能。从这些环境中完全删除超线程将是一个太昂贵的选择。
本文内容由 曲速未来 (WarpFuture.com) 安全咨询公司整理编译,转载请注明。 曲速未来提供包括主链安全、交易所安全、交易所钱包安全、DAPP开发安全、智能合约开发安全等相关区块链安全咨询服务。