[论文解读] HardScope: Thwarting DOP with Hardware-assisted Run-time Scope Enforcement
HardScope 通过硬件辅助的运行时作用域强制(RSE)机制,防范 C 和 C++ 等内存不安全语言中的数据导向编程(DOP)攻击。通过使用六个新的 RISC-V 指令,在运行时动态强制执行编译时的变量可见性规则,HardScope 在嵌入式基准测试中仅带来 3.2% 的性能开销,即可有效防御所有已知的 DOP 攻击。
Widespread use of memory unsafe programming languages (e.g., C and C++) leaves many systems vulnerable to memory corruption attacks. A variety of defenses have been proposed to mitigate attacks that exploit memory errors to hijack the control flow of the code at run-time, e.g., (fine-grained) randomization or Control Flow Integrity. However, recent work on data-oriented programming (DOP) demonstrated highly expressive (Turing-complete) attacks, even in the presence of these state-of-the-art defenses. Although multiple real-world DOP attacks have been demonstrated, no efficient defenses are yet available. We propose run-time scope enforcement (RSE), a novel approach designed to efficiently mitigate all currently known DOP attacks by enforcing compile-time memory safety constraints (e.g., variable visibility rules) at run-time. We present HardScope, a proof-of-concept implementation of hardware-assisted RSE for the new RISC-V open instruction set architecture. We discuss our systematic empirical evaluation of HardScope which demonstrates that it can mitigate all currently known DOP attacks, and has a real-world performance overhead of 3.2% in embedded benchmarks.
研究动机与目标
- 应对数据导向编程(DOP)攻击日益增长的威胁,此类攻击通过污染数据来绕过传统控制流防御机制,实现任意计算。
- 克服现有防御机制的局限性,这些机制要么无法完全控制内存访问,要么带来过高的性能和内存开销。
- 在不依赖全程序分析或应用层重构的前提下,实现在运行时的高效、细粒度内存隔离。
- 证明运行时作用域强制(RSE)可通过动态强制执行词法作用域规则,有效防止典型程序中的 DOP 攻击。
提出的方法
- 引入一种基于硬件的 RSE 机制,利用六个新的 RISC-V 指令,在运行时强制执行内存访问策略。
- 通过 GCC 插件对 C 程序进行插桩,插入 HardScope 指令,以动态创建和管理内存访问的作用域规则。
- 将活动的作用域规则存储为栈结构,确保当前执行上下文下所有适用规则均位于栈顶,从而实现高效检查。
- 利用片上缓存机制存储活动规则,使内存操作期间的访问检查成为隐式操作,实现零开销检查。
- 设计系统以支持上下文特定的内存隔离,允许同一函数的不同调用实例采用不同的访问策略。
- 利用硬件支持,减少元数据存储量,并相比纯软件或静态方法显著降低运行时强制的开销。
实验结果
研究问题
- RQ1运行时作用域强制(RSE)是否能通过在运行时强制执行词法作用域规则,有效防御所有已知的 DOP 攻击?
- RQ2在真实世界嵌入式工作负载上应用硬件辅助 RSE 时,其性能开销是多少?
- RQ3与现有防御机制相比,RSE 在开销、可扩展性以及对动态、上下文特定访问策略的支持方面表现如何?
- RQ4RSE 是否能通过极少的硬件改动高效实现,且无需应用层重构?
- RQ5在通用 RISC-V 核心上集成 RSE 是否可行,且能保持可接受的性能和内存占用?
主要发现
- HardScope 通过硬件辅助指令集扩展,在运行时强制执行词法作用域规则,成功防御了所有目前已知的 DOP 攻击。
- 实证评估显示,在嵌入式基准测试中,实际性能开销仅为 3.2%,显著低于以往基于软件的防御方案。
- HardScope 通过仅关注活动执行上下文,减少了运行时元数据存储,实现了作用域规则的高效片上缓存。
- 该系统支持上下文特定的内存隔离,允许同一函数的不同调用实例采用不同的访问策略,且无需重新编译。
- 硬件辅助强制机制实现了隐式访问检查,无任何可测量的开销,而基于软件的方案则需要显式检查。
- 该方法与未经修改的 C 程序兼容,无需全程序分析或应用层重构,与 CHERI 或 SoftBound 不同。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。