SyzParam:将运行时参数引入内核驱动模糊测试
SyzParam: Introducing Runtime Parameters into Kernel Driver Fuzzing
AI总结:
针对内核驱动模糊测试缺乏运行时参数利用的问题,本文提出SyzParam框架,通过静态分析提取运行时参数、构建设备间关系并采用优先修改参数的变异策略,提升了驱动代码覆盖率与漏洞检测能力,已发现多个内核漏洞与CVE。
摘要:
本文提出了一种新型模糊测试框架SyzParam,该框架将运行时参数融入模糊测试流程。实现这一目标需要解决若干关键挑战,包括有效值提取、设备间关系构建以及模糊引擎集成。通过检查与LKDM(Linux内核设备模型)相关的数据结构和函数,我们的工具可通过静态分析提取各类驱动的运行时参数。此外,SyzParam会收集设备间关系,并识别运行时参数与驱动之间的关联。再者,SyzParam提出了一种新型变异策略,该策略利用这些关系,在相关驱动执行期间优先修改参数。我们的评估表明,SyzParam在驱动代码覆盖率和漏洞检测能力方面优于现有模糊测试研究。截至目前,我们已在最新的内核上游版本中发现30个独特漏洞,其中20个已确认,14个已合入主线内核修复,包括9个CVE。
英文摘要:
This paper introduces a novel fuzzing framework, SyzParam which incorporates runtime parameters into the fuzzing process. Achieving this objective requires addressing several key challenges, including valid value extraction, inter-device relation construction, and fuzz engine integration. By inspecting the data structures and functions associated with the LKDM, our tool can extract runtime parameters across various drivers through static analysis. Additionally, SyzParam collects inter-device relations and identifies associations between runtime parameters and drivers. Furthermore, SyzParam proposes a novel mutation strategy, which leverages these relations and prioritizes parameter modification during related driver execution. Our evaluation demonstrates that SyzParam outperforms existing fuzzing works in driver code coverage and bug-detection capabilities. To date, we have identified 30 unique bugs in the latest kernel upstreams, with 20 confirmed and 14 patched into the mainline kernel, including 9 CVEs.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。