SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation
在现代CPU中普遍使用的推测执行可能会在处理器缓存和其他结构中留下副作用,即使推测的指令没有提交并且它们的直接影响不可见。最近的Meltdown和Spectre攻击表明,可以利用此行为将特权信息暴露给非特权攻击者。特别是,攻击迫使推测性地执行代码小工具,该代码小工具将执行非法读取,这最终会被压扁,但会留下可被攻击者用来推断值的侧通道踪迹。有几种攻击变体是可能的,允许任意将整个内核内存暴露给无特权的攻击者。在本文中,我们介绍了一种新的模型(SafeSpec),以支持投机的方式,是免疫侧通道泄漏必要的攻击,如熔毁和幽灵。特别是,SafeSpec以攻击者不可见的方式存储推测的副作用,而指令是推测性的。然后,如果分支提交,则推测状态被提交到主CPU结构,或者如果分支不提交,则推测状态被压缩,从而使推测代码的所有直接副作用不可见。解决方案还必须解决在提交指令之前从推测指令到提交指令的隐蔽通道的可能性。我们表明,SafeSpec防止所有三个变种的幽灵和熔毁,以及新的变种,我们介绍。我们还开发了一个周期准确的模型的修改设计的x86-64处理器,并表明性能的影响是可以忽略不计的。我们建立原型的硬件支持的硬件描述语言,以显示额外的开销是小的。我们相信SafeSpec完全关闭了这类攻击,并且它是实用的。
2018-06-16 cs.AR cs.CR
Pre-cache: A Microarchitectural Solution to prevent Meltdown and Spectre
University of Minnesota(明尼苏达大学)
本文提出了一种基于微架构的解决方案,用于防止Meltdown和Spectre攻击,通过防止被冲刷的指令暴露数据到缓存,同时保持高性能。
2025-11-21 cs.AR cs.CR
Comprehensive Evaluation of RSB and Spectre Vulnerability on Modern Processors
诸如分支预测、乱序执行和返回栈缓冲器(RSB)之类的性能增强机制已经在当今的现代处理单元中被广泛采用。虽然成功地提高了CPU性能,但利用这些组件中的设计缺陷和安全漏洞为各种类型的微架构攻击(如Spectre和Meltdown)奠定了基础。虽然许多攻击(如Meltdown和Spectre)已经在Intel处理器上大量实施和分析,但很少有研究评估它们对ARM处理器的影响。此外,SpectreRSB漏洞,基于RSB的幽灵攻击的新变种,在最近的研究中被忽视。在这项工作中,我们首先评估的SpectreRSB漏洞,通过实施这种攻击的ARM处理器,据我们所知,尚未实施和分析ARM处理器。我们进一步提出了一个安全评估的ARM处理器通过实现不同的变种的幽灵族攻击。通过分析从各种实验中获得的结果,我们评估ARM处理器的安全性,其不同的微体系结构设计。我们还介绍了一个高吞吐量和无噪声的隐蔽通道,基于RSB结构。实验结果表明,隐通道的吞吐量为94.19KB/s,误差可以忽略不计。
2023-02-19 cs.AR cs.CR
Indirect Meltdown: Building Novel Side-Channel Attacks from Transient-Execution Attacks
该研究提出为Meltdown增加间接机制将瞬态执行攻击转化为侧信道攻击,设计LeakIDT实现缓存行粒度内核地址监控,可泄露元数据并实现击键计时、网站指纹攻击,同时给出低开销缓解方案。
2023-10-06 cs.CR
Spectre Returns! Speculation Attacks using the Return Stack Buffer
最近的Spectre攻击利用了推测性执行,这是现代微处理器的一个普遍使用的功能,允许敏感数据跨越保护边界。在本文中,我们介绍了一种新的幽灵类攻击,我们称之为SpectreRSB。特别是,SpectreRSB没有利用分支预测器单元,而是利用返回堆栈缓冲区(RSB),这是现代CPU中用于预测返回地址的常见预测器结构。我们表明,本地攻击(在同一个过程中,如幽灵1)和攻击SGX是可能的,通过构建概念证明攻击。我们还分析了其他类型的攻击内核或跨地址空间,并表明在一些实际和广泛使用的条件下,他们是可能的。重要的是,包括Retpoline和英特尔的微码补丁在内的所有已知防御措施都无法阻止所有SpectreRSB攻击。我们认为,未来的系统开发人员应该意识到这个漏洞,并在开发针对投机攻击的防御时考虑它。特别是,在Core-i7 Skylake和更新的处理器上(但不在英特尔的Xeon处理器系列上),一个名为RSB重新填充的补丁被用来解决RSB填充不足时的漏洞;这种防御干扰了SpectreRSB发动切换到内核的攻击的能力。我们建议在所有计算机上使用此修补程序来防御SpectreRSB。
2018-07-20 cs.CR
SpectreRewind: Leaking Secrets to Past Instructions
瞬态执行攻击利用微架构隐蔽通道来泄漏在逻辑程序执行期间不应该被访问的秘密。通常使用的微架构隐蔽通道是在微架构状态中留下持久足迹的通道,例如,高速缓存状态改变,在瞬时执行完成之后,从该通道恢复秘密。在本文中,我们提出了SpectreRewind,一种新的方法来创建基于竞争的瞬态执行攻击的隐蔽通道。在我们的方法中,一个隐蔽的通道是通过发出必要的指令之前,暂时执行的受害者代码逻辑。与需要同时多线程(SMT)的基于竞争的隐蔽通道不同,SpectreRewind支持基于单个硬件线程的隐蔽通道,使其在攻击者无法利用SMT的系统上可行。我们发现,在商品处理器上的浮点除法单元上的竞争可以用来创建一个高性能(~100 KB/s),低噪声的隐蔽通道,而不是常用的刷新+重载基于缓存隐蔽通道的瞬态执行攻击。我们实现了一个熔毁攻击利用建议的隐蔽通道表现出竞争力的性能相比,最先进的基于缓存的隐蔽通道的实现。我们还表明,隐蔽通道工程的JavaScript引擎的Chrome浏览器。
2020-06-23 cs.CR
Systematic Analysis of Programming Languages and Their Execution Environments for Spectre Attacks
在本文中,我们分析了程序设计语言及其执行环境(编译器和解释器)的安全性与Spectre攻击。分析表明,42个执行环境中只有16个至少针对一个Spectre变体采取了缓解措施,即,26个版本没有针对任何Spectre变体的缓解措施。使用我们的新工具Speconnector,我们开发了8种程序设计语言的Spectre概念验证攻击,并对11个以前不知道会受到影响的执行环境生成的代码进行了攻击。我们的研究结果突出了一些程序设计语言,用于实现安全关键代码,但仍然完全不受保护,甚至三年后发现的幽灵。
2021-11-24 cs.CR
A Turning Point for Verified Spectre Sandboxing
Spectre攻击使攻击者能够访问应用程序内存中的受限数据。学术界和行业资深人士都开发了几种缓解措施来阻止Spectre攻击,但到目前为止,很少有正式审查;大多数都是“尽力而为”的策略。正式的保证对于保护隔离环境(如沙箱)免受Spectre攻击尤为重要。在这样的环境中,缓解措施中的一个细微缺陷将允许不受信任的代码突破沙箱并访问受信任的内存区域。在我们的工作中,我们制定了原则性的基础,以建立抵御Spectre攻击的隔离环境。我们提出了一个正式的框架,推理沙箱执行和幽灵攻击。我们形式化的属性,健全的缓解策略必须履行,我们展示了各种现有的缓解满足(或未能满足!)这些财产。
2022-08-02 cs.CR
NetSpectre: Read Arbitrary Memory over Network
在本文中,我们提出了NetSpectre,一个通用的远程Spectre变体1攻击。为此,我们展示了第一个访问驱动的远程Evict+恶意缓存攻击网络,泄漏每小时15位。除了改造现有的攻击网络的情况下,我们还展示了第一个幽灵攻击,不使用缓存隐蔽通道。相反,我们提出了一种新的高性能的基于AVX的隐蔽通道,我们在我们的无缓存幽灵攻击中使用。我们表明,特别是远程幽灵攻击的性能显着更好的AVX为基础的隐蔽通道,泄漏60位每小时从目标系统。我们验证了我们的NetSpectre攻击在局域网中以及Google云中的虚拟机之间都有效。NetSpectre标志着从本地攻击到远程攻击的范式转变,使更广泛和更多的设备暴露于Spectre攻击。Spectre攻击现在也必须考虑在根本不运行任何潜在攻击者控制代码的设备上。我们表明,特别是在这种远程情况下,基于不泄漏实际数据的较弱小工具的攻击仍然非常强大,可以远程破坏地址空间布局随机化。我们讨论的几个幽灵小工具比预期的更通用。特别是,值阈值是我们设计的一种技术,它泄漏了一个秘密值,而没有典型的位选择机制。我们概述了未来研究的幽灵攻击和幽灵缓解的挑战。
2018-07-27 cs.CR
oo7: Low-overhead Defense against Spectre Attacks via Program Analysis
现代处理器中的Spectre漏洞已被广泛报道。此漏洞的关键在于,处理器中的推测性执行可能被滥用来访问机密。随后,即使推测性地执行的指令被压扁,秘密也可以在诸如高速缓存的微架构状态中逗留,并且可以潜在地由攻击者经由侧通道访问。在本文中,我们提出了oo7,一个静态分析的方法,可以通过检测程序二进制文件中的潜在脆弱的代码片段,并保护他们免受攻击,修补他们,以减轻Spectre攻击。我们的主要贡献是平衡的有效性,分析时间和运行时开销的关注。我们采用控制流提取,污点分析,和地址分析,检测污染的条件分支和投机性内存访问。oo7可以检测到所有15个专用的Spectre漏洞代码模式,而带有Spectre缓解选项的Microsoft编译器只能检测到其中的两个。我们还报告了一个大规模的研究应用oo7超过500程序二进制文件(平均二进制大小261 KB)从不同的现实世界的项目的结果。我们保护程序免受Spectre攻击,有选择地只在脆弱的条件分支插入栅栏,以防止投机执行。实验观察到我们的方法在SPECint基准测试中产生约5.9%的性能开销。
2019-11-12 cs.CR
SPECCFI: Mitigating Spectre Attacks using CFI Informed Speculation
Spectre攻击及其许多后续变种是影响现代CPU的新漏洞类别。这些攻击依赖于误导推测性执行的能力,通常通过利用分支预测结构来推测性地执行易受攻击的代码序列。在本文中,我们建议使用控制流完整性(CFI),一种用于阻止控制流劫持攻击的安全技术,在提交的路径上,以防止投机控制流被劫持发动最危险的变种的幽灵攻击(幽灵BTB和幽灵RSB)。具体来说,CFI试图将间接分支的可能目标约束到由预先计算的控制流图(CFG)定义的一组合法目标。随着CFI被商品软件(例如,Windows和Android)和商用硬件(例如,Intel的CET和ARM的BTI),CFI信息通过硬件CFI扩展变得随时可用。与CFI信息,我们应用CFI原则,也限制非法的控制流在投机执行。具体来说,我们提出的防御,SPECCFI,确保控制流指令的目标法律目的地,以限制危险的投机正向控制流路径(间接调用和分支)。我们增加了这种保护与精确的投机意识的硬件堆栈,以限制投机的反向控制流边缘(回报)。我们将此解决方案与针对分支目标预测攻击(Spectre-PHT)的现有解决方案相结合,以关闭所有已知的非供应商特定的Spectre漏洞。我们表明,SPECCFI结果在小开销的性能和额外的硬件复杂性。
2019-12-04 cs.CR
Meltdown
计算机系统的安全性基本上依赖于存储器隔离,例如,内核地址范围被标记为不可访问,并且被保护以防止用户访问。在本文中,我们介绍了Meltdown。Meltdown利用现代处理器上乱序执行的副作用来读取任意内核内存位置,包括个人数据和密码。乱序执行是一项不可或缺的性能功能,广泛存在于各种现代处理器中。至少从2010年开始,该攻击适用于不同的英特尔微架构,可能会影响其他处理器。Meltdown的根本原因是硬件。这种攻击独立于操作系统,也不依赖于任何软件漏洞。Meltdown打破了地址空间隔离和半虚拟化环境所给出的所有安全假设,从而打破了构建在此基础上的所有安全机制。在受影响的系统上,Meltdown使对手能够在没有任何权限或特权的情况下读取云中其他进程或虚拟机的内存,影响数百万客户和几乎所有个人计算机用户。我们表明,KAISER防御机制KASLR具有重要的(但无意的)的副作用,阻碍熔毁。我们强调必须立即部署KAISER,以防止大规模利用这一严重的信息泄漏。
2018-01-03 cs.CR
Swivel: Hardening WebAssembly against Spectre
我们描述了Swivel,一个新的编译器框架,用于加固WebAssembly(Wasm)以抵御Spectre攻击。在浏览器之外,Wasm已经成为一个流行的轻量级进程内沙箱,例如,用于生产中隔离边缘云和功能即服务平台上的不同客户端。不幸的是,Spectre攻击可以绕过Wasm的隔离保证。Swivel通过确保潜在的恶意代码既不能使用Spectre攻击来突破Wasm沙箱,也不能强迫受害者代码(另一个Wasm客户端或嵌入进程)泄漏机密数据,从而加强了Wasm对此类攻击的抵抗能力。我们描述了两种Swivel设计,一种是可以在现有CPU上使用的纯软件方法,另一种是使用英特尔第11代CPU中可用的扩展的硬件辅助方法。对于这两种情况,我们评估了一种减轻Spectre的随机方法和一种完全消除Spectre的确定性方法。我们的随机实现强加下10.3%的开销WASM兼容的SPEC 2006子集,而我们的确定性实现强加的开销在3.3%和240.2%之间。虽然在一些基准上很高,但Swivel的开销仍然比依赖管道围栏的现有防御小9倍到36.3倍。
2021-03-20 cs.CR
Restricting Control Flow During Speculative Execution with Venkman
侧信道攻击(诸如Spectre)利用推测性执行来窃取应用秘密,对现代计算系统构成重大威胁。虽然程序转换可以减轻一些Spectre攻击,但更高级的攻击可以推测性地转移控制流以绕过这些保护指令,从而使现有的防御变得无用。在本文中,我们提出了Venkman:一个系统,采用程序转换,以完全挫败Spectre攻击,毒药条目的分支目标缓冲区(BTB)和返回堆栈缓冲区(RSB)。Venkman转换代码,使控制流传输的所有有效目标在虚拟地址空间中具有相同的对齐;它进一步转换所有分支,以确保添加到BTB和RSB的所有条目都正确对齐。通过这种方式转换所有代码,Venkman确保在任何需要Spectre防御的程序中,所有控制流传输(包括推测性传输)都不会跳过Venkman添加到代码段中的保护性指令,以减轻Spectre攻击。与现有的防御不同,Venkman不会减少BTB和RSB的共享,也不会刷新这些结构,允许程序之间的安全共享和重用,同时保持对Spectre攻击的强大保护。我们在IBM POWER8机器上构建了Venkman的原型。我们对SPEC基准测试和选定应用程序的评估表明,Venkman将执行时间平均增加到3.47 $\times$,并将代码大小平均增加到1.94 $\times$,以确保执行围栏来减轻Spectre攻击。我们的评估还表明,使用Venkman构建的抗Spectre软件故障隔离(SF…
2019-03-26 cs.CR
GhostMinion: A Strictness-Ordered Cache System for Spectre Mitigation
自20世纪90年代初以来无处不在的无序投机技术仍然是一个根本的安全缺陷。通过Spectre和Meltdown等攻击,攻击者可以欺骗受害者,在一个完全正确的程序中,通过错误推测的执行效果泄露其秘密,以一种对程序员的模型完全不可见的方式。这对应用程序沙箱和进程间通信有严重的影响。设计有效的缓解措施,保持乱序执行的性能,一直是一个挑战。文献中的推测隐藏技术已被证明不能全面关闭这些通道,从而使对手能够重新设计攻击。强有力的、精确的保证是必要的,但同时缓解措施必须达到高性能才能被采用。我们提出了一个新的约束系统,它展示了我们如何全面消除瞬态侧信道攻击,同时仍然允许复杂的推测和推测指令之间的数据转发。然后,我们提出了GhostMinion,一个缓存修改,使用各种新技术,旨在提供仅2.5%的开销的快速顺序。
2021-09-09 cs.AR cs.CR
ZombieLoad: Cross-Privilege-Boundary Data Sampling
在2018年初,Meltdown首次展示了如何通过利用瞬态指令的副作用从用户空间读取任意内核内存。虽然这种攻击已经通过用户和内核空间之间更强的隔离边界得到了缓解,但Meltdown激发了一类全新的故障驱动瞬态执行攻击。特别是,在过去的一年中,Meltdown类型的攻击已经扩展到不仅从L1缓存泄漏数据,而且还从各种其他微架构结构(包括FPU寄存器文件和存储缓冲器)泄漏数据。在本文中,我们提出了ZombieLoad攻击,揭示了一种新的Meltdown类型的效果在处理器的以前未开发的填充缓冲区逻辑。我们的分析表明,故障加载指令(即,由于体系结构或微体系结构的原因而必须重新发出的加载)可以暂时地解引用先前由当前或同级逻辑CPU带入填充缓冲器的未授权目的地。因此,我们报告了最近加载的过时值在逻辑核心上的数据泄漏。我们展示了ZombieLoad在CPU特权环、操作系统进程、虚拟机和SGX飞地的多种实际攻击场景中的有效性。我们讨论了短期和长期的缓解方法,并得出结论,禁用超线程是唯一可能的解决方案,以防止这种非常强大的攻击当前的处理器。
2019-05-14 cs.CR
Speculative Buffer Overflows: Attacks and Defenses
利用推测执行的实际攻击可以通过微架构侧通道泄漏机密信息。最近演示的Spectre攻击利用推测性加载来规避访问检查以读取内存驻留的秘密,使用缓存定时或其他隐蔽通信通道将其传输给攻击者。我们介绍了Spectre1.1,这是一个新的Spectre-v1变体,它利用推测性存储来创建推测性缓冲区溢出。与经典的缓冲区溢出非常相似,推测性越界存储可以修改数据和代码指针。数据值攻击可以直接或通过重定向控制流绕过某些Spectre-v1缓解措施。控制流攻击允许任意推测性代码执行,这可以绕过栅栏指令和所有其他软件缓解以前的推测性执行攻击。构建可用于构建替代攻击有效载荷的面向返回的编程(ROP)小工具很容易。我们还介绍了Spectre1.2:在不强制执行读/写保护的CPU上,推测性存储可以覆盖只读数据和代码指针,以突破沙箱。我们强调了这些漏洞带来的新风险,讨论了可能的软件缓解措施,并概述了可以作为硬件防御的微架构机制。我们尚未评估我们提出的软件和硬件缓解措施的性能影响。我们仅详细描述了突出的漏洞特征和其他假设攻击场景,以指导硬件和软件供应商进行威胁分析和缓解。我们建议用户参考更用户友好的供应商建议,以缓解投机性缓冲区溢出或可用的补丁。
2018-07-10 cs.CR
Short Paper: Static and Microarchitectural ML-Based Approaches For Detecting Spectre Vulnerabilities and Attacks
University of Massachusetts Dartmouth(马萨诸塞大学达特茅斯分校)
Spectre入侵利用了现代处理器中的推测执行设计漏洞。这些攻击违反了程序中的隔离原则,以获取未经授权的私人用户信息。当前最先进的检测技术利用微体系结构特征或易受攻击的推测性代码来检测这些威胁。然而,这些技术是不够的,因为Spectre攻击已经被证明是更隐蔽的,最近发现的变种绕过了当前的缓解机制。侧通道在处理器缓存中生成不同的模式,并且敏感信息泄漏取决于易受Spectre攻击的源代码,其中攻击者使用这些漏洞,例如分支预测,这会导致数据泄露。以前的研究主要采用微体系结构分析来检测Spectre攻击,这是一种反应式方法。因此,在本文中,我们提出了第一次全面评估的静态和微架构分析辅助机器学习方法来检测Spectre脆弱的代码片段(预防)和Spectre攻击(反应)。我们评估的性能权衡采用分类检测幽灵的漏洞和攻击。
2022-10-26 cs.CR cs.LG
An Analysis of Speculative Type Confusion Vulnerabilities in the Wild
Spectre v1攻击利用条件分支误预测,通常被识别为绕过数组边界检查以从受害者的内存中泄漏数据的攻击。然而,一般来说,Spectre v1攻击可以利用任何条件分支错误预测,使受害者错误地执行代码。在本文中,我们调查投机类型混淆,一个幽灵v1攻击向量,其中分支预测失误,使受害者执行的变量持有错误类型的值,从而泄漏内存内容。我们观察到编译器可能无意中引入推测类型混淆,使程序员很难推理安全性并手动应用Spectre缓解措施。因此,我们开始确定推测类型混淆影响Linux内核的程度。我们的分析发现了可利用和潜在可利用的任意内存泄漏漏洞。我们还发现了许多潜在的漏洞,这些漏洞可能由于无害的系统更改(如编码风格更改)而被利用。我们的研究结果表明,依赖于静态/手动识别“坏”代码模式的Spectre缓解措施需要重新考虑,并且需要更全面的缓解措施。
2021-07-02 cs.CR
Beyond Over-Protection: A Targeted Approach to Spectre Mitigation and Performance Optimization
本研究扩展侧信道模型验证框架Scam-V,用于检测程序的Spectre-PHT漏洞并定向优化LLVM中slh防护措施,结合目标平台微架构特性减少过度防护带来的性能开销。
2023-12-15 cs.CR
Spectre Attacks: Exploiting Speculative Execution
现代处理器使用分支预测和推测执行来最大化性能。例如,如果分支的目的地取决于正在读取的内存值,CPU将尝试猜测目的地并尝试提前执行。当内存值最终到达时,CPU要么放弃,要么提交推测计算。推测逻辑在执行时是不忠实的,可以访问受害者的内存和寄存器,并且可以执行具有可测量副作用的操作。Spectre攻击涉及诱导受害者推测性地执行在正确的程序执行期间不会发生的操作,并且通过侧通道将受害者的机密信息泄露给对手。本文介绍了实际的攻击,结合方法从侧信道攻击,故障攻击,并返回导向的编程,可以读取任意内存从受害者的进程。更广泛地说,该文件表明,投机性执行的实现违反了安全假设的基础上的许多软件安全机制,包括操作系统的进程分离,静态分析,容器化,即时(JIT)编译,并采取对策,高速缓存定时/侧信道攻击。这些攻击对实际系统构成了严重威胁,因为在数十亿设备中使用的英特尔、AMD和ARM的微处理器中发现了易受攻击的推测执行功能。虽然在某些情况下可以采取临时的特定于处理器的对策,但合理的解决方案将需要修复处理器设计以及更新指令集架构(ISA),以便让硬件架构师和软件开发人员对CPU实现允许(和不允许)泄漏的计算状态达成共识。
2018-01-03 cs.CR
Reverse Engineering the Apple M1 Conditional Branch Predictor for Out-of-Place Spectre Mistraining
本文逆向分析 Apple M1 的 TAGE 类条件分支预测器,提出缩小搜索空间的 BPU 别名搜索方法,实现异位 Spectre v1 误训练并发现部分硬件缓解证据。
2025-02-15 cs.CR
Software Mitigation of RISC-V Spectre Attacks
针对启用推测执行的RISC-V核心易受Spectre攻击且硬件缓解方案仍处原型阶段的问题,提出低开销的Spectre-BTI与首个Spectre-RSB软件缓解方案,验证其有效且可集成至LLVM工具链,并公开相关代码数据。
2023-11-06 cs.CR cs.OS
MuonTrap: Preventing Cross-Domain Spectre-Like Attacks by Capturing Speculative State
2018年1月Spectre投机执行攻击的披露留下了一个严重的漏洞,系统仍在努力解决如何修补的问题。目前存在的解决方案往往覆盖不完整,性能差,或者具有导致应用程序域中断的非常不受欢迎的边缘情况。MuonTrap允许处理器继续推测,避免性能的显著降低,而不会影响安全性。相反,我们通过将推测性高速缓存访问的结果放置到一个小的、快速的L0过滤器高速缓存中,来防止基于推测性执行的任何状态的传播,该过滤器高速缓存与高速缓存层次结构的其余部分是非包容性的、非排他性的。这将隔离系统中无法在威胁域发生任何变化时快速清除的所有部分。MuonTrap使用这些推测性过滤器缓存,这些缓存在上下文和保护域切换时被清除,以及对缓存一致性协议和预取器的一系列扩展。这使得系统不受Spectre跨域信息泄漏的影响,也不受基于推测执行的许多类似攻击的影响,对性能的影响很小,对CPU设计的改变也很少。
2020-04-28 cs.AR cs.CR
Cats vs. Spectre: An Axiomatic Approach to Modeling Speculative Execution Attacks
Spectre家族的投机执行攻击需要重新思考安全的形式化方法。基于操作推测语义的方法已经在寻找易受攻击的代码和验证防御方面取得了初步进展。然而,随着每一次新的攻击,必须集成到底层语义中的微体系结构细节的数量也会增加。我们提出了一种替代的,轻量级的和公理化的方法来指定投机语义,依赖于内存模型的并发性的见解。我们使用CAT建模语言的内存一致性,指定执行模型,捕捉投机控制流,存储到加载转发,预测存储转发,和内存排序机器清除。我们提出了一个有界的模型检验框架参数化我们的投机CAT模型和评估其实现对国家的art.Due的公理化的方法,我们的模型可以迅速扩展,使我们的框架,以检测新类型的攻击,并验证对他们的防御。
2021-12-11 cs.CR cs.PL
Spectre is here to stay: An analysis of side-channels and speculative execution
最近发现的Spectre和Meltdown攻击不仅是计算机安全领域的分水岭,也是程序设计语言的分水岭。本文探讨了推测性侧信道攻击及其对程序设计语言的影响。这些攻击通过微架构的侧通道泄漏信息,我们发现这些侧通道不仅仅是错误,实际上是优化的基础。我们确定了三个开放的问题,(1)找到侧通道,(2)理解投机漏洞,(3)减轻它们。对于(1),我们引入了一个数学元模型,该模型阐明了模拟和CPU中的边通道的来源。对于(2),我们引入了一个具有推测语义的体系结构模型来研究最近发现的漏洞。对于(3),我们探索和评估软件缓解措施,并证明一种适用于该模型的缓解措施。我们的分析是通过对V8(Chrome中的生产JavaScript虚拟机)的广泛攻击性研究和防御性实现工作而得出的。对真实硬件模型的直接扩展表明,这些漏洞对有效、高效的缓解提出了巨大的挑战。由于我们的工作,我们现在认为,今天的硬件上的投机漏洞击败了所有语言强制的机密性,没有已知的全面软件缓解措施,因为我们已经发现,不受信任的代码可以构建一个通用的读取小工具,通过侧通道读取同一地址空间中的所有内存。面对这一现实,我们已经将Chrome Web浏览器和V8的安全模型转变为进程隔离。
2019-02-14 cs.CR cs.PL
Characterizing the Variance Envelope: A Multi-Dimensional Analysis of Spectre Telemetry Across Architectures and Workloads
University of California, Irvine(加州大学尔湾分校)
本文刻画Spectre攻击的方差包络,通过跨Intel、ARM、AMD架构的实验,发现HPC特征易受环境扭曲、Prime+Probe在AMD Jaguar上存在硬件瓶颈,提出需架构感知的自适应监控用于Spectre检测。
2026-08-17 cs.AR cs.CR
Constant-Time Foundations for the New Spectre Era
恒定时间规则是一种基于软件的对策,用于保护高保证加密实现免受定时侧信道攻击。常数时间是有效的(它可以防止许多已知的攻击),严格的(它可以使用程序语义形式化),并服从自动验证。然而,微体系结构攻击的出现使得今天存在的恒定时间变得不那么有用。本文奠定了基础,在投机和乱序执行的存在下,常数时间编程。我们提出了一个操作语义和恒时程序在这个扩展设置的正式定义。我们的语义避免形式化的微架构功能(而不是假设对手的控制下),并产生一个概念的恒定时间,保持优雅和易处理的通常的概念。我们证明了我们的语义在两个方面的相关性:第一,通过对比现有的幽灵般的攻击与我们的定义的恒定时间。其次,通过实现一个静态分析工具Pitchfork,它可以检测在现实世界的加密库中违反我们扩展的恒定时间属性的行为。
2020-05-08 cs.CR cs.PL
KLEESPECTRE: Detecting Information Leakage through Speculative Cache Attacks via Symbolic Execution
2018年初披露的Spectre攻击通过缓存侧通道暴露了数据泄漏场景。具体地,由于分支误预测而推测地执行的路径可能将秘密数据带入高速缓存中,然后即使在推测执行被压制之后,这些秘密数据也经由高速缓存侧通道被暴露。符号执行是一种众所周知的测试生成方法,用于覆盖应用软件级别的程序路径。在本文中,我们扩展了符号执行与建模的缓存和推测执行。我们的工具KLEESPECTRE,建立在KLEE符号执行引擎之上,因此可以提供一个测试引擎来检查通过缓存侧通道的数据泄漏,如通过Spectre攻击所示。我们的符号缓存模型可以验证是否敏感的数据泄漏,由于投机执行可以观察到攻击者在一个给定的程序点。实验结果表明,KLEESPECTREE可以有效地检测沿推测执行路径的数据泄漏,我们的缓存模型可以进一步使泄漏检测更精确。
2019-09-02 cs.CR
Osiris: Automated Discovery of Microarchitectural Side Channels
在过去的几年里,在CPU上发现了一系列的侧通道。这些侧信道已被用于强大的攻击,例如,在加密实现上,或作为瞬态执行攻击(如Spectre或Meltdown)的构建块。然而,在许多情况下,发现侧通道仍然是一个繁琐的手动过程。在本文中,我们提出了Osiris,一个基于模糊的框架,自动发现微架构侧通道。基于CPU ISA的机器可读规范,Osiris生成并行序列三元组,并自动测试它们是否形成基于时序的侧通道。此外,Osiris评估了它们作为瞬时执行攻击中的侧通道的可用性,即,像幽灵党这样的攻击的微架构编码。总的来说,我们在Intel和AMD CPU上发现了四个新颖的基于时序的侧通道。基于这些侧通道,我们展示了三个案例研究中的剥削。我们表明,我们的微架构KASLR打破使用非临时负载,FlushConflict,甚至在新的英特尔冰湖和彗星湖微架构。我们提出了一个跨核跨虚拟机隐蔽通道,不依赖于内存子系统,传输高达1 kbit/s。我们在AWS云上演示了这个通道,表明它是隐身和抗噪的。最后,我们演示了Stream+ Quad,这是一种用于瞬时执行攻击的隐蔽通道,平均允许在瞬时窗口内泄漏7.83字节,改进了最多仅泄漏3字节的最新攻击。
2021-06-07 cs.CR
InSpectre: Breaking and Fixing Microarchitectural Vulnerabilities by Formal Analysis
最近的Spectre攻击表明了当前计算机微体系结构的根本不安全性。这些攻击使用流水线、乱序和推测等特征来提取有关进程内存内容的任意信息。一个全面的正式的微体系结构模型,能够代表的形式,无序和投机行为,可以有意义地实现在一个高性能的流水线架构尚未出现。这样一个模式将非常有用,因为它将允许正式确定脆弱性的存在和不存在以及反措施的合理性。在本文中,我们提出了这样一个模型,针对单核处理器。该模型是非常通用的,并提供了一个基础设施来定义真正的CPU模型。它集成了支持所有已知Spectre漏洞的微架构功能。我们使用该模型来阐明现有的和新的漏洞的安全性,以及正式分析所提出的对策的有效性。具体来说,我们发现了三个新的(潜在的)漏洞,包括一个新的变种的幽灵v4,投机性提取的漏洞,和乱序执行的漏洞,并分析了现有的三个对策的有效性:常数时间,Retpoline,和ARM的投机性存储旁路安全(SSBS)。
2020-08-17 cs.CR
SPEECHMINER: A Framework for Investigating and Measuring Speculative Execution Vulnerabilities
SPEECH漏洞导致了臭名昭著的Meltdown、Spectre和L1终端故障(L1TF)攻击。虽然许多研究报告了SPEECH漏洞的不同变体,但它们仍然没有得到很好的理解。这主要是由于缺乏关于微处理器实现细节的信息,这些细节影响各种微架构事件的时序和顺序。此外,到目前为止,还没有系统的方法来定量衡量商品加工商的SPEECH漏洞。本文介绍了SPEECHMINER,一个软件框架,探索和测量SPEECH漏洞的自动化方式。SPEECHMINER凭经验建立了一个新的两相故障处理模型和SPEECH漏洞的可利用性和推测窗口之间的联系。它可以在同一个软件框架下测试一个全面的异常触发指令列表,该框架利用隐蔽通道技术和差分测试来获得对微体系结构状态变化的可见性。我们在9种不同的处理器类型上评估了SPEECHMINER,检查了21个潜在的漏洞变体,确认了各种已知的攻击,并确定了几个新的变体。
2019-12-09 cs.CR
SPECTECTOR: Principled Detection of Speculative Information Flows
自从幽灵出现以来,已经提出并部署了一些对策。然而,严格推理它们的有效性需要一个定义良好的安全概念来抵御投机性执行攻击,这一点到目前为止一直缺失。在本文中,(1)我们提出了投机不干扰,第一语义概念的安全性,防止投机执行攻击,(2)我们开发SPECTECTOR,一个算法的基础上,符号执行自动证明投机不干扰,或检测违规。我们在一个工具中实现了SPECTECTOR,我们用它来检测主要编译器放置SPECTRE对策的方式中的细微泄漏和优化机会。一个可扩展性分析表明,检查投机性的非干扰并没有表现出根本的瓶颈超出那些继承的符号执行。
2019-07-24 cs.CR
Penetrating Shields: A Systematic Analysis of Memory Corruption Mitigations in the Spectre Era
本文首次系统分析了内存破坏与微架构侧信道漏洞的协同威胁模型,通过研究推测性护盾绕过攻击,对20种缓解方案进行分类并识别出10种易受攻击方案,利用图模型分析并提出三种概念验证攻击。
2023-09-08 cs.AR cs.CR
CacheSquash: Making caches speculation-aware
本文提出CacheSquash机制,通过在推测指令被撤销时立即向缓存层次发送取消信号,阻止错误推测的内存访问改变缓存状态,从而以接近零的性能开销有效防御Spectre攻击。
2025-05-08 cs.AR cs.CR
SPECTRE: A Hybrid System for an Adaptative and Optimised Cyber Threats Detection, Response and Investigation in Volatile Memory
University of Westminster(威斯敏斯特大学);London Metropolitan University(伦敦城市大学);University of Liverpool(利物浦大学);Staffordshire University(斯塔福德郡大学);Royal Holloway, University of London(伦敦大学皇家霍洛威学院)
SPECTRE是一种混合系统,利用内存和网络取证技术,通过模块化设计提升网络安全威胁的检测、响应和调查能力。
2025-01-07 cs.CR cs.NI cs.OS
Speculative Leakage in ARM Cortex-A53
最近的Spectre攻击表明,现代微架构优化可能会使软件不安全。这些攻击使用流水线、乱序和推测等特征,通过边通道提取有关进程内存内容的信息。在本文中,我们证明了Cortex-A53的推测泄漏的影响,即使微架构不支持乱序执行。我们将这类新的漏洞命名为SiSCloak。
2020-07-17 cs.CR
Exploiting Inaccurate Branch History in Side-Channel Attacks
本文分析现代 BPU 的无偏置预测与分支历史推测如何改变 BHB 更新,提出 Spectre-BSE、Spectre-BHS 和 BiasScope,并用 Chimera 实现高速内核内存泄露。
2025-06-08 cs.AR cs.CR
Processor Hardware Security Vulnerabilities and their Detection by Unique Program Execution Checking
最近在高级处理器中发现的安全攻击,被称为Spectre和Meltdown,导致公众对硬件安全的高度警觉。这些攻击的根本原因是通过“隐蔽通道”的信息泄漏,这些通道在秘密和攻击者之间没有任何显式信息流的情况下泄露秘密数据。许多消息来源认为,这种隐蔽通道是基于推测和乱序执行的高度先进的处理器架构所固有的,这表明可以通过远离高端处理器来避免这种安全风险。然而,本文表明,这个问题是更广泛的范围:我们提出了新的类别的隐蔽通道攻击,这是可能的平均复杂度的处理器,按顺序流水线,因为它们是主流的应用程序,从物联网到自治系统。我们提出了一种新的方法作为对隐蔽通道补救的基础:虽然所有以前的攻击都是通过人类攻击者的巧妙思考发现的,但本文提出了一种自动化和详尽的方法,称为“唯一程序执行检查”,该方法系统地检测和定位隐蔽通道的漏洞,包括迄今为止未知的隐蔽通道。
2018-12-05 cs.CR
Citadel: Simple Spectre-Safe Isolation For Real-World Programs That Share Memory
本文提出 Citadel,利用松弛微架构隔离(RMI)和 enclave 设置,通过安全模式与突发模式两种硬件机制,在不牺牲可用性的前提下以低于 5% 的性能开销保护共享内存程序免受 Spectre 类瞬态执行攻击。
2025-02-07 cs.AR cs.CR
SMoTherSpectre: exploiting speculative execution through port contention
Spectre、Meltdown和相关攻击已经证明,内核、虚拟机管理程序、可信执行环境和浏览器很容易通过微架构弱点泄露信息。然而,目前尚不清楚其他应用程序,特别是那些不加载攻击者提供的代码的应用程序可能会受到多大程度的影响。目前还不清楚这些攻击在多大程度上依赖于基于缓存的侧通道。我们介绍SMoTherSpectre,一个投机性的代码重用攻击,利用端口争用同时多线程处理器(SMoTher)作为一个侧通道,从受害者进程泄漏信息。SMoTher是一个细粒度的侧通道,它基于单个牺牲指令检测争用。为了发现现实世界的小工具,我们描述了一种方法,并建立一个工具,定位SmoTher-gadgets在流行的图书馆。在对glibc的评估中,我们发现了数百个可以用来泄露信息的小工具。最后,我们展示了对OpenSSH服务器的概念验证攻击,创建用于确定四个主机密钥位的预言机,以及对使用OpenSSL库执行加密的应用程序的攻击,创建一个可以通过libcrypto和glibc中的小工具区分一点明文的预言机。
2019-09-26 cs.CR
Hacky Racers: Exploiting Instruction-Level Parallelism to Generate Stealthy Fine-Grained Timers
侧信道攻击对许多安全模型构成严重威胁,尤其是基于沙箱的浏览器。虽然乱序处理器中的瞬时执行侧通道以前被归咎于Spectre和Meltdown等漏洞,但我们表明,事实上,乱序执行\emph{itself}造成混乱的能力要普遍得多。我们开发了Hacky Racers,一种新型的计时小工具,它使用指令级并行,乱序执行的另一个关键特性,来测量任意细粒度的计时差异,即使在高度受限的JavaScript沙箱环境中也是如此。虽然这样的环境试图通过降低定时器精度和移除诸如\textit{SharedArrayBuffer}之类的可用于经由线程级并行性间接生成定时器的语言功能来减轻定时侧通道,但是不能设计这样的限制来限制Hacky Racers。我们还设计了Hacky Racers的版本,这些版本不需要任何错误推测,这表明瞬态执行并不是现代微架构性能优化对安全性的唯一威胁。我们使用Hacky Racers来构建新颖的\textit{backwards-in-time} Spectre小工具,这些小工具通过在错误推测被发现之前泄露秘密来打破文献中的许多硬件对策。我们还使用它们来生成JavaScript中第一个已知的不需要\textit{SharedArrayBuffer}支持的末级缓存驱逐集生成器。
2022-11-26 cs.AR cs.CR
Teapot: Efficiently Uncovering Spectre Gadgets in COTS Binaries
本文提出首个基于静态二进制重写和模糊测试的 Spectre gadget 扫描器 Teapot,通过引入 Speculation Shadows 分离正常执行与推测模拟代码,在 COTS 二进制文件上高效检测漏洞,性能和检测能力均显著优于现有方法。
2024-12-26 cs.AR cs.CR
LEASH: Enhancing Micro-architectural Attack Detection with a Reactive Process Scheduler
微体系结构攻击使用通过共享资源泄漏的信息来破坏硬件强制隔离。这些攻击已被用于窃取从加密密钥到特权操作系统(OS)数据的私人信息,这些数据存在于从手机到云服务器的各种设备中。大多数现有的软件对策要么有不可接受的开销或相当大的误报。此外,它们被设计用于特定的攻击,并且不能容易地适应新的变体。在本文中,我们提出了一个框架,称为LEASH,它的工作原理从操作系统调度,以最小的开销,可以忽略不计的误报的影响,阻碍微架构的攻击,并能够处理各种各样的攻击。LEASH的工作原理是在运行时饥饿恶意行为的线程,提供不足够的时间和资源来执行攻击。被错误标记为良性的线程的CPU分配将被提升,以最大限度地减少开销。为了演示该框架,我们修改Linux的完全公平的攻击与LEASH和评估它与七个微架构的攻击,从熔毁和Rowhammer到TLB隐蔽通道。的运行时开销进行了评估与一系列的现实世界的应用程序,发现平均不到1%。
2021-09-20 cs.CR
BasicBlocker: ISA Redesign to Make Spectre-Immune CPUs Faster
最近的研究揭示了一类不断增长的微架构攻击,这些攻击利用了推测执行,这是现代处理器的标准功能。建议和部署的对策涉及各种编译器更新、固件更新和硬件更新。部署的反制措施都没有令人信服的安全理由,其中许多已经被打破。简化投机执行攻击分析的一个显而易见的方法是消除投机执行。这通常被认为是不可接受的昂贵,但潜在的成本分析只考虑为当前的部署集架构编写的软件,所以他们不排除新的部署集架构提供可接受的性能而不投机执行的可能性。一个新的ISA需要编译器和硬件更新,但这些都在发生。本文介绍了BasicBlocker,一个通用的ISA修改,适用于所有常见的ISA,并允许非投机CPU获得大部分的性能优势,将提供投机执行。为了证明BasicBlocker的可行性,本文定义了一个称为BBRISC-V的RISC-V ISA的变体,并使用相关的编译器和各种基准程序对5级有序软核和超标量乱序处理器进行了全面的评估。
2021-05-05 cs.AR cs.CR
Serberus: Protecting Cryptographic Code from Spectres at Compile-Time
提出首个编译时全面缓解方案 Serberus,基于硬件 CFI 限制瞬态控制流并修正 CT 代码不安全模式,将密码学程序的幽灵泄露归因于四类污点原语,以更低开销实现更高安全性。
2023-09-11 cs.AR cs.CR
A Benchmark Suite for Evaluating Caches' Vulnerability to Timing Attacks
处理器缓存中基于时间的侧通道或隐蔽通道继续对计算机系统构成威胁,它们是最近许多Spectre和Meltdown攻击的关键。基于改进现有的三步模型的缓存定时为基础的攻击,这项工作提出了88强类型的理论定时为基础的漏洞在处理器缓存。为了理解和评估处理器缓存中所有可能类型的漏洞,本文进一步提出并实现了一个新的基准套件,该套件可用于测试给定处理器或缓存设计易受哪些类型的基于缓存定时的攻击。总共有1094个自动生成的测试程序,涵盖了88个理论漏洞。基准测试套件生成缓存计时漏洞分数,可用于评估特定缓存实现对不同攻击的脆弱程度。较小的Cache Timing Vulnerability Score意味着设计更安全,并且可以很容易地比较不同机器之间的分数。评估是在商用英特尔和AMD处理器上进行的,显示处理器实现的差异可能导致它们容易受到不同类型的攻击。除了测试商用处理器之外,基准测试和缓存定时漏洞分数还可用于帮助新安全处理器缓存的设计者评估其设计对基于缓存定时的攻击的敏感性。
2019-11-19 cs.CR
New Covert and Side Channels Based on Retirement
本文利用Intel处理器同物理核内逻辑核心共享retirement机制造成的竞争泄漏,提出DI和SI两种高带宽隐蔽信道,并将其扩展到Spectre v1变体攻击与SPEC程序识别。
2023-07-24 cs.CR
Okapi: Efficiently Safeguarding Speculative Data Accesses in Sandboxed Environments
本文提出Okapi,一种硬件/软件跨层架构,通过限制推测性数据访问和引入新指令,在沙箱环境中以低性能开销有效防御瞬态执行侧信道攻击。
2025-08-14 cs.AR cs.CR
Timing the Transient Execution: A New Side-Channel Attack on Intel CPUs
本文发现 Intel CPU 中 EFLAGS 变化影响后续 Jcc 指令时序的漏洞,提出一种不依赖缓存的新型瞬态执行侧信道攻击,并在 Meltdown 组合攻击中达到 100% 泄露率。
2023-04-21 cs.CR
MAD-EN: Microarchitectural Attack Detection through System-wide Energy Consumption
Iowa State University(爱荷华州立大学)
随着Spectre和Meltdown等攻击的多样性,微体系结构攻击对硬件安全的威胁越来越大。厂商补丁无法跟上新威胁的步伐,这使得动态异常检测工具比以前更加明显。不幸的是,以前的研究利用硬件性能计数器,导致高性能开销和配置文件有限数量的微体系结构攻击,由于可以同时配置的计数器的数量很少。这使得这些检测工具在现实世界的场景中效率低下。在本研究中,我们介绍了MAD-EN动态检测工具,该工具利用从通用英特尔RAPL工具收集的系统范围内的能耗跟踪来检测系统中正在发生的异常。在我们的实验中,我们证明了基于CNN的MAD-EN可以检测到10种不同的微架构攻击,共有15种变体,最高F1得分为0.999,这使得我们的工具成为迄今为止最通用的攻击检测工具。此外,在系统中检测到异常后,可以以98%的准确率区分单个攻击。我们证明,MAD-EN引入69.3%的性能开销相比,性能计数器为基础的检测机制。
2022-05-31 cs.CR cs.LG
CloudShield: Real-time Anomaly Detection in the Cloud
Princeton University(普林斯顿大学)
在云计算中,如果可以通过自动异常检测系统来检测可疑活动,则是期望的。尽管异常检测在过去已经被研究过,但是在云计算中它仍然是未解决的。挑战是:描述云服务器的正常行为,区分良性和恶意异常(攻击),并防止由于错误警报而导致的警报疲劳。我们提出了CloudShield,一个实用的和通用的实时的【形】异常和攻击检测系统的云计算。Cloudshield使用具有不同云工作负载的通用预训练深度学习模型来预测正常行为,并通过检查模型重建误差分布来提供实时的【形】连续检测。一旦检测到异常,为了减少警报疲劳,CloudShield会通过检查预测误差分布来自动区分良性程序、已知攻击和零日攻击。我们在代表性的云基准上评估了建议的CloudShield。我们的评估表明,使用模型预训练的CloudShield可以适用于广泛的云工作负载。特别是,我们观察到CloudShield可以检测最近提出的投机执行攻击,例如,幽灵和熔毁攻击,以毫秒计。此外,我们还表明,CloudShield可以准确地区分已知攻击和潜在的零日攻击与良性程序并确定其优先级。因此,它可以显著减少高达99.0%的误报。
2021-08-25 cs.CR cs.LG
PMU-Data: Data Traces Could be Distinguished
该研究提出 PMU-Data 侧信道攻击,利用 PMU 事件区分指令操作数产生的数据痕迹,并通过多处理器实验验证其可泄露内核数据、构建隐蔽信道及突破 TEE。
2025-02-15 cs.CR
Foundations of Hardware-Software Leakage Contracts
Saarland University(萨尔兰大学)
本文介绍硬件-软件泄露契约的基础,该契约在ISA层面刻画侧信道泄露,可让程序员生成抗侧信道攻击代码,也为硬件设计者提供规范,同时讨论相关近期成果与未解决挑战。
2026-10-16 cs.AR cs.CR