[论文解读] Chaff Bugs: Deterring Attackers by Making Software Buggier
本文提出了一种名为chaff bugs的新颖防御技术,通过在软件中注入数千个不可利用的、类似内存损坏的漏洞,以威慑攻击者。该方法使这些漏洞对自动化工具看起来可利用,但通过过度约束的值或未使用的数据确保其在逻辑上不可利用,从而显著增加攻击者在漏洞筛选和利用开发阶段的投入,且不会影响nginx和libFLAC等容错系统中的功能。
Sophisticated attackers find bugs in software, evaluate their exploitability, and then create and launch exploits for bugs found to be exploitable. Most efforts to secure software attempt either to eliminate bugs or to add mitigations that make exploitation more difficult. In this paper, we introduce a new defensive technique called chaff bugs, which instead target the bug discovery and exploit creation stages of this process. Rather than eliminating bugs, we instead add large numbers of bugs that are provably (but not obviously) non-exploitable. Attackers who attempt to find and exploit bugs in software will, with high probability, find an intentionally placed non-exploitable bug and waste precious resources in trying to build a working exploit. We develop two strategies for ensuring non-exploitability and use them to automatically add thousands of non-exploitable bugs to real-world software such as nginx and libFLAC; we show that the functionality of the software is not harmed and demonstrate that our bugs look exploitable to current triage tools. We believe that chaff bugs can serve as an effective deterrent against both human attackers and automated Cyber Reasoning Systems (CRSes).
研究动机与目标
- 为应对漏洞利用开发的高成本与高投入,通过在软件中增加大量不可利用的漏洞来实现。
- 通过使任何发现的漏洞在统计上极大概率不可利用,从而扰乱攻击者的工作流程,特别是漏洞筛选与利用开发阶段。
- 开发确保不可利用性可被证明但对攻击者和自动化筛选工具不明显的检测技术。
- 通过在nginx和libFLAC等真实世界软件中注入chaff bugs的原型,证明该方法的可行性。
- 提供一种新型基于欺骗的防御机制,通过消耗攻击者的时间而非依赖于缓解或检测技术。
提出的方法
- 通过源代码修改注入chaff bugs,重点针对栈和堆缓冲区溢出漏洞。
- 采用两种策略确保不可利用性:将内存损坏操作中使用的值过度约束为仅安全值,以及覆盖程序中未使用的数据。
- 自动在nginx和libFLAC等真实世界C程序中生成数千个此类漏洞,且不改变其功能性行为。
- 确保chaff bugs仅导致崩溃(而非代码执行),因此在威胁模型下不可利用。
- 验证chaff bugs在现有漏洞筛选工具(如!exploitable和exploitable)中被识别为潜在可利用,从而增加攻击者的混淆。
- 设计该技术以支持二进制级别应用,尽管当前原型需要源代码。
实验结果
研究问题
- RQ1能否在不影响功能的前提下,向真实世界软件中大规模注入不可利用的漏洞?
- RQ2能否使chaff bugs在自动化漏洞筛选工具中显示为可利用,同时在逻辑上被证明不可利用?
- RQ3chaff bugs的存在是否显著增加了攻击者发现并利用真实漏洞所需的工作量?
- RQ4chaff bugs对人类攻击者和自动化网络推理系统(CRSs)是否均有效?
- RQ5能否构建一个可扩展地将chaff bugs注入生产级软件的原型?
主要发现
- chaff bug技术成功在nginx和libFLAC等真实世界软件中注入了数千个不可利用的缓冲区溢出漏洞,且未改变其功能行为。
- 注入的漏洞被!exploitable和exploitable等现有漏洞筛选工具识别为潜在可利用,表明其具备高度逼真的伪装效果。
- 两种不可利用性策略——过度约束的值与未使用数据的覆盖——被证明有效,确保了无法执行任意代码。
- 该方法显著提高了任何发现的漏洞为chaff bug的概率,从而通过资源耗尽策略有效威慑攻击者。
- 该技术与现有漏洞缓解机制兼容,可与ASLR、CFI等防御机制结合使用。
- 该方法在微服务和Web服务器等容错系统中尤为有效,因为chaff bugs引发的崩溃对合法用户不可见。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。