Gollum:解释器堆溢出的模块化灰盒利用生成系统
在即将举行的ACM计算机与通信安全会议(CCS)上,我将发表一篇关于自动漏洞利用生成(AEG)的论文。论文重点讨论了一种针对解释器堆溢出漏洞的自动化原语发现和攻击构建系统。
系统架构
该方法与传统AEG解决方案的主要区别在于完全采用灰盒测试策略,依赖轻量级插桩和各类模糊测试式输入生成。下图展示了系统的工作流程:
![Gollum工作流程示意图]
实验评估
研究使用PHP和Python解释器中的10个漏洞作为测试案例,通过Gollum系统进行原语发现和攻击链构建实验,具体结果如下:
![漏洞利用生成和原语发现结果]
核心创新点
1. 模糊测试驱动的AEG
将AEG分解为多个阶段后,可以通过轻量级插桩与"相对简单"的输入生成组合来攻破各个阶段。与传统依赖符号执行的方法相比,这种方案能有效规避状态空间爆炸问题。
2. 延迟解析机制
提出利用生成中的延迟任务解析概念:首先假设堆布局可实现,在此基础上构建攻击链,最后再实际解决堆布局问题。这种逆向求解顺序显著提升系统效率。
3. 遗传算法优化
相比去年USENIX Security论文中采用的随机搜索算法,遗传算法在堆布局操作任务中表现更优(尽管实现复杂度更高):
![随机搜索与遗传算法性能对比图]
技术展望
论文指出未来几年模糊测试驱动的利用生成可能成为主流,而符号执行将仅用于需要比特级精确推理且状态空间可控的场景。这种混合方法为漏洞利用开发提供了新的自动化范式。