Linux 内核模糊测试用例集

作者:Sec-Labs | 发布时间:

项目地址

用于模糊测试的Linux内核丰富语料库

提供了使用和生成丰富语料库的文档。

如有更多问题,请随时发送电子邮件至Palash OswalRohan 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

覆盖率随时间的变化

 

ad1a1b7183003226

image

 

独特崩溃随时间的变化

 

ad1a1b7183003303

image

 

总崩溃次数随时间的变化

 

ad1a1b7183003354

CVEs:

新报告的漏洞:

 

标签:工具分享, 思路分享, 学习笔记