Healer:新一代内核模糊测试工具
healerKernel fuzzer inspired by Syzkaller.项目地址:https://gitcode.com/gh_mirrors/he/healer
项目介绍
Healer 是一款受 Syzkaller 启发的内核模糊测试工具。与 Syzkaller 类似,Healer 利用 Syzlang 提供的系统调用信息生成符合参数结构约束和部分语义约束的系统调用序列,通过不断执行这些序列来发现内核漏洞。然而,Healer 通过动态移除调用序列中的调用并观察覆盖率变化来检测系统调用之间的影响关系,以此指导调用序列的生成和变异,这是其与 Syzkaller 的主要区别。
项目技术分析
Healer 使用纯 Rust 编写,除了部分补丁代码。其构建过程中会自动下载 Syzkaller 并应用补丁进行构建,这可能增加构建时间。Healer 通过 QEMU 启动内核,并要求内核至少具备 kcov
特性。此外,Healer 的设计架构与 Syzkaller 不同,更注重动态影响关系的检测和利用。
项目及技术应用场景
Healer 主要应用于以下场景:
- 内核安全测试:通过模糊测试发现内核中的潜在漏洞。
- 系统调用分析:研究系统调用之间的相互影响,优化调用序列的生成和变异策略。
- 安全研究:为安全研究人员提供一个强大的工具,帮助他们深入分析和理解内核行为。
项目特点
- 动态影响关系检测:Healer 通过动态方法检测系统调用之间的影响关系,更有效地指导模糊测试过程。
- Rust 实现:使用 Rust 语言编写,提供更好的内存安全性和性能。
- 集成 Syzkaller:自动下载并构建 Syzkaller,简化用户操作。
- 灵活的构建选项:支持通过环境变量跳过自动构建过程,提供更灵活的构建选项。
Healer 作为一个原型项目,虽然许多重要功能尚未发布,但其独特的设计和实现方式已经显示出巨大的潜力。对于对内核安全感兴趣的开发者和研究人员来说,Healer 无疑是一个值得关注和尝试的开源项目。
参考资料
通过以上介绍,相信您对 Healer 项目有了更深入的了解。如果您对内核模糊测试感兴趣,不妨尝试使用 Healer,探索其强大的功能和潜力。欢迎贡献代码和提出建议,共同推动项目的发展!
healerKernel fuzzer inspired by Syzkaller.项目地址:https://gitcode.com/gh_mirrors/he/healer