[论文解读] Is Less Really More? Why Reducing Code Reuse Gadget Counts via Software Debloating Doesn't Necessarily Lead to Better Security.
本文挑战了通过软件去 bloating 降低代码重用 gadget 数量可提升安全性的普遍假设,表明即使大幅减少 gadget 数量,也可能无法有效阻碍攻击者构建利用代码,甚至可能引入更具危害性的 gadget。本文提出四种质量导向的度量指标——可利用性、gadget 有效性、gadget 多样性和利用可行性,通过静态二进制分析工具 Gadget Set Analyzer 进行测量,以更准确评估去 bloating 带来的实际安全提升。
Nearly all modern software suffers from bloat that negatively impacts its performance and security. To combat this problem, several automated techniques have been proposed to debloat software. A key metric used in many of these works to demonstrate improved security is code reuse gadget count reduction. The use of this metric is based on the prevailing idea that reducing the number of gadgets available in a software package reduces its attack surface and makes mounting a gadget-based code reuse exploit such as return-oriented programming (ROP) more difficult for an attacker. In this paper, we challenge this idea and show through a variety of realistic debloating scenarios the flaws inherent to the gadget count reduction metric. Specifically, we demonstrate that software debloating can achieve high gadget count reduction rates, yet fail to limit an attacker's ability to construct an exploit. Worse yet, in some scenarios high gadget count reduction rates conceal instances in which software debloating makes security worse by introducing new, useful gadgets. To address these issues, we propose a set of four new metrics for measuring security improvements realized through software debloating that are quality-oriented rather than quantity-oriented. We show that these metrics can identify when debloating negatively impacts security and be efficiently calculated using our static binary analysis tool, the Gadget Set Analyzer. Finally, we demonstrate the utility of these metrics in two realistic case studies: iterative debloating and debloater evaluation.
研究动机与目标
- 挑战广泛持有的观点,即减少软件去 bloating 中的 gadget 数量可提升安全性。
- 识别将 gadget 数量减少作为提升利用抵抗能力代理指标的缺陷。
- 提出一组新的质量导向度量指标,以更真实地反映去 bloating 带来的实际安全改进。
- 开发并评估一个静态二进制分析工具 Gadget Set Analyzer,以高效计算这些新度量指标。
- 在真实去 bloating 场景中,包括迭代去 bloating 和去 bloater 评估中,展示新度量指标的实际效用。
提出的方法
- 提出四种新度量指标——可利用性、gadget 有效性、gadget 多样性和利用可行性,用于评估 gadget 的质量而非数量。
- 设计并实现 Gadget Set Analyzer,一个静态二进制分析工具,以高效计算所提出的度量指标。
- 将这些度量指标应用于真实去 bloating 场景,评估其检测去 bloating 是否降低安全性的能力。
- 利用这些度量指标指导迭代去 bloating 过程,确保安全改进不会被 gadget 数量减少所掩盖。
- 将新度量指标与传统 gadget 数量减少方法在评估去 bloating 工具和方法时进行对比。
实验结果
研究问题
- RQ1在多大程度上,减少 gadget 数量能真正提升软件去 bloating 中的利用抵抗能力?
- RQ2在哪些方面,即使 gadget 数量大幅减少,也无法有效限制攻击者构建有效代码重用利用?
- RQ3去 bloating 如何引入新的、更高效的 gadget,从而在总 gadget 数量减少的情况下反而加剧安全风险?
- RQ4质量导向的度量指标能否在 gadget 数量减少的情况下,检测出去 bloating 对安全性的负面影响?
- RQ5所提出的度量指标在指导安全且高效的迭代去 bloating 及去 bloater 评估方面有多高效?
主要发现
- 大幅减少 gadget 数量并不必然降低可利用性,因为攻击者仍可利用剩余 gadget 构建有效的 ROP 链。
- 去 bloating 可能引入新的、高度有用的 gadget,从而在总 gadget 数量减少的情况下反而提升可利用性。
- 所提出的度量指标——可利用性、gadget 有效性、gadget 多样性和利用可行性——能够检测出去 bloating 导致安全性下降的情况,而仅靠 gadget 数量减少无法揭示此类问题。
- Gadget Set Analyzer 能够高效计算新度量指标,使其在真实去 bloating 评估中具备实用性。
- 在案例研究中,新度量指标揭示了传统 gadget 数量度量所掩盖的去 bloating 安全退化问题。
- 这些度量指标通过识别非安全的减少操作并引导选择更安全的优化路径,提升了迭代去 bloating 中的决策质量。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。