释放双眼,带上耳机,听听看~!
CCS17大会文章
测试环境
- 实验环境如下所示。
- 表1-1 实验环境配置
- | 名称 | 软件及版本说明
- | 操作系统 | Ubuntu 16.04 64 位桌面版
- | 模糊测试工具 | AFL Go2.49b
- | 虚拟机 | VMware Workstation 14.0
- | 编译器 | Clang 4.0.1
- | 内存 | 2GB
- | 处理器数量 | 1
- | CPU | Intel(R) i7-8750H CPU 2.20GHz
在VMware Workstaion 14.0 虚拟机Linux 16.04下部署aflgo,首先需要安装llvm4.0.1,步骤如下:
隐藏内容,您需要满足以下条件方可查看
End
#编译源码
pushd $AFLGO
make clean all
cd llvm_mode
make clean all
popd
输入afl-fuzz看到提示如下图1-3表示已经成果安装aflgo2.49b。

1.3定向模糊测试模块
作为对比,其中一个是以符号执行约束后的种子作为定向模糊测试输入的起点执行定向模糊测试结果如图1-6,另一个以任意的种子输入作为起点执行模糊测试,结果如图1-7。


定向模糊测试还能针对大型软件进行自动化漏洞验证,对Libxml2进行了验证了commit ef709ce2,结果如图5-8。

1.4 结果分析
通过对比图1-6和图1-7可以看出,定向符号执行和定向模糊测试结合能很快的进行漏洞挖掘,节约了大量的时间。同样的程序,图1-6运行了几秒就跑出了三个crash,而单纯的模糊测试运行了两天也没有crash产生,猜测应该是没有办法进行新路径探索而导致程序陷入死循环导致的。图1-8的结果表明针对大型软件,定向模糊测试同样具有快速高效挖掘漏洞的效果。接着分析自动化漏洞验证系统跑出来的结果,结果如图1-9。

隐藏内容,您需要满足以下条件方可查看
End

[/content_hide]