[4-26]StateFuzz:状态敏感的Linux内核驱动程序模糊测试
文章来源: | 发布时间:2023-04-20 | 【打印】 【关闭】
Title: StateFuzz:状态敏感的Linux内核驱动程序模糊测试
Speaker:赵博栋(清华大学网络安全实验室 博士生)
Time: 4月26日(周三)下午2:00 Venue:线下:中科院软件所五号楼三层 334报告厅 线上:腾讯会议号:633-843-212
Abstract: 基于覆盖率引导的模糊测试在发现软件漏洞方面取得了巨大成功,现有覆盖率引导的模糊器通常倾向于使用覆盖了新代码的测试用例,并在之后丢弃其他覆盖相同代码的测试用例。然而,这样的策略并不是最优的。覆盖相同代码的新测试用例可能比以前的测试用例更好,因为它可能触发了对代码探索和发现漏洞有帮助的新程序状态。
在本文中,我们评估了当前覆盖率引导的模糊测试方案的局限性,并提出了一种状态感知的模糊测试解决方案StateFuzz。首先,我们用状态变量对程序状态进行建模,并利用静态分析来识别这些变量。然后,我们插桩目标程序来跟踪这些变量的值,并在模糊测试过程中推断程序状态转换。最后,我们利用状态信息来决定触发了新状态的测试用例的优先级,并通过一个三维反馈机制来调整模糊测试器的进化方向。我们实现了一个StateFuzz的原型,并在Linux上游内核的驱动程序和 Android内核的驱动程序上对其进行了评估。实验结果表明,StateFuzz 在发现新代码和漏洞方面都有好的效果。它发现了18个未知漏洞和2个已知但未修补的漏洞,与业界先进的模糊测试器Syzkaller相比,代码覆盖率提高了19%,状态覆盖率提高了32%。
Bio: 赵博栋,清华大学网络安全实验室博士生,导师为张超副教授,蓝莲花、Tea-Deliverers战队队员。主要研究兴趣包括Linux内核漏洞挖掘、容器安全、模糊测试和程序分析,在USENIX Security、ISSTA等网络安全、软件工程国际顶级会议上发表论文多篇,曾在DEFCON、GEEKPWN、强网杯等国内外知名网络安全竞赛中获奖。