论文标题

垃圾邮件:应用记忆的无状态置换

SPAM: Stateless Permutation of Application Memory

论文作者

Ziad, Mohamed Tarek Ibn, Arroyo, Miguel A., Sethumadhavan, Simha

论文摘要

在本文中,我们提出了无状态的应用记忆(垃圾邮件)的无状态置换,这是一种软件防御,可为C程序提供细粒度的数据排列。关键好处包括对直接利用软件错误(即空间和时间内存安全性违规)的攻击的弹性,除了利用硬件漏洞(例如Coldboot,Rowhammer或硬件侧通道)的攻击,使用单个粘性技术披露或损坏内存。与先前的工作不同,垃圾邮件是无状态的,设计使其自动适用于多线程应用程序。 我们将垃圾邮件作为LLVM编译器通行证实现,并具有编译器RT运行时的扩展名。我们在Spec2017基准套件的C子集和三个现实世界应用程序中对其进行了评估:Nginx Web服务器,Duktape JavaScript解释器和Wolfssl加密库库。我们通过运行多线程基准套件来进一步显示垃圾邮件的可扩展性。垃圾邮件具有更大的安全性覆盖范围和可比性的性能开销与最先进的软件技术,以实现当代X86_64处理器的内存安全性。我们的安全评估通过使攻击者的成功机会低至1/16!。

In this paper, we propose the Stateless Permutation of Application Memory (SPAM), a software defense that enables fine-grained data permutation for C programs. The key benefits include resilience against attacks that directly exploit software errors (i.e., spatial and temporal memory safety violations) in addition to attacks that exploit hardware vulnerabilities such as ColdBoot, RowHammer or hardware side-channels to disclose or corrupt memory using a single cohesive technique. Unlike prior work, SPAM is stateless by design making it automatically applicable to multi-threaded applications. We implement SPAM as an LLVM compiler pass with an extension to the compiler-rt runtime. We evaluate it on the C subset of the SPEC2017 benchmark suite and three real-world applications: the Nginx web server, the Duktape Javascript interpreter, and the WolfSSL cryptographic library. We further show SPAM's scalability by running a multi-threaded benchmark suite. SPAM has greater security coverage and comparable performance overheads to state-of-the-art software techniques for memory safety on contemporary x86_64 processors. Our security evaluation confirms SPAM's effectiveness in preventing intra/inter spatial/temporal memory violations by making the attacker success chances as low as 1/16!.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源