一個面向安全、回饋驅動、進化、易於使用的模糊器,具有有趣的分析選項。有關 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 官方產品