摘 要:近年来,随着模糊测试的不断发展,模糊测试工具在实际应用上取得了很好的效果,但是现有模糊测试工具容易陷入停滞状态或无法探索某些路径。基于群体智能的思想,提出了一种基于人机协同的二进制漏洞挖掘框架,该框架实现了基于知识图谱描述的个体库、任务自动化拆解和分配模型、并行化 Fuzz 引擎 3 个部分。大量实验结果证明,人的先验知识对模糊测试有益,在覆盖率和 crash 数量上有更好的表现。
内容目录:
1 相关技术介绍
1.1 模糊测试
1.2 符号执行
2 整体流程与核心模块设计
2.1 基于知识图谱的个体库
2.2 自动化任务拆解和分配模型
2.3 并行化漏洞挖掘引擎
3 实验结果分析
4 结 语
模糊测试是现代漏洞挖掘最有效的技术之一,其为被测程序提供大量输入,并监视其出现的异常行为,例如堆栈溢出、越界读写、内存泄漏等 。自从模糊测试的方法问世以来,其在业界和学界受到广泛关注并不断发展,基于此,研究人员开发了各种工具应用于不同的测试场景。近年来,随着AFL家族的出现,灰盒模糊测试的发展不断完善,并取得了优秀的成果。
群体智能思想是近年来热门的研究方向,研究人员将人的先验知识与机器的算力相结合,在部分领域取得了很好的成果。基于此,本文在模糊测试中引入人机协同的思想,让专家来解决模糊测试执行中遇到的问题。首先,对每一个专家的特点和经验进行量化描述并绘制知识图谱,以此作为任务分配的依据;其次,实现了任务自动化拆分和分配模块,将每一个漏洞挖掘任务自动化拆分为若干子任务,再对每一个子任