摘要:现有主流智能Fuzzing测试一般通过对程序内部结构的精确分析构造新测试样本,因而严重依赖于当前计算机的性能,往往忽略了已发现的程序异常信息对新测试样本构造的指导意义。为了克服上述缺陷,该文提出一种基于异常分布导向的智能Fuzzing 方法。该方法针对二进制程序测试,建立了TGM(Testcase Generation Model)样本构造模型:首先根据计算能力收集测试样本集的相关信息;然后随机选择初始测试样本进行测试;最后,基于测试结果初始化模型参数,根据模型优先选择更有效的输入属性构造新样本并进行新一轮测试,通过重复进行该步骤,在迭代测试中不断更新模型参数,用于指导下一轮新测试样本构造。实验数据表明该方法可以辅助Fuzzing 选择更有效的样本优先进行测试,设计的原型工具CombFuaz在异常检测能力和代码覆盖能力上都有良好表现,同时,在对大型应用程序进行测试时,与微软SDI实验室的MiniFuaz测试器相比,在限定时间内平均异常发现率提高近18倍,并在WPS 2013等软件中发现了7个MiniFuzz无法发现的未公开“可利用”脆弱点。 0 t5 b7 c5 q. W8 P2 l' m. n/ A' [1 _关键词:软件测试;智能Fuzzing;异常分布;脆弱点 6 i3 L o7 j% R L