摘要:现有主流智能Fuzzing测试一般通过对程序内部结构的精确分析构造新测试样本,因而严重依赖于当前计算机的性能,往往忽略了已发现的程序异常信息对新测试样本构造的指导意义。为了克服上述缺陷,该文提出一种基于异常分布导向的智能Fuzzing方法。该方法针对二进制程序测试,建立了TGM(Testcase Generation Model)样本构造模型:首先根据计算能力收集测试样本集的相关信息;然后随机选择初始测试样本进行测试;最后,基于测试结果初始化模型参数,根据模型优先选择更有效的输入属性构造新样本并进行新一轮测试,通过重复进行该步骤,在迭代测试中不断更新模型参数,用于指导下一轮新测试样本构造。实验数据表明该方法可以辅助Fuzzing选择更有效的样本优先进行测试,设计的原型工具Comb Fuzz在异常检测能力和代码覆盖能力上都有良好表现,同时,在对大型应用程序进行测试时,与微软SDL实验室的Mini Fuzz测试器相比,在限定时间内平均异常发现率提高近18倍,并在WPS 2013等软件中发现了7个Mini Fuzz无法发现的未公开"可利用"脆弱点。
关键词:软件测试 智能fuzzing 异常分布 脆弱点
单位:解放军信息工程大学 郑州450002 数学工程与先进计算国家重点实验室 郑州450002
注:因版权方要求,不能公开全文,如需全文,请咨询杂志社