arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2310.06397cs.CR
收藏

堆顶:安全堆对象的高效内存错误防护

Top of the Heap: Efficient Memory Error Protection of Safe Heap Objects

Kaiming Huang, Mathias Payer, Zhiyun Qian, Jack Sampson, Gang Tan, Trent Jaeger

AI总结:

针对现有堆内存安全防护开销高的问题,提出Uriah系统,通过静态识别安全堆对象并隔离分配到安全堆实现多维度安全防护,以极低开销抵御各类堆内存错误。

摘要:

堆内存错误仍是软件漏洞的主要来源。现有内存安全防护方案旨在保护所有对象,导致性能开销高且防护不完整。对此,我们提出一种方法,可精准识别防护成本较低的对象,并设计方案为这类对象提供全面防护,抵御所有类型的内存错误。为实现该目标,我们推出Uriah系统:(1)静态识别访问行为满足空间安全与类型安全的堆对象;(2)将这类“安全”堆对象动态分配到隔离的安全堆中,在保留空间与类型安全的同时实现一种时间安全,称为时间分配-类型安全。在SPEC CPU2006/2017基准测试、5个服务器程序及Firefox中,Uriah发现72.0%的堆分配点生成的对象其访问行为始终满足空间与类型安全,这些对象随后通过Uriah分配器隔离在安全堆中,以强制执行时间分配-类型安全。在SPEC CPU 2006和2017基准测试上,Uriah仅产生2.9%和2.6%的运行时开销,以及9.3%和5.4%的内存开销,同时可抵御DARPA CGC二进制文件中所有堆内存错误的利用,以及28个近期CVE漏洞的攻击。此外,借助现有防护方案为非安全堆对象提供内存安全保障可显著降低开销,从而能以更具实用性的成本实现堆对象对所有类型内存错误的防护。

英文摘要:

Heap memory errors remain a major source of software vulnerabilities. Existing memory safety defenses aim at protecting all objects, resulting in high performance cost and incomplete protection. Instead, we propose an approach that accurately identifies objects that are inexpensive to protect, and design a method to protect such objects comprehensively from all classes of memory errors. Towards this goal, we introduce the Uriah system that (1) statically identifies the heap objects whose accesses satisfy spatial and type safety, and (2) dynamically allocates such "safe" heap objects on an isolated safe heap to enforce a form of temporal safety while preserving spatial and type safety, called temporal allocated-type safety. Uriah finds 72.0% of heap allocation sites produce objects whose accesses always satisfy spatial and type safety in the SPEC CPU2006/2017 benchmarks, 5 server programs, and Firefox, which are then isolated on a safe heap using Uriah allocator to enforce temporal allocated-type safety. Uriah incurs only 2.9% and 2.6% runtime overhead, along with 9.3% and 5.4% memory overhead, on the SPEC CPU 2006 and 2017 benchmarks, while preventing exploits on all the heap memory errors in DARPA CGC binaries and 28 recent CVEs. Additionally, using existing defenses to enforce their memory safety guarantees on the unsafe heap objects significantly reduces overhead, enabling the protection of heap objects from all classes of memory errors at more practical costs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑