一个面向安全、反馈驱动、进化、易于使用的模糊器,具有有趣的分析选项。有关 Honggfuzz 使用的入门知识,请参阅使用文档。
最新稳定版本:2.6
变更日志
sudo apt-get install binutils-dev libunwind-dev libblocksruntime-dev clang make
它是多进程和多线程的:无需运行模糊器的多个副本,因为 honggfuzz 可以通过单个运行实例释放所有可用 CPU 核心的潜力。文件语料库在所有模糊进程之间自动共享和改进。
使用持久模糊测试模式时速度非常快。可以在相对现代的 CPU(例如 i7-6700K)上以每秒高达 1mo 的迭代速度测试简单/空的LLVMFuzzerTestOneInput函数。
拥有未发现的安全漏洞的可靠记录:(迄今为止)OpenSSL 中唯一具有关键分数的漏洞是由 honggfuzz 发现的。请参阅“奖杯”段落,了解迄今为止的调查结果摘要。
使用低级接口来监视进程(例如Linux和NetBSD下的ptrace )。与其他模糊器相反,它会发现并报告崩溃中被劫持/忽略的信号(被模糊程序拦截并可能隐藏)。
易于使用,为它提供一个简单的语料库目录(对于反馈驱动的模糊测试甚至可以为空),它就会向上工作,通过利用基于反馈的覆盖率指标来扩展它。
支持多种(比任何其他基于覆盖的反馈驱动的模糊器更多)基于硬件(CPU:分支/指令计数、 Intel BTS 、 Intel PT )和基于软件的反馈驱动模糊模式。另请参阅用于黑盒二进制模糊测试的新qemu 模式。
(至少)可以在 GNU/Linux、FreeBSD、NetBSD、Mac OS X、Windows/CygWin 和 Android 下工作。
支持持久模糊测试模式(长期进程重复调用模糊测试API)。更多相关内容可以在这里找到。
它附带了示例目录,其中包含广泛使用的软件(例如 Apache HTTPS、OpenSSL、libjpeg 等)的真实模糊设置。
提供语料库最小化模式。
Linux - BFD 库 (libbfd-dev) 和 libunwind (libunwind-dev/libunwind8-dev)、clang-5.0 或更高版本,用于基于软件的覆盖模式
FreeBSD - gmake、clang-5.0 或更高版本
NetBSD - gmake、clang、capstone、libBlocksRuntime
Android - Android SDK/NDK。另请参阅有关如何构建和运行它的详细文档
Windows -CygWin
达尔文/OS X - Xcode 10.8+
如果使用Clang/LLVM编译 honggfuzz - 将其与 BlocksRuntime 库 (libblocksruntime-dev) 链接
Honggfuzz 已被用来在主要软件包中发现一些有趣的安全问题;不完整的列表:
OSS-Fuzz 项目造成的数十个安全问题
OpenSSH中的预身份验证远程崩溃
阿帕奇HTTPD
mod_http2中的远程崩溃 • CVE-2017-7659
mod_http2中的释放后使用 • CVE-2017-9789
mod_auth_digest中的内存泄漏 • CVE-2017-9788
越界访问 • CVE-2018-1301
在 HTTP/2 中释放后写入 • CVE-2018-1302
越界读取 • CVE-2018-1303
各种SSL库
OpenSSL中的远程 OOB 读取 • CVE-2015-1789
OpenSSL中的远程释放后使用(潜在的 RCE,评级为严重) • CVE-2016-6309
OpenSSL中的远程 OOB 写入 • CVE-2016-7054
OpenSSL中的远程 OOB 读取 • CVE-2017-3731
OpenSSL中未初始化的内存使用
LibreSSL崩溃
LibreSSL中的 free 无效
BoringSSL中未初始化的内存使用
Adobe闪存损坏 • CVE-2015-0316
libtiff库中存在多个错误
librsvg库中存在多个错误
poppler库中存在多个错误
IDA-Pro中多个可利用的错误
Crypto++中的远程 DoS • CVE-2016-9939
编程语言解释器
PHP/Python/Ruby
PHP WDDX
PHP
Perl:#1、#2、#3
LibXMP中的双重释放
SAPCAR 中的堆缓冲区溢出 • CVE-2017-8852
libbass崩溃
自由类型 2 :
CVE-2010-2497
CVE-2010-2498
CVE-2010-2499
CVE-2010-2500
CVE-2010-2519
CVE-2010-2520
CVE-2010-2527
Windows OpenType 解析器中的堆栈损坏问题:#1、#2、#3
NGINX 单元中的无限循环
MATLAB MAT 文件 I/O 库中的几个问题:#1、#2、#3、#4、#5
NASM #1、#2、#3、#4、#5、#6、#7、#8、#9、#10
Samba tdbdump + tdbtool、#2、#3、#4、#5、#6 CVE-2019-14907 CVE-2020-10745 CVE-2021-20277 LPRng_time
djvulibre事故
VLC中多次崩溃
ClassiCube中的缓冲区溢出
MPV中的堆缓冲区溢出(或 UAF)
picoc中的堆缓冲区溢出
OpenCOBOL中的崩溃:#1、#2
ProFTPD中的 DoS:#1 • #2
ImageIO (iOS/MacOS) 中的多个安全问题
htmldoc中的内存损坏
OpenDetex中的内存损坏
Yabasic中的内存损坏
Xfig中的内存损坏
LibreOffice中的内存损坏
ATasm中的内存损坏
oocborrt中的内存损坏 • CVE-2020-24753
LibRaw中的内存损坏
peg-markdown中的 NULL-ptr deref
MD4C中的未初始化值 • CVE-2020-26148
fwupd中的 17 个新错误
libvips中的断言
[ libocispec崩溃)(https://github.com/containers/libocispec/commit/6079cd9490096cfb46752bd7491c71253418a02c)
铁锈:
正则表达式 #1、#2、#3 中的恐慌()
h2 #1、#2、#3 中的恐慌()
睡眠解析器 #1 中的panic()
lewton #1 中的恐慌()
以太坊中的恐慌()/DoS-Parity #1
Parts 中的 crash() - GPT 分区管理器 #1
在 rust-bitcoin/rust-lightning #1 中崩溃
...以及更多
CIFASIS 的QuickFuzz
OSS-模糊
青蛙与绒毛
解释器模糊测试:by dyjakan
riufuzz : honggfuzz 具有类似 AFL 的 UI
h2fuzz :模糊 Apache 的 HTTP/2 实现
honggfuzz-dharma :带有 dharma 语法模糊器的 honggfuzz
Owl :一个发现并发攻击的系统
honggfuzz-docker-应用程序
FFW :蠕虫模糊测试
honggfuzz-rs :使用 Honggfuzz 模糊 Rust
足够粗糙的模糊
Monkey :HTTP 服务器
Killerbeez API :模块化模糊测试框架
FuzzM :基于灰盒模型的模糊测试框架
FuzzOS :由 Mozilla Security 提供
Android : 由 OHA 提供
QDBI :由 Quarkslab 提供
模糊器测试套件:由 Google 提供
DeepState :通过 Trail-of-Bits
Quiche-HTTP/3 :由 Cloudflare 提供
Bolero :模糊和属性测试框架
pwnmachine :用于 Linux 上漏洞利用开发的 vagrantfile
Quick700 :分析网络浏览器和网络服务器上模糊器的有效性
python-hfuzz :粘合 honggfuzz 和 python3
go-hfuzz : 粘合 honggfuzz 并 go
Magma :真实的模糊测试基准
任意模型测试:用于测试有状态模型的程序宏
Clusterfuzz :OSS-fuzz/Chrome-fuzzing 背后的模糊引擎
阿帕奇 HTTP 服务器
centos-模糊
FLUFFI :西门子完全本地化的即时模糊测试实用程序
Fluent Bit :Linux 的快速日志处理器和转发器
Samba :中小企业服务器
通用模糊测试 docker :由 nnamon 提供
Canokey Core :开源安全密钥的核心实现
uberfuzz2 :一个协作模糊测试框架
TiKV :分布式事务键值数据库
模糊监视器
libmutator :一个 C 库,旨在通过改变合法测试用例来生成随机测试用例
StatZone :DNS 区域文件分析器
shub-fuzz/honggfuzz :honggfuzz 的奇点图像
代码智能:模糊测试即服务
SpecFuzz :Spectre 漏洞的模糊测试
rcc :Rust C 编译器
EIP1962Fuzzing :各种 EIP1962 实现的模糊测试
wasm-fuzz :wasmer 的模糊测试,博客文章
propfuzz :将覆盖引导的模糊测试与基于属性的测试相结合的 Rust 工具 - 来自 Facebook
比特币核心:模糊测试
ESP32-Fuzzing-Framework :ESP32 应用程序的模糊测试框架
Fuzzbench :模糊器基准测试即服务
rumpsyscallfuzz :NetBSD Rump 内核模糊测试
libnbd :使用 honggfuzz 模糊 libnbd
EnsmallenGraph :Rust 库,用于在非常大的图上运行类似 node2vec 的加权随机游走
绿洲核心
bp7-rs :dtn 捆绑协议 7 的 Rust 实现
WHATWG :URL C++ 库
Xaya Core / Chimera :去中心化的开源信息注册和传输系统
OpenWRT :针对嵌入式设备的Linux操作系统
RcppDeepStateTools :特定于 Linux 的 R 包,具有用于运行 DeepState 测试工具的 R 函数
Materialise :用于实时应用程序的流数据库
Rust-比特币
Substrate :下一代区块链创新框架
Solana :快速、安全且抗审查的区块链
fwupd :一个旨在使 Linux 上的固件更新自动、安全、可靠的项目
polkadot :基于 Substrate 框架在 Rust 中实现 https://polkadot.network 节点
systemd :由 honggfuzz 测试
freetype :由 honggfuzz 测试
Ghostscript :由 honggfuzz 测试
Fuzzme :用于编程语言和模糊器的模糊测试模板
P0 :模糊图像IO
TrapFuzz :由 P0 提供
Rust 的模糊测试
和多个 Rust 项目
用户邮件列表:[email protected],使用此链接注册。
这不是 Google 官方产品