国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:鲁法明,唐梦凡,包云霞,曾庆田,李彦成
单位:鲁法明,山东科技大学 计算机科学与工程学院, 山东 青岛 26659011,唐梦凡,山东科技大学 计算机科学与工程学院, 山东 青岛 26659002,包云霞,山东科技大学 数学与系统科学学院, 山东 青岛 26659003,曾庆田,山东科技大学 计算机科学与工程学院, 山东 青岛 26659004,李彦成,百度在线网络技术(北京)有限公司, 北京 10019305
关键词:软件验证;并发漏洞;Petri网;UAF漏洞;反向展开
基金:国家自然科学基金(61602279);山东省泰山学者工程专项基金(ts20190936);山东省高等学校青创科技支持计划(2019KJN024);山东省自然科学基金智慧计算联合基金(ZR2021LZH004);青岛市西海岸新区2022年“揭榜挂帅”技术攻关项目
Use-after-free (UAF)漏洞是多线程程序的常见并发缺陷.预测性UAF漏洞检测方法因兼顾误报率和漏报率而备受关注.然而,已有的预测性UAF检测方法未结合待检测目标作针对性优化,当程序规模大或行为复杂时会导致检测效率低下.为了解决上述问题,提出一种目标导向的多线程程序UAF漏洞检测方法.首先,由程序运行轨迹挖掘程序的Petri网模型;之后,针对每一个潜在可构成UAF漏洞的内存Free/Use操作对,以触发该漏洞为目标导向,在程序的Petri网模型中添加保持操作间因果约束和数据一致性的行为控制结构;在此基础上,设计了一种基于Petri网反向展开的UAF漏洞检测方法.该方法每次只针对1个潜在的UAF漏洞,有针对性地验证其真实性,从而保证检测的效率.与此同时,为了减少待检测的潜在UAF漏洞数量,提出了一种新型向量时钟进行Free操作与Use操作间的因果关系自动识别,据此对潜在的UAF漏洞进行筛选.结合多个程序实例对所提方法进行了实验评估.实验结果表明,所提方法在检测的效率和准确性方面较主流方法有所提高.
来源:2023年第7期
《软件学报》期刊编辑部