Psyzkaller:利用历史与在线执行数据学习以实现操作系统内核模糊测试中更智能的种子生成
密码学与安全
2025-10-13 v1
摘要
模糊测试已成为发现漏洞和增强操作系统内核安全性的基石技术。然而,最先进的内核模糊测试器,包括事实上的标准 Syzkaller,在生成尊重隐式系统调用依赖关系(SDRs)的有效系统调用序列方面存在困难。因此,许多生成的种子要么无法通过内核验证,要么无法深入执行路径,导致效率显著低下。我们假设 SDRs 可以从历史和当前的内核执行数据中有效学习,并且将这些学习到的关系融入模糊测试可以显著提高种子的有效性和多样性。为验证这一点,我们提出了一种利用 N-gram 模型从洞庭数据集——最大的 Linux 内核执行数据集之一——以及模糊测试过程中在线收集的执行轨迹中挖掘 SDRs 的方法。所得模型用于持续扩充 Syzkaller 的选择表(Choice Table),以改善其种子生成,并显著提高选择表在整个模糊测试过程中的香农熵(Shannon Entropy),反映出在扩展系统调用序列为有效且多样化的种子时更具经验基础的决策。此外,我们引入了一种随机游走策略,指导 Syzkaller 以双向方式构建种子以进一步多样化生成的种子。我们在 Syzkaller 之上构建了原型 Psyzkaller。在三个代表性 Linux 内核版本上的实验表明,Psyzkaller 在 48 小时模糊测试中将 Syzkaller 的代码覆盖率提高了 4.6%–7.0%,同时触发的崩溃数量增加了 110.4%–187.2%。此外,我们的调查表明 Psyzkaller 发现了 8 个此前未知的 内核漏洞,而 Syzkaller 仅发现 1 个。
引用
@article{arxiv.2510.08918,
title = {Psyzkaller: Learning from Historical and On-the-Fly Execution Data for Smarter Seed Generation in OS kernel Fuzzing},
author = {Boyu Liu and Yang Zhang and Liang Cheng and Yi Zhang and Junjie Fan and Yu Fu},
journal= {arXiv preprint arXiv:2510.08918},
year = {2025}
}