[论文解读] Analyzing the Gadgets Towards a Metric to Measure Gadget Quality
本文提出四种新颖的度量标准,用于评估二进制代码中gadget的质量,解决了针对ROP等代码重用攻击缺乏标准化评估的问题。在启用Intel MPX保护的二进制文件上应用这些度量标准后,发现有用gadget数量增加了17%,表明尽管MPX的设计初衷是提升安全性,但其可能反而增加了利用的可行性。
Current low-level exploits often rely on code-reuse, whereby short sections of code (gadgets) are chained together into a coherent exploit that can be executed without the need to inject any code. Several protection mechanisms attempt to eliminate this attack vector by applying code transformations to reduce the number of available gadgets. Nevertheless, it has emerged that the residual gadgets can still be sufficient to conduct a successful attack. Crucially, the lack of a common metric for "gadget quality" hinders the effective comparison of current mitigations. This work proposes four metrics that assign scores to a set of gadgets, measuring quality, usefulness, and practicality. We apply these metrics to binaries produced when compiling programs for architectures implementing Intel's recent MPX CPU extensions. Our results demonstrate a 17% increase in useful gadgets in MPX binaries, and a decrease in side-effects and preconditions, making them better suited for ROP attacks.
研究动机与目标
- 为解决在二进制代码中评估gadget质量(特别是针对ROP利用)缺乏标准化度量的问题。
- 使研究人员能够比较编译器优化或漏洞缓解技术等二进制转换对安全性的实际影响。
- 评估诸如Intel的MPX等缓解技术是否实际上减少了或增加了攻击面,通过改变gadget质量来实现。
- 提供一个实用且工具支持的框架,用于在多种利用场景下评估gadget的可用性。
- 证明仅基于gadget数量减少的现有度量标准不足以评估真实世界利用的可行性。
提出的方法
- 定义四种度量标准——其中两种基于真实世界利用场景(任意代码执行、信息泄露),另两种为通用度量标准(gadget多样性与可用性),以评估gadget质量。
- 设计度量标准以评估关键利用特性:前提条件、副作用和指令数量,反映实际利用开发中的挑战。
- 在GaLity中实现这些度量标准,GaLity是一款用于在二进制集合上自动分析gadget质量的开源工具。
- 将度量标准应用于一项案例研究,分析使用Intel MPX(内存保护扩展)编译的二进制文件,对比八种代表性x64 Windows二进制文件中的gadget集合。
- 使用静态分析提取gadget,并根据利用相关性进行评分,包括对寄存器保存和控制流完整性进行条件检查。
- 通过对比启用MPX的二进制文件与未启用MPX的对应版本,使用定义的度量标准量化gadget质量的变化。
实验结果
研究问题
- RQ1现有gadget减少度量标准在多大程度上未能捕捉到剩余gadget的真实可利用性?
- RQ2不同的二进制转换(如利用缓解技术带来的转换)如何影响可用gadget的质量与实用性?
- RQ3Intel的MPX本意是防止缓冲区溢出,但是否实际上增加了可利用ROP g的是数量和质量?
- RQ4是否可以设计一种标准化的、多维的度量标准,准确反映gadget集合在真实世界中的利用潜力,而不仅仅是简单地减少数量?
- RQ5特定利用场景(如任意代码执行、信息泄露)如何影响gadget质量的评估?
主要发现
- 启用MPX的二进制文件中,有用gadget的数量比未启用MPX的二进制文件增加了17%,表明攻击面有明显扩大。
- MPX二进制文件中的gadget表现出更少的副作用和更少的前提条件,使其在ROP链中更具实用性,尽管这与该缓解措施的初衷相悖。
- 研究表明,现有度量标准如DAIR(动态平均间接目标减少率)是不充分的,因为它们未考虑gadget的质量或可用性。
- 尽管MPX减少了间接跳转的数量,但剩余的gadget质量更高,且比未经修改的二进制文件更易于被利用。
- 结果表明,某些缓解技术可能无意中通过提升gadget质量而降低安全性,凸显了对质量敏感评估的必要性。
- 所实现的工具GaLity能够实现对多种二进制文件及转换技术下gadget集合的自动化、可复现的评估。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。