探索未知:BSOD-Kernel-Fuzzing - 打开设备驱动安全新纪元
在信息安全的舞台上,对闭源内核驱动程序的测试和漏洞发现始终是一个挑战。然而,BSOD-Kernel-Fuzzing 开源项目为这一领域带来了一种创新方法,它允许我们对二进制设备驱动进行大规模、可扩展的模糊测试(fuzzing)。
项目介绍
BSOD-Kernel-Fuzzing 是基于柏林工业大学网络安全系(SecT)硕士论文项目的研究成果。这个项目的核心在于通过 QEMU 中的设备仿真实现对 KVM 的内核模糊测试,从而对闭源设备驱动进行安全审计。这一突破性工作使得即使对于二进制形式的设备驱动,也能进行有效的安全性评估,并已经在 NVIDIA 图形驱动中发现了三个重大安全漏洞(CVE-2021-1090,CVE-2021-1095 和 CVE-2021-1096)。
技术分析
项目包括三个主要组件:
- bsod-afl:基于 afl 的内核模糊测试工具,其初始设计受到 kernel-fuzzer-for-xen-project 的启发,专为 KVM 环境进行了优化。
- bsod-syzkaller:针对闭源目标进行了改进的 syzkaller 工具,通过一个名为 syz-bp-cov 的小型工具提供断点覆盖率反馈,提升了模糊测试的效果。
- bsod-fakedev:利用 QEMU 的 pci-replay 功能来模拟真实设备行为,结合从 QEMU vfio 跟踪数据中提取的 pci-replay 数据,以提高测试的真实性和准确性。
为了实现这些功能,项目依赖于 KVM-VMI,这是一个提供了 KVM 内核模块与 QEMU 强大洞察能力的项目。
应用场景
BSOD-Kernel-Fuzzing 非常适用于以下场景:
- 安全团队希望对闭源设备驱动进行全面的安全审查。
- 开发者正在寻找一种工具,用于在产品发布前检测可能的内核级缺陷,避免生产环境中出现严重的系统崩溃问题。
- 学术研究人员在探索新的模糊测试技术和方法时,可以借鉴和扩展这个项目。
项目特点
- 闭源兼容性:BSOD-Kernel-Fuzzing 克服了传统模糊测试工具无法处理二进制驱动的局限,适用于闭源硬件驱动。
- 高效覆盖:通过 syz-bp-cov 提供的断点覆盖率反馈,能深入到代码执行的细粒度级别,提高模糊测试的效率。
- 设备仿真:使用 bsod-fakedev 及 pci-replay 技术,模拟真实设备的行为,提高了测试的真实性。
- 灵活性:支持使用 afl 和 syzkaller 两种流行的模糊测试框架,满足不同需求。
如果你热衷于内核安全或者对设备驱动的模糊测试感兴趣,BSOD-Kernel-Fuzzing 将是你不可错过的资源。立即加入,一同挖掘潜在的安全隐患,为系统安全贡献力量!