Page 197 - 《软件学报》2025年第10期
P. 197
4594 软件学报 2025 年第 36 卷第 10 期
提升. 但是在迁移到实际项目时会导致准确率大幅度下降. 由于现阶段零日漏洞数据样本的稀缺, 导致该方法很难
对零日漏洞进行有效检测.
1.3 变异测试
变异测试是一种常见的软件测试技术, 它通过修改源代码中的语句或表达式, 生成一组具有不同程度变异的
变异体来测试用例的质量. 这种测试方法能够检测出源代码中的潜在错误和缺陷, 并帮助开发人员和测试人员改
进测试用例的质量. 但是目前变异测试在软件测试中的应用现状和研究进展中仍然存在着一些问题.
变异测试在软件测试中已经得到广泛的关注和应用. 一些研究表明, 变异测试能够检测到源代码中的错误和
缺陷, 能够提高测试用例的质量和代码覆盖率, 从而提高软件的质量和稳定性. Beaman 等人 [32] 研究表明, 变异测
试能够有效地发现软件中的漏洞和缺陷, 对软件的安全性和稳定性有重要的意义. Aayush 等人 [33] 阐明了变异测试
对于提高软件测试质量和效率的重要作用, 为变异测试的研究者和实践者提供了一个有价值的参考.
然而, 变异测试也存在一些挑战和问题. 一方面, 变异测试生成的变异体数量很大, 导致测试的时间和资源开
销很大, 需要设计高效的测试方法和策略. 另一方面, 不同的变异算子对测试结果的影响有所不同, 需要选择合适
的变异算子和测试用例集合, 以达到最佳的测试效果. Ma 等人 [34] 研究发现, 有些变异算子不是很有效, 需要选择
合适的算子来提高测试效果.
近年来, 一些新的变异测试研究方法和工具被提出, 以应对变异测试中的一些问题和挑战. 例如, Jia 等人 [35]
总结了变异测试的发展趋势和应用领域, 提出了一些新的研究方向和挑战. Khanfir 等人 [36] 提出了基于预训练语言
模型的变异测试技术, 用于生成自然和强大的变异体, 提高故障检测能力.
综上所述, 由于零日漏洞尚未被公开披露, 传统的漏洞检测方法很难检测到这些漏洞. 目前的变异测试生成的
变异体数量很大, 导致测试的时间和资源开销很大. 针对这些问题, 本文方法可以生成包含漏洞特征的变异样本,
这些样本可以作为零日漏洞检测的输入, 有助于提高零日漏洞的检测率. 此外, 本文方法的创新点在于使用静态模
糊技术来生成变异样本, 相较于传统的动态模糊技术, 可以减少生成变异样本的成本, 并且可以生成更加复杂的变
异样本, 从而提高检测的覆盖率和准确率. 因此, 本文的研究对于零日漏洞的检测具有重要的意义, 并且可以为现
有工作带来重要的贡献.
2 利用抽象语法树变异生成漏洞样本的研究
漏洞样本生成方法在漏洞检测和安全评估中具有重要的作用. 通过生成包含漏洞特征的变异样本, 可以帮助
安全测试人员和研究人员发现和修复软件漏洞, 提高软件系统的安全性. 特别是在零日漏洞检测方面, 漏洞样本生
成方法可以生成包含零日漏洞特征的变异样本, 提高零日漏洞的检测率.
然而, 漏洞样本生成方法面临着许多挑战. 首先, 随着软件架构的演化, 软件系统的动态复杂性不断增加, 导致
传统的漏洞检测方法和规则难以适应新的漏洞特征. 其次, 由于零日漏洞样本的稀缺, 传统的漏洞检测方法很难检
测到这些漏洞. 因此, 需要开发新的漏洞样本生成技术来应对这些挑战. 图 2 展示了本文的主要研究内容.
抽象语法树的 抽象语法树 变异策略的
生成与优化 的变异 优化
Eclipse CDT 5种基于谓词公式的 基于 MOPSG 算法的
工具生成的抽象语法树 特征变异算子 变异策略
5种传统模糊测试的 2种启发式变异
节点存储结构进行优化
变异算子 策略优化方法
使用变异算子进行抽象
语法树层面的变异
图 2 基于抽象语法树变异的漏洞样本生成方法研究点
1) 抽象语法树的生成与优化. 本文的变异操作是在抽象语法树层面进行的, 因此对多种抽象语法树的生成工
具进行了研究, 对每种工具生成抽象语法树的解析方式和生成结果进行了深入的了解, 经过仔细地研究对比后, 本

