Fuzzing101完成记录
AFL++配置
如果过程中出现问题,很可能是网络不通畅导致
123456789101112# 安装依赖sudo apt-get updatesudo apt-get install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-devsudo apt-get install -y lld-12 llvm-12 llvm-12-dev clang-12sudo apt-get install -y gcc-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-plugin-dev libstdc++-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-devsudo apt-get insta ...
LibAFL入门
简介
2022CCS即将发表的最新成果
Rust开发,快速、多平台、no_std兼容,可跨内核和计算机进行扩展
这是一个框架,可以把所有fuzzer模块化整合到一起,实现不同fuzzer之间的有机融合
特性
运行时开销低
可扩展(本机、网络)
可定制(更换自定义模块)
跨平台(Windows、MacOS、Linux、Android)
支持无源码二进制模糊测试
论文阅读ccs22_fioraldi.pdf
ABSTRACT
现在的问题:模糊测试的生态碎片化(很多Fork自AFL),将不同的Fuzzer结合工程开销巨大
解决:用于构建模块化、可重用Fuzzer的框架——LibAFL
INTRODUCTION
什么是Fuzzer:对一个目标程序应用大量自动生成的输入
Fuzzer的目标:发现有问题的状态(通常与漏洞相关)
通用的Fuzzer:AFL、AFL++、HONGGFUZZ、LibFuzzer
上述Fuzzer的问题:对专业用户而言局限性突出——测试的应用多种多样(操作系统内核、设备驱动、嵌入式设备…)
之前的解决方法:Fork AFL/AFL++,定制自己 ...