漏洞挖掘论文常用数据集

  • Author:ZERO-A-ONE
  • Date:2021-03-31

一、简介

最近因为写有关于模糊测试的论文,需要相关数据集,故进行了一些调研和收集,此贴长期更新于Gtihub,地址如下

https://github.com/ZERO-A-ONE/Fuzzing-data-set.git

一般来说漏洞挖掘的论文一般会有两方面的数据展示:

  • 常用的测试数据集,也就是本贴主要收集的
  • 常用软件,也就是面对真实软件的漏洞挖掘情况

二、数据集

  • cb-multios:基于DARPA Challenge的测试数据集,进行了一定的修改可以编译运行在Linux,OS X与Windows操作系统上
  • lava_corpus:LAVA是一组用来评估漏洞检测工具的benchmark软件,通过LAVA在uniq、who、md5sum、base64四个程序上进行bug插入而形成的测试集即为LAVA-M
  • neuzz:neuzz是一个利用机器学习来提高模糊测试效率的项目,其仓库中的programs有许多的测试样例
  • lava:lava是之前lava_corpus的最新版本,由于缺乏基本事实语料库(即,具有触发输入的已知错误的软件),目前难以评估和改进错误查找工具。LAVA试图通过自动将错误注入软件来解决此问题。每个LAVA错误都伴随有触发它的输入

三、使用方法

3.1 cb-multios

这里仅讨论在Linux环境下的编译方式,首先需要安装一些必备的包

$ sudo pip install xlsxwriter pycrypto defusedxml pyyaml matplotlib

然后运行写好的脚本就行编译就好了

$ ./build.sh

如果不想使用任何Python的包还可以执行这样编译

$ NO_PYTHON_I_KNOW_WHAT_I_AM_DOING_I_SWEAR=1 ./build.sh

默认的编译脚本编译出来的程序是32位程序,如果你想要编写64位程序就需要这样执行编译脚本

$ BUILD64=1 ./build.sh

3.2 lava-corpus

LAVA-M的下载地址为

http://panda.moyix.net/~moyix/lava_corpus.tar.xz

点击链接下载压缩包并解压,可以在文件夹中找到分别存放base64、md5sum、uniq、who的子文件夹

$ xz -d lava_corpus.tar.xz 
$ tar xvf lava_corpus.tar 
ubuntu@VM-4-12-ubuntu:~/git/Fuzz-Test/lava_corpus/LAVA-M$ ls -all
total 24
drwxr-xr-x 6 ubuntu ubuntu 4096 Jun  8  2016 .
drwxrwxr-x 4 ubuntu ubuntu 4096 Jun  9  2016 ..
drwxr-xr-x 6 ubuntu ubuntu 4096 Jun  9  2016 base64
drwxr-xr-x 7 ubuntu ubuntu 4096 Jun  9  2016 md5sum
drwxr-xr-x 6 ubuntu ubuntu 4096 Jun  9  2016 uniq
drwxr-xr-x 6 ubuntu ubuntu 4096 Jun  9  2016 who

需要安装 libacl, 命令为:

$ sudo apt-get install libacl1-dev

运行下面的命令即可将Bug嵌入到base64中,编译后的base64位于目录:lava_corpus/LAVA-M/base64/coreutils-8.24-lava-safe/lava-install/bin/

$ cd base64
$ ./validate.sh

成功的话就会如下所示:

ubuntu@VM-4-12-ubuntu:~/git/Fuzz-Test/lava_corpus/LAVA-M/base64$ ./validate.sh
Building buggy base64...
Checking if buggy base64 succeeds on non-trigger input...
Success: base64 -d inputs/utmp.b64 returned 0
Validating bugs...
Validated 44 / 44 bugs
You can see validated.txt for the exit code of each buggy version.

如果要使用AFL或者AFL++之类的模糊测试引擎得话,可以在环境变量里面修改gcc和g++参数

export CC=afl-clang-fast
export CXX=afl-clang-fast++

然后重新执行编译就好了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值