利用反馈驱动模糊测试改进 LockDoc 的 Linux 内核测试
软件工程
2021-09-17 v2
摘要
LockDoc 是一种从系统在基准负载下记录到的动态执行轨迹中提取内核数据结构锁规则的方法。这些锁规则可用于定位同步缺陷。为了获得高规则精度和彻底的缺陷发现,该方法严重依赖于基准的选择:它们必须尽可能多地触发与目标数据结构相关的内核子系统中的代码执行。然而,现有测试套件(如 Linux 测试计划(LTP)所提供的)仅能达到——以 LTP 为例——约 35% 的 VFS 子系统基本块覆盖率,而 VFS 正是提取文件系统相关数据结构的锁规则时的相关子系统。在本文中,我们讨论如何补充 LTP 套件以改进我们 LockDoc 场景下的代码覆盖率。我们将 syzkaller(一个以验证内核 API 鲁棒性为目标的覆盖率引导模糊测试器)改造为:1) 不以获取内核崩溃为目标,以及 2) 最大化特定内核子系统的代码覆盖率。由此,我们生成了可与 LTP 一并运行的新基准程序,并将 VFS 基本块覆盖率提升了 26.1%。
引用
@article{arxiv.2009.08768,
title = {Improving Linux-Kernel Tests for LockDoc with Feedback-driven Fuzzing},
author = {Alexander Lochmann and Robin Thunig and Horst Schirmeier},
journal= {arXiv preprint arXiv:2009.08768},
year = {2021}
}
备注
reason for v2 replacement: broken citation style in v1 that harms readability