国内刊号:31-1289/TP
国际刊号:1000-3428
发布日期:
作者:张利群, 潘祖烈, 黄晖, 王瑞鹏, 李阳
单位:1. 国防科技大学 电子对抗学院, 合肥 230037;2. 网络空间安全态势感知与评估安徽省重点实验室, 合肥 230037
关键词:堆漏洞,Tcache Poisoning方法,符号执行,漏洞自动验证,约束构建
基金:国家重点研发计划(2021YFB3100500)。
Tcache Poisoning是面向堆管理机制的一种堆漏洞利用方法,现有的堆漏洞自动验证工作未考虑Tcache带来的影响,无法适用于高版本Glibc堆漏洞自动验证。分析Tcache机制以及Tcache Poisoning验证方法的原理,提出一种基于符号执行的Tcache Poisoning堆漏洞自动验证方法。定义多元组对堆块的状态进行形式化描述,通过对关键API函数的挂钩,在程序运行过程中收集堆块的状态信息,并引入符号变元将外部输入数据符号化,实现关键信息的获取。通过状态监控检测堆漏洞触发,依据Tcache Poisoning堆漏洞自动验证模型,逐步生成Tcache Poisoning攻击约束和攻击载荷约束,最后通过约束求解生成漏洞验证代码。基于S2E符号执行平台实现自动验证系统TPAEG,并对10个测试程序进行测试,其中在Tcache Poisoning方法的7个测试程序中有5个生成了验证代码。实验结果表明,TPAEG可有效地检测堆溢出漏洞和释放后重用漏洞,并能够针对符合Tcache Poisoning攻击特征的场景实现自动验证,完成控制流的劫持并生成验证代码。
来源:2023年第6期
《计算机工程》期刊编辑部