SPOILER: Speculative Load Hazards Boost Rowhammer and Cache Attacks
现代微架构采用了诸如推测加载和存储转发等优化技术来改善内存瓶颈。处理器在存储之前推测性地执行加载,并且如果存在潜在的依赖性,则将先前存储的数据转发到加载。这提高了性能,因为加载不必等待前面的存储完成。然而,依赖性预测依赖于部分地址信息,这可能导致错误的依赖性和失速危险。在这项工作中,我们是第一个表明,依赖关系解析逻辑,服务于推测性负载可以被利用来获得有关物理页面映射的信息。Rowhammer等微架构侧信道攻击和Prime+Probe等缓存攻击依赖于虚拟地址到物理地址映射的逆向工程。我们提出了利用这种泄漏,以加快这个逆向工程的256倍的破坏攻击。然后,我们展示了这如何通过4096倍的驱逐集搜索速度来改善Prime+Probe攻击,即使是在JavaScript等沙箱环境中。最后,我们通过展示SPOILER如何帮助以高达100%的机会确定性地进行DRAM行冲突,并通过展示具有正常用户权限的双面Rowhammer攻击来改进Rowhammer攻击。后者是由于使用SPOILER泄漏检测连续内存页的可能性。
2019-06-01 cs.CR
SpecBox: A Label-Based Transparent Speculation Scheme Against Transient Execution Attacks
推测执行技术已经成为现代处理器提高指令级并行的基石。然而,最近的研究表明,这种技术可以被攻击者利用,通过瞬态执行攻击(如Spectre)泄漏秘密数据。针对这一问题提出了多种防御措施,但都面临着各种挑战:(1)跟踪指令流水线中的数据流可以全面解决这一问题,但可能会导致流水线停顿并带来较高的性能开销;(2)使攻击者无法感知推测执行的副作用,但通常需要额外的存储组件和复杂的数据移动操作。在本文中,我们提出了一个基于标签的透明投机计划称为SpecBox。它动态地划分缓存系统以隔离推测数据和非推测数据,这可以防止瞬态执行被后续执行观察到。此外,它使用线程所有权信号量来防止跨核访问推测性数据。此外,SpecBox还增强了缓存系统中抵御瞬时执行攻击的辅助组件,如硬件预取器。安全性分析表明SpecBox是安全的,性能评估表明SpecBox在SPEC CPU 2006和PARSEC-3.0基准测试中的性能开销很小。
2021-07-18 cs.AR cs.CR
An Attack on The Speculative Vectorization: Leakage from Higher Dimensional Speculation
本文认为,并表明,投机向量化,其中一个循环与罕见或未知的内存依赖关系仍然是向量化,是从根本上脆弱的,不能减轻现有的防御。我们实现了一个简单的概念证明,并显示在苹果M2 SoC的泄漏。我们使用微架构泄漏描述符MLD描述泄漏的来源,我们还描述了原则,以扩展MLD的其他优化。此外,作为实现的一部分,我们对M2缓存大小进行逆向工程,并使用线程计时器来区分缓存命中和未命中。
2023-02-02 cs.CR
DECLASSIFLOW: A Static Analysis for Modeling Non-Speculative Knowledge to Relax Speculative Execution Security Measures (Full Version)
针对现有推测执行防御措施性能开销过高的问题,提出DECLASSIFLOW静态分析框架,通过建模非推测执行下的攻击者知识,移除已确定会非推测性泄露的数据的防护,在保证安全的同时降低了常数时代码的防护开销。
2023-12-14 cs.CR
SafeBet: Secure, Simple, and Fast Speculative Execution
针对Spectre攻击下现有推测执行安全方案性能损失大、硬件复杂的问题,提出基于访问提交历史判断安全性的SafeBet方案,采用SMACT表管控访问,以极小硬件开销实现接近无防护基线的性能。
2023-06-13 cs.AR cs.CR
GhostKnight: Breaching Data Integrity via Speculative Execution
现有的投机执行攻击仅限于突破权限边界的数据的机密性,所谓的幽灵型攻击。它们都利用推测执行对微体系结构缓冲区的更改来泄漏数据。我们表明,投机执行可以被滥用,以打破数据完整性。我们观察到,推测执行不仅在微体系结构缓冲区中留下痕迹,而且还在DRAM中引起副作用,即推测执行可以触发对DRAM中非法地址的访问。如果对DRAM的访问足够频繁,则架构改变(即,DRAM中的永久位翻转)将发生,我们称之为GhostKnight。借助GhostKnight的强大功能,攻击者基本上能够跨越不同的权限边界,并将可利用的位写入其他权限域。在我们未来的工作中,我们将开发一个基于GhostKnight的漏洞,以跨越可信执行环境,击败1024位RSA求幂实现,并获得可控签名。
2022-01-18 cs.CR
New Models for Understanding and Reasoning about Speculative Execution Attacks
Spectre和Meltdown攻击及其变种利用硬件性能优化功能导致安全漏洞。秘密信息通过隐蔽或侧面渠道获得和泄露。新的攻击变种不断出现,我们没有系统的方法来捕捉这些攻击的关键特征,并评估它们成功或失败的原因。在本文中,我们提供了一个新的攻击图模型推理的投机执行攻击。我们的攻击模型为有序依赖图,并证明了两个节点之间的竞争条件可以发生,如果有一个失踪的依赖边缘之间。我们定义了一个新的概念,“安全依赖”之间的资源访问和其先前的授权操作。我们发现,一个失踪的安全依赖相当于授权和访问之间的竞争条件,这是投机执行攻击的根本原因。我们展示了我们的攻击图如何对Spectre和Meltdown攻击进行建模的详细示例,并且可以推广到迄今为止发布的所有攻击变体。该攻击模型对于识别新的攻击和概括防御策略也非常有用。我们确定了几种防御策略与不同的性能安全权衡。我们表明,到目前为止提出的防御都适合我们的防御策略之一。我们还解释了如何攻击图可以构建,并指出这是有前途的工具设计师未来的工作。
2020-12-22 cs.AR 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
Pre-cache: A Microarchitectural Solution to prevent Meltdown and Spectre
本文提出了一种基于微架构的解决方案,用于防止Meltdown和Spectre攻击,通过防止被冲刷的指令暴露数据到缓存,同时保持高性能。
2025-11-21 cs.AR cs.CR
Lost and Found in Speculation: Hybrid Speculative Vulnerability Detection
针对处理器推测执行易受微架构攻击的问题,提出结合硬件模糊测试与信息流追踪的流片前验证方法Specure,无需黄金模型即可检测漏洞,还提出泄露路径覆盖指标,在RISC-V BOOM处理器上发现新漏洞,搜索和已知漏洞检测速度均大幅提升。
2024-10-29 cs.AR cs.CR
Towards Reinforcement Learning for Exploration of Speculative Execution Vulnerabilities
UT Austin(德克萨斯大学奥斯汀分校);Virginia Tech(弗吉尼亚理工大学);Cornell(康奈尔大学)
本文提出了SpecRL框架,利用强化学习自动寻找后硅(黑盒)微处理器中的推测执行漏洞,以减少传统方法所需的大量人工劳动和对硬件的深度依赖。
2025-04-03 cs.AI cs.CR
SPECTECTOR: Principled Detection of Speculative Information Flows
自从幽灵出现以来,已经提出并部署了一些对策。然而,严格推理它们的有效性需要一个定义良好的安全概念来抵御投机性执行攻击,这一点到目前为止一直缺失。在本文中,(1)我们提出了投机不干扰,第一语义概念的安全性,防止投机执行攻击,(2)我们开发SPECTECTOR,一个算法的基础上,符号执行自动证明投机不干扰,或检测违规。我们在一个工具中实现了SPECTECTOR,我们用它来检测主要编译器放置SPECTRE对策的方式中的细微泄漏和优化机会。一个可扩展性分析表明,检查投机性的非干扰并没有表现出根本的瓶颈超出那些继承的符号执行。
2019-07-24 cs.CR
Spectre Attacks: Exploiting Speculative Execution
现代处理器使用分支预测和推测执行来最大化性能。例如,如果分支的目的地取决于正在读取的内存值,CPU将尝试猜测目的地并尝试提前执行。当内存值最终到达时,CPU要么放弃,要么提交推测计算。推测逻辑在执行时是不忠实的,可以访问受害者的内存和寄存器,并且可以执行具有可测量副作用的操作。Spectre攻击涉及诱导受害者推测性地执行在正确的程序执行期间不会发生的操作,并且通过侧通道将受害者的机密信息泄露给对手。本文介绍了实际的攻击,结合方法从侧信道攻击,故障攻击,并返回导向的编程,可以读取任意内存从受害者的进程。更广泛地说,该文件表明,投机性执行的实现违反了安全假设的基础上的许多软件安全机制,包括操作系统的进程分离,静态分析,容器化,即时(JIT)编译,并采取对策,高速缓存定时/侧信道攻击。这些攻击对实际系统构成了严重威胁,因为在数十亿设备中使用的英特尔、AMD和ARM的微处理器中发现了易受攻击的推测执行功能。虽然在某些情况下可以采取临时的特定于处理器的对策,但合理的解决方案将需要修复处理器设计以及更新指令集架构(ISA),以便让硬件架构师和软件开发人员对CPU实现允许(和不允许)泄漏的计算状态达成共识。
2018-01-03 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
Speculose: Analyzing the Security Implications of Speculative Execution in CPUs
每当现代CPU遇到一个条件分支的条件还不能评估,他们预测可能的分支目标和推测性地执行代码。这种流水线是优化运行时性能的关键,并且已经在CPU中使用了超过15年。在本文中,据我们所知,我们是第一个研究的内部工作原理和安全的影响,这种投机执行。我们重新考虑假设,推测执行的代码不会留下任何痕迹的情况下,它没有提交。我们揭示了几个可测量的副作用,允许对手枚举映射内存页和读取任意内存-所有使用的只是推测的代码,从来没有完全执行。为了证明这种攻击的实用性,我们展示了用户空间攻击者如何探测内核页面,以便在不到三秒的时间内可靠地破坏Linux中的内核级ASLR,并在不到一秒的时间内将Windows 10 KASLR熵减少18位。
2018-01-12 cs.CR
An abstract semantics of speculative execution for reasoning about security vulnerabilities
由于诸如乱序执行等现代微体系结构特征的复杂性,关于软件的正确性和安全性的推理变得越来越困难。一类名为Spectre的安全漏洞利用了投机性的副作用,乱序执行于2018年公布,此后引起了广泛关注。在本文中,我们正式的投机执行及其副作用的意图,让投机的推理抽象在程序级别,限制暴露于特定的处理器或低级别的语义。为此,我们编码和暴露的投机执行明确的程序设计语言,而不是仅仅在操作语义,因此,投机执行的影响被捕获的重新定义的含义的条件语句,并引入新的语言结构,模型瞬态执行的替代分支。我们在系统的全局状态中添加了一个抽象缓存,并推导出一些通用的细化规则,这些规则暴露了由于推测性负载而产生的缓存副作用。这个扩展的基础是一个基于指令级并行的语义模型。这些规则被编码在一个模拟工具中,我们用它来分析Spectre攻击的抽象规范和易受攻击的代码片段。
2020-03-10 cs.CR cs.LO cs.PL
HermiCache: Enclave-Aware Cache Replacement for Trusted Execution Environments
ENSTA(法国国立高等先进技术学校);Université Bretagne-Sud(南布列塔尼大学)
针对TEE缓存侧信道攻击,提出围栏感知缓存替换策略HermiCache,在RISC-V CVA6内核实现,面积开销仅6%,提供细粒度确定性保护。
2026-09-11 cs.AR cs.CR
ret2spec: Speculative Execution Using Return Stack Buffers
推测性执行是一种优化技术,十多年来一直是CPU的一部分。它预测分支指令的结果和目标,以避免停止执行管道。然而,直到最近,推测性代码执行的安全含义还没有被研究。在本文中,我们研究了一种特殊类型的分支预测器,负责预测返回地址。据我们所知,我们是第一个研究返回地址预测器及其对现代软件安全性的影响的人。在我们的工作中,我们将展示如何返回堆栈缓冲区(RSBs),返回地址预测器的核心单元,可以用来触发误推测。基于这些知识,我们提出了两种新的攻击变种,使用RSBs,使攻击者具有与文件中的Spectre攻击类似的能力。我们展示了本地攻击者如何在进程间获得任意推测性代码执行,例如,泄露其他用户在共享系统上输入的密码。我们的评估表明,最近在操作系统中部署的Spectre对策也可以覆盖这种基于RSB的跨进程攻击。然而,我们证明,攻击者可以触发错误推测在JIT环境中,以泄漏任意内存内容的浏览器进程。使用JIT编译的代码在沙箱内存区域之外读取仍然可以达到平均80%的准确率。
2018-08-20 cs.CR
Leaking Secrets through Modern Branch Predictor in the Speculative World
利用推测的瞬时执行攻击已经在计算机系统中引起了重大关注。通常,利用分支预测器来触发瞬态执行攻击中的误推测。在这项工作中,我们展示了一类新的投机为基础的攻击目标的分支预测单元(BPU)。我们发现,条件分支的投机性解析(即,在嵌套推测中)改变现代处理器中的模式历史表(PHT)的状态,这些状态在随后压缩相应的分支之后不会恢复。这种特性使得攻击者可以利用BPU作为瞬时执行攻击的秘密传输介质。为了评估发现的漏洞,我们构建了一个新的攻击框架BranchSpectre,通过观察推测性的PHT更新(以隐蔽和侧通道的形式)来实现意外秘密的泄露。我们进一步研究了基于历史的预测器中的PHT碰撞机制以及Intel处理器中的分支预测模式转换。基于这样的知识,我们实现了超高速隐蔽通道(BranchSpectre-cc)以及两个侧通道(即,BranchSpectre-v1和BranchSpectre-v2),其仅依赖于BPU用于推测域中的误推测触发和秘密推断。值得注意的是,BranchSpectre侧通道可以利用比Spectre攻击中使用的更简单的代码模式。我们提出了一个广泛的BranchSpectre代码小工具分析一组流行的现实世界的应用程序代码库,然后在OpenSSL上演示现实世界的侧信道攻击。评估结果表明,大量的更广泛的存在和更高的利用BranchSpectre代码模式在现实世界的软件。最后,我们讨论了几…
2021-10-29 cs.AR cs.CR
Detecting speculative leaks with compositional semantics
CISPA Helmholtz Center for Information Security(CISPA赫尔姆霍兹信息安全中心);University of Trento(特伦托大学);IMDEA Software Institute(IMDEA软件研究所);Azure Research, Microsoft(微软Azure研究);Saarland University(萨尔兰大学);Amazon(亚马逊)
本文提出基于组合语义的框架,用于检测推测执行引入的信息流并分析软件防御。通过引入推测非干扰(SNI)理论,结合SMT求解器开发Spectector工具,有效检测漏洞并验证程序安全性。
2026-03-31 cs.CR
Selectively Delaying Instructions to Prevent Microarchitectural Replay Attacks
MicroScope和一般的微体系结构重放攻击利用推测执行的特性,将受害者应用程序的执行困在无限循环中,使攻击者能够通过无限期地执行来放大侧信道攻击。由于重放的性质,它可以用于有效地攻击安全关键的可信执行环境(安全飞地),即使在侧信道攻击将不可能的条件下。与此同时,与投机性侧信道攻击不同,MicroScope可用于放大正确的执行路径,使许多现有的投机性侧信道防御无效。在这项工作中,我们概括了MicroScope之外的微架构重放攻击,并提出了一种有效的防御方法。我们观察到,这种攻击依赖于所谓的“重放句柄”的重复挤压,导致侧通道的指令必须驻留在相同的重排序缓冲区窗口的句柄。我们提出了延迟挤压,跟踪压扁指令,并防止他们被推测重放句柄重放技术。我们的评估表明,有可能实现完全的安全性,对微架构重放攻击非常温和的硬件要求,同时仍然保持97%的不安全的基线性能。
2021-03-19 cs.AR 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
HybCache: Hybrid Side-Channel-Resilient Caches for Trusted Execution Environments
现代多核处理器共享高速缓存资源,以最大限度地提高高速缓存利用率和性能。然而,这使得缓存容易受到侧信道攻击的攻击,其中共享缓存行为中的定时差异被利用来推断受害者的执行模式的信息,最终泄漏私有信息。这些攻击的根本原因是共享缓存条目并以确定性方式访问它们的进程相互不信任。已经提出了针对高速缓存侧信道攻击的各种防御。然而,它们要么显著降低性能,要么施加不切实际的限制,要么只能击败某些类型的攻击。更重要的是,它们假设整个执行工作负载都需要侧通道弹性缓存,并且不允许仅针对工作负载的安全关键部分选择性地启用缓解。我们提出了一个通用的机制,一个灵活的和软分区的集关联缓存,并提出了一个混合缓存架构,称为HybCache。HybCache可以配置为仅针对隔离执行域选择性地应用侧通道弹性缓存行为,同时为非隔离执行提供常规缓存行为、容量和性能。隔离域可以包括一个或多个进程、代码的特定部分或受信任的执行环境。我们表明,以最小的硬件修改和内核支持,HybCache可以提供侧通道弹性缓存仅用于隔离执行的性能开销为3.5- 5%,而不会产生性能开销的剩余执行工作负载。我们提供了一个基于模拟器和硬件实现的HybCache的性能和面积开销进行评估,并显示它如何减轻典型的基于访问和基于竞争的缓存攻击。
2019-09-20 cs.CR
Speculative Buffer Overflows: Attacks and Defenses
利用推测执行的实际攻击可以通过微架构侧通道泄漏机密信息。最近演示的Spectre攻击利用推测性加载来规避访问检查以读取内存驻留的秘密,使用缓存定时或其他隐蔽通信通道将其传输给攻击者。我们介绍了Spectre1.1,这是一个新的Spectre-v1变体,它利用推测性存储来创建推测性缓冲区溢出。与经典的缓冲区溢出非常相似,推测性越界存储可以修改数据和代码指针。数据值攻击可以直接或通过重定向控制流绕过某些Spectre-v1缓解措施。控制流攻击允许任意推测性代码执行,这可以绕过栅栏指令和所有其他软件缓解以前的推测性执行攻击。构建可用于构建替代攻击有效载荷的面向返回的编程(ROP)小工具很容易。我们还介绍了Spectre1.2:在不强制执行读/写保护的CPU上,推测性存储可以覆盖只读数据和代码指针,以突破沙箱。我们强调了这些漏洞带来的新风险,讨论了可能的软件缓解措施,并概述了可以作为硬件防御的微架构机制。我们尚未评估我们提出的软件和硬件缓解措施的性能影响。我们仅详细描述了突出的漏洞特征和其他假设攻击场景,以指导硬件和软件供应商进行威胁分析和缓解。我们建议用户参考更用户友好的供应商建议,以缓解投机性缓冲区溢出或可用的补丁。
2018-07-10 cs.CR
Automatic Detection of Speculative Execution Combinations
现代处理器采用不同的预测机制来推测不同种类的指令。攻击者可以同时利用这些预测机制,以触发有关投机性访问数据的泄漏。因此,对这种投机性泄漏的合理推理需要考虑到所有潜在的投机机制。不幸的是,现有的正式模型只支持推理固定的,硬编码的推测机制,没有简单的支持,以扩展所述推理到新的机制。在本文中,我们开发了一个框架,推理组成的投机语义,捕捉投机由于不同的机制,并实现它的一部分,斯佩克特验证工具。我们实现了新的语义推测存储和返回指令,并结合它们的语义推测分支。我们的框架产生推测语义,用于推测通过构造而安全的那些指令的任何组合,即,我们免费获得这些安全保障。在Spectector中实现我们的新语义,让我们验证现有的代码库容易受到Spectre v1,Spectre v4和Spectre v5漏洞的影响,以及只容易受到其组合的新片段。
2022-09-02 cs.CR cs.PL
Speculative Dereferencing of Registers:Reviving Foreshadow
自2016年以来,多个微架构攻击利用了预取的影响。这些工作观察到某些用户空间操作可以将内核地址获取到缓存中。将用户无法访问的数据提取到缓存中可以使KASLR中断并协助各种Meltdown类型的攻击,特别是Foreshadow。在本文中,我们提供了一个系统的分析,这种预取效果的根本原因。虽然我们证实了以前的论文的实证结果,我们表明,归因于预取机制是从根本上不正确的,在所有以前的论文描述或利用这种效果。特别是,无论是预取指令还是其他用户空间指令,实际上都没有将内核地址预取到缓存中,从而导致错误的结论和无效的防御措施。事实上,所有这些论文中所利用的效果都是由内核中用户空间寄存器的推测性解引用引起的。因此,像KAISER这样的缓解技术并不能像以前认为的那样消除这种泄漏。除了我们对这些以前的作品进行全面分析之外,我们还展示了通过理解根本原因而实现的新攻击,即在更受限制的上下文中的地址转换攻击,在某些情况下寄存器值的直接泄漏,以及针对非L1数据的第一个端到端的Foreshadow(L1TF)利用。即使启用了推荐的Foreshadow缓解措施,后者也是有效的,因此会恢复Foreshadow攻击。我们证明,即使在采用最新硬件缓解措施的最新英特尔CPU上,以及在以前认为不受影响的CPU上,也存在这些解引用效应,即,ARM、IBM和AMD CPU。
2020-08-05 cs.CR
Quantifying the Information Leak in Cache Attacks through Symbolic Execution
缓存定时攻击允许攻击者通过观察缓存命中和未命中来推断秘密执行的属性。但是,通过这种攻击,实际上能泄露多少信息呢?对于一个给定的程序,一个缓存模型,和一个输入,我们的CHALICE框架利用符号执行来计算可能通过缓存攻击泄漏的信息量。CHALICE的核心是一种量化信息泄漏的新颖方法,可以突出显示任意二进制代码上的关键缓存侧通道泄漏。在我们对来自OpenSSL和Linux GDK库的真实程序的评估中,CHALICE有效地量化了信息泄漏:例如,对于Linux上的AES-128实现,CHALICE发现缓存攻击可以泄漏128位加密密钥中的127位。
2016-11-14 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
SMoTherSpectre: exploiting speculative execution through port contention
Spectre、Meltdown和相关攻击已经证明,内核、虚拟机管理程序、可信执行环境和浏览器很容易通过微架构弱点泄露信息。然而,目前尚不清楚其他应用程序,特别是那些不加载攻击者提供的代码的应用程序可能会受到多大程度的影响。目前还不清楚这些攻击在多大程度上依赖于基于缓存的侧通道。我们介绍SMoTherSpectre,一个投机性的代码重用攻击,利用端口争用同时多线程处理器(SMoTher)作为一个侧通道,从受害者进程泄漏信息。SMoTher是一个细粒度的侧通道,它基于单个牺牲指令检测争用。为了发现现实世界的小工具,我们描述了一种方法,并建立一个工具,定位SmoTher-gadgets在流行的图书馆。在对glibc的评估中,我们发现了数百个可以用来泄露信息的小工具。最后,我们展示了对OpenSSH服务器的概念验证攻击,创建用于确定四个主机密钥位的预言机,以及对使用OpenSSL库执行加密的应用程序的攻击,创建一个可以通过libcrypto和glibc中的小工具区分一点明文的预言机。
2019-09-26 cs.CR
TikTag: Breaking ARM's Memory Tagging Extension with Speculative Execution
本文提出 TikTag 推测执行攻击,可从任意地址泄露 ARM MTE 标记并绕过 Chrome 与 Linux 内核的相关防御,4秒内成功率超95%,并给出缓解机制。
2024-06-13 cs.CR
CacheSquash: Making caches speculation-aware
本文提出CacheSquash机制,通过在推测指令被撤销时立即向缓存层次发送取消信号,阻止错误推测的内存访问改变缓存状态,从而以接近零的性能开销有效防御Spectre攻击。
2025-05-08 cs.AR cs.CR
"It's a Trap!"-How Speculation Invariance Can Be Abused with Forward Speculative Interference
推测性侧信道攻击访问敏感数据,并在错误路径执行期间使用发送器泄漏数据。已经提出了各种防御措施来防止这种信息泄露。然而,并非所有推测执行的指令都是不安全的:最近的工作表明,推测不变指令是独立的推测控制流路径,并保证最终提交,无论推测结果如何。然后,与运行时机制相结合的实时信息可以选择性地解除对推测不变指令的防御,从而收回一些损失的性能。不幸的是,投机不变的指令可以很容易地被操纵的投机干扰的形式泄漏信息,通过一个新的边通道,我们在本文中介绍。我们表明,前向投机干扰,其中较老的投机指令干扰年轻的投机不变的指令有效地把它们变成发射机的秘密数据在投机期间访问。我们展示了实际硬件上的前向投机干扰,通过选择性地填充指令的重排序缓冲区(ROB),推投机不变的指令在或出的ROB的需求,根据推测访问的秘密。这揭示了推测访问的秘密,因为ROB本身的占用成为新的推测侧信道。
2022-12-02 cs.AR 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
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
Shield Bash: Abusing Defensive Coherence State Retrieval to Break Timing Obfuscation
本文研究了远程缓存行时间混淆(TORC)与延迟推测性更改(DSRC)两种防御措施的相互作用,发现DSRC导致一致性信息可被检索至核心引发安全漏洞,提出两种缓解方法并通过仿真验证,其中阻止远程E状态创建的方案平均开销低于2.8%。
2025-04-14 cs.AR cs.CR
SgxPectre Attacks: Stealing Intel Secrets from SGX Enclaves via Speculative Execution
本文介绍了SgxPectre攻击,利用最近披露的CPU漏洞来破坏SGX安全区的机密性和完整性。特别地,我们表明,当飞地代码的分支预测可以受到飞地外部的程序的影响时,飞地程序的控制流可以被临时改变以执行导致可观察到的高速缓存状态变化的指令。观察到这种变化的攻击者可以了解安全区内存或其内部寄存器中的秘密,从而完全击败SGX提供的机密性保证。为了证明我们的SgxPectre攻击的实用性,我们系统地探讨了分支目标注入的可能攻击向量,在飞地的投机执行过程中赢得竞争条件的方法,以及自动搜索发动攻击所需的代码模式的技术。我们的研究表明,任何飞地程序都可能容易受到SgxPectre攻击,因为所需的代码模式在大多数SGX运行时(例如,英特尔SGX SDK、Rust-SGX和Graphene-SGX)。最重要的是,我们已经应用了SgxPectre攻击来从英特尔签名的引用飞地中窃取密封密钥和证明密钥。密封密钥可用于解密安全区外部的密封存储并伪造有效的密封数据;证明密钥可用于伪造证明签名。由于这些原因,SgxPectre攻击实际上击败了SGX的安全保护。本文还系统地评估了英特尔现有的对抗SgxPectre攻击的措施,并讨论了安全影响。
2018-06-03 cs.CR
Symbolic Verification of Cache Side-channel Freedom
缓存计时攻击允许第三方观察者从程序执行中检索敏感信息。但是,是否有可能自动检查程序是否存在缓存计时攻击的漏洞,然后自动屏蔽程序执行以防止这些攻击?对于一个给定的程序,一个缓存配置和攻击模型,我们的CACHEFIX框架要么验证缓存侧通道自由的程序或合成一系列的补丁,以确保缓存侧通道自由在程序执行过程中。在我们的框架的核心是一个新的符号验证技术的基础上自动抽象细化缓存语义。这样一个框架的力量是允许符号推理反例跟踪,并结合它与运行时监控,以消除高速缓存侧通道在程序执行过程中。我们对OpenSSL、libfixedtimefixedpoint、GDK和FourQlib库的例程进行的评估表明,我们的CACHEFIX方法(DIS)平均在75秒内证明了缓存侧通道自由度。此外,在除一种情况外的所有情况下,CACHEFIX都能在20分钟内合成所有补丁,以确保在执行期间各个例程的缓存侧通道自由度。
2018-07-12 cs.CR cs.SE
SNIP: Speculative Execution and Non-Interference Preservation for Compiler Transformations
本文提出基于新模拟关系的证明方法,在推测语义下保持编译器变换的非干扰,发现并自动修复了寄存器分配中的未知安全缺陷,并在 libsodium 上验证。
2024-11-21 cs.CR cs.PL
Speculative Leakage in ARM Cortex-A53
最近的Spectre攻击表明,现代微架构优化可能会使软件不安全。这些攻击使用流水线、乱序和推测等特征,通过边通道提取有关进程内存内容的信息。在本文中,我们证明了Cortex-A53的推测泄漏的影响,即使微架构不支持乱序执行。我们将这类新的漏洞命名为SiSCloak。
2020-07-17 cs.CR
Janus: Compiler-Based Defense Against Transient Execution Attacks Using ARM Hardware Primitives
Institute of Information Engineering, CAS(中国科学院信息工程研究所)
Janus通过整合推测执行与控制流依赖性,利用ARM的PA和BTI特性,提供对Spectre等临时执行攻击的防御,同时保持低性能开销。
2026-05-11 cs.CR
CacheShield: Protecting Legacy Processes Against Cache Attacks
高速缓存攻击会对执行流或内存访问依赖于敏感信息的任何代码构成威胁。特别是在公共云中,缓存在多个租户之间共享,缓存攻击仍然是一个未解决的问题。缓存攻击依赖于间谍进程的驱逐,这会改变受害进程的执行行为。我们表明,硬件性能的加密例程事件揭示了缓存攻击的存在。基于这一观察,我们提出了CacheShield,一个工具来保护遗留代码,通过监视其执行和检测缓存攻击的存在,从而提供了采取预防措施的机会。CacheShield可以由用户运行,并且不需要更改操作系统或hypervisor,而以前提出的基于软件的对策需要hypervisor的合作。与试图检测恶意进程的方法不同,我们的方法是精益的,因为只有一小部分系统需要监控。它还可以很好地集成到当今的云基础设施中,因为相关用户可以选择使用CacheShield,而无需云服务提供商的支持。我们的研究结果表明,CacheShield检测缓存攻击速度快,可靠性高,误报率低,即使在存在强噪声。
2017-09-06 cs.CR
Chunked-Cache: On-Demand and Scalable Cache Isolation for Security Architectures
多核处理器中的共享高速缓存资源易受高速缓存侧信道攻击的攻击。最近提出的防御有自己的警告:基于随机化的防御除了依赖于弱密码原语之外,还容易受到不断发展的攻击算法的影响,因为它们没有从根本上解决缓存侧信道攻击的根本原因。另一方面,缓存分区防御提供了严格的资源分区,并有效地阻止了所有的侧通道威胁。然而,它们通常依赖于基于路径的划分,其不是细粒度的并且不能扩展以支持更大数量的保护域,例如,在可信执行环境(TEE)安全体系结构中,除了降低性能并且经常导致高速缓存利用不足之外,为了克服这两种方法的缺点,我们提出了一种新的和灵活的集关联缓存分区设计的TEE架构,称为分块缓存。Chunked-Cache使执行上下文能够在执行需要侧通道弹性的情况下“分割”出一个独占的可配置缓存块。如果不需要侧通道弹性,则可以自由利用主流缓存资源。因此,我们的解决方案实际上解决了安全性能的权衡,通过启用选择性和按需利用侧通道弹性缓存,同时提供良好的基础未来的安全保证。我们表明,分块缓存提供侧通道弹性高速缓存利用敏感的代码执行,硬件开销小,同时不会产生任何性能开销的操作系统。我们还表明,它优于传统的基于方式的缓存分区43%,同时扩展显着更好地支持更多的保护域。
2021-10-15 cs.CR
Specognitor: Identifying Spectre Vulnerabilities via Prediction-Aware Symbolic Execution
Spectre攻击利用推测性执行来泄露敏感信息。在过去的几年中,已经提出了一些静态侧通道检测器来检测存在推测执行的高速缓存泄漏。然而,这些技术要么忽略了分支预测机制,检测静态的预定义模式,这是不适合检测新的模式,或导致假阴性。在本文中,我们说明了预测不可知的最先进的方法的弱点。我们提出了Specognitor,一种新的预测感知符号执行引擎,健全地探索程序路径和检测微妙的幽灵变体1和变体2漏洞。我们提出了一个动态模式检测机制,以考虑现有的和未来的漏洞。我们的实验结果表明Specognitor在分析真实世界的密码程序w.r.t.不同的处理器家族。
2022-11-24 cs.AR cs.CR cs.SC
Detecting speculative data flow vulnerabilities using weakest precondition reasoning
本文提出了一种基于最弱前置条件推理的方法,用于检测推测执行中的数据流漏洞Spectre-STL和Spectre-PSF,并在litmus tests上验证了其有效性。
2025-04-27 cs.CR cs.LO
SpecFuzz: Bringing Spectre-type vulnerabilities to the surface
SpecFuzz是第一个能够动态测试推测执行漏洞的工具(例如,Spectre)。关键是推测暴露的新概念:程序被仪表化以通过强制执行可能由于误预测而触发的代码路径来模拟软件中的推测执行,从而使推测性存储器访问对完整性检查器可见(例如,地址Sanitizer)。与传统的模糊技术相结合,推测暴露能够比最先进的静态分析器更精确地识别潜在的漏洞。我们用于检测Spectre V1漏洞的原型成功识别了Spectre V1的所有已知变体,并降低了评估应用程序的缓解开销,在足够的测试覆盖率下,将检测分支的数量减少了77%。
2020-03-10 cs.CR
Adversarial Symbolic Execution for Detecting Concurrency-Related Cache Timing Leaks
高速缓冲存储器是介于快速CPU和慢速存储器之间的高速存储器,其时序特性可能会泄露程序的敏感信息,从而允许对手进行侧信道攻击。现有的检测时序泄漏的方法要么完全忽略缓存,要么只关注程序本身产生的被动泄漏,而不考虑并发运行其他线程可能产生的泄漏。在这项工作中,我们表明,定时泄漏自由是不是一个组成的属性:一个程序,不泄漏时,单独运行时可能会成为泄漏时,与其他线程交织。因此,我们开发了一种新的方法,名为对抗符号执行,以检测这种泄漏。它系统地探索可行的程序路径和它们的交织,同时对缓存进行建模,并利用SMT求解器来确定是否存在时序泄漏。我们已经在LLVM中实现了我们的方法,并在一组总共有14,455行C代码的真实世界密码上对其进行了评估。我们的实验证明了我们的方法的效率和它的有效性在检测侧通道泄漏。
2018-07-09 cs.CR cs.DC cs.PL
Certified Speculative Execution for Untrusted AI Agents
School of Engineering, Institute of Science Tokyo, Japan(东京科学大学工学院);College of Control Science and Engineering, Zhejiang University, China(浙江大学控制科学与工程学院);Department of Electrical and Computer Engineering, National University of Singapore, Singapore(新加坡国立大学电气与计算机工程系)
提出证书门控前缀接受(CGPA)方法,通过可信验证器、保形校准值边界和求解器延迟机制,实现安全、遗憾和速度的解耦,将不可信AI代理的违规率降至零。
2026-07-01 cs.CR cs.LG
On the Incomparability of Cache Algorithms in Terms of Timing Leakage
本文提出泄漏竞争性概念,证明缓存算法在时序泄漏上对称且无支配关系,且有限控制缓存间关系仅为线性或常数。
2019-03-04 cs.CR
PyCache Trap: The Inspection-Execution Gap in Agent Skill Scanners
Chongqing University(重庆大学);Northeastern University at Qinhuangdao(东北大学秦皇岛分校);Sun Yat-sen University(中山大学);Tencent(腾讯);Nanyang Technological University(南洋理工大学)
该研究发现智能体技能扫描器存在检查-执行间隙,提出PyCache陷阱攻击方法,还提出执行感知验证(EAV)可检测此类攻击,相关代码已公开。
2026-10-12 cs.CR cs.SE
Automatic and Incremental Repair for Speculative Information Leaks
提出首个基于模型检测的框架CureSpec,通过形式化攻击者模型自动检测并修复程序在侧信道和推测执行下的信息泄露,插入缓解措施确保代码可证明安全,并提供可独立检查的安全证书。
2023-05-17 cs.CR cs.LO