Linux 内核模糊测试用例集
作者:Sec-Labs | 发布时间:
项目地址
用于模糊测试的Linux内核丰富语料库
提供了使用和生成丰富语料库的文档。
如有更多问题,请随时发送电子邮件至Palash Oswal或Rohan Padhye。
使用Syzkaller与丰富语料库
该存储库中提供了最新的Corpus文件 corpus.db。该文件每日更新。
将其下载到syzkaller工作目录中并启动syzkaller。
mkdir workdir
cd workdir
wget https://github.com/cmu-pasta/linux-kernel-enriched-corpus/raw/main/corpus.db
使用HEALER与丰富语料库
语料库程序存储在 files 目录中,可以直接导入到HEALER。
克隆该存储库并将 files/* 复制到HEALER中的 output/corpus/ 目录中。在HEALER工作目录内,运行以下命令。
mkdir -p output/corpus
cp -vr <path/to/files/> output/corpus/
手动获取语料库
collect.py:目前从syzbot中所有已修复的Linux内核崩溃中获取syz reproducer。
可以修改此脚本以从其他内核版本获取语料库程序,并获取“C”程序而不是syz reproducers。
生成corpus.db文件
如果您拥有需要转换为syzkaller兼容的corpus.db文件的syz程序集合,可以使用syzkaller中的syz-db.go pack。
GitHub actions workflow中提供了此实现,在此处。
结果
使用2个CPU和4GB内存的一台实例进行模糊测试24小时的实验。
使用的系统:ThinkMate,Intel® Xeon® Gold 6226R。
测试的内核版本:Linux v6.0.8和v6.1.20
覆盖率随时间的变化


独特崩溃随时间的变化


总崩溃次数随时间的变化

CVEs:
新报告的漏洞:
- https://lkml.org/lkml/2023/2/20/128
- https://lkml.org/lkml/2023/2/20/773
- https://lkml.org/lkml/2023/2/20/785
- https://lkml.org/lkml/2023/2/20/860
- https://lkml.org/lkml/2023/2/21/1353
- https://lkml.org/lkml/2023/2/22/3 以及许多其他漏洞
标签:工具分享, 思路分享, 学习笔记