[论文解读] Automatic Techniques to Systematically Discover New Heap Exploitation Primitives
ArcHeap 是一种类似模糊测试工具的自动化工具,通过建模现代堆分配器中的常见设计模式(如分箱、就地元数据和基数数据),系统性地发现新型堆利用原原子。它在 ptmalloc 中发现了五个此前未知的原原子,并在其他分配器中发现了多个,生成了可工作的概念验证利用代码作为证据。
Heap exploitation techniques to abuse the metadata of allocators have been widely studied since they are application independent and can be used in restricted environments that corrupt only metadata. Although prior work has found several interesting exploitation techniques, they are ad-hoc and manual, which cannot effectively handle changes or a variety of allocators. In this paper, we present a new naming scheme for heap exploitation techniques that systematically organizes them to discover the unexplored space in finding the techniques and ArcHeap, the tool that finds heap exploitation techniques automatically and systematically regardless of their underlying implementations. For that, ArcHeap generates a set of heap actions (e.g. allocation or deallocation) by leveraging fuzzing, which exploits common designs of modern heap allocators. Then, ArcHeap checks whether the actions result in impact of exploitations such as arbitrary write or overlapped chunks that efficiently determine if the actions can be converted into the exploitation technique. Finally, from these actions, ArcHeap generates Proof-of-Concept code automatically for an exploitation technique. We evaluated ArcHeap with real-world allocators --- ptmalloc, jemalloc, and tcmalloc --- and custom allocators from the DARPA Cyber Grand Challenge. ArcHeap successfully found 14 out of 16 known exploitation techniques and found five new exploitation techniques in ptmalloc. Moreover, ArcHeap found several exploitation techniques for jemalloc, tcmalloc, and even for the custom allocators. Further, ArcHeap can automatically show changes in exploitation techniques along with version change in ptmalloc using differential testing.
研究动机与目标
- 为解决堆利用原原子发现过程中存在的随意性、手动性和分配器特异性问题,这些问题阻碍了知识在时间和系统间的共享。
- 实现与底层分配器实现无关的、系统化、自动化的新型堆利用原原子发现。
- 通过抽象现代堆分配器中的常见设计惯用模式,有效缩小利用原原子发现的搜索空间。
- 为每个发现的原原子生成最小化、可工作的概念验证(PoC)利用代码,作为正式证明。
- 通过提供安全检查和回归测试的测试用例,同时支持漏洞研究和缓解措施开发。
提出的方法
- ArcHeap 使用三种核心抽象(分箱、就地元数据、基数数据)对现代堆分配器进行建模,以缩小搜索空间。
- 通过生成和变异堆操作序列(如 malloc、free、chunk 操作)及攻击能力,进行类似模糊测试的探索。
- 引入一种新颖的“影响”评估机制,判断测试用例是否可能导致任意写入或重叠 chunk 等可利用结果。
- 使用 delta-debugging 技术对发现的测试用例进行最小化和简化,生成最小化、等效的 PoC,以确保证明和可复现性。
- 在真实世界分配器(ptmalloc、tcmalloc、jemalloc)以及 DARPA Cyber Grand Challenge 中的自定义分配器上对框架进行了评估。
- 该方法设计具有可扩展性,可通过定义新模型,适配非传统分配器。
实验结果
研究问题
- RQ1能否在无需手动逆向工程的情况下,通过自动化系统在多种堆分配器实现中系统性地发现新型堆利用原原子?
- RQ2如何在保持对新型可利用行为覆盖的前提下,有效缩小堆利用原原子发现的搜索空间?
- RQ3对常见分配器设计模式(分箱、就地元数据、基数数据)的抽象模型,在多大程度上能促成发现此前未知的原原子?
- RQ4该框架能否生成最小化、可工作的概念验证利用代码,以验证所发现的原原子?
- RQ5该方法在识别具有高级安全特性(如 tcache)的分配器中的可利用原原子方面,效果如何?
主要发现
- ArcHeap 在 ptmalloc 中发现了五个此前未知的堆利用原原子,证明了在广泛使用的分配器中实现自动化发现的可行性。
- 它在 jemalloc 和 tcmalloc 中识别出多种可利用技术,包括此前未知的攻击向量。
- 该工具为每个发现的原原子成功生成了可工作的概念验证(PoC)利用代码,证实了其实际可用性。
- ArcHeap 发现某些利用技术在 ptmalloc 的不同版本中依然有效,凸显了其在安全加固背景下仍具持久性。
- 该框架揭示了 ptmalloc 中的 tcache 可绕过传统安全检查,使许多传统利用技术失效,暴露出新的攻击面。
- 该方法支持对安全特性演进及其对可利用性影响的系统性分析,有助于缓解措施开发和回归测试。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。