Ориентированный на безопасность, управляемый обратной связью, эволюционный, простой в использовании фаззер с интересными возможностями анализа. Подробную информацию об использовании Honggfuzz см. в документе «Использование».
Последняя стабильная версия: 2.6.
Журнал изменений
sudo apt-get install binutils-dev libunwind-dev libblocksruntime-dev clang make
Он многопроцессный и многопоточный : нет необходимости запускать несколько копий фаззера, поскольку honggfuzz может раскрыть потенциал всех доступных ядер ЦП с помощью одного запущенного экземпляра. Корпус файлов автоматически распределяется и улучшается между всеми фаззинговыми процессами.
Это невероятно быстро, когда используется режим постоянного фаззинга. Простую/пустую функцию LLVMFuzzerTestOneInput можно протестировать со скоростью до 1 месяца итераций в секунду на относительно современном процессоре (например, i7-6700K).
Имеет солидный послужной список обнаруженных ошибок безопасности: единственная (на сегодняшний день) уязвимость в OpenSSL с критической оценкой была обнаружена honggfuzz. Краткое изложение результатов на сегодняшний день см. в разделе «Трофеи».
Использует низкоуровневые интерфейсы для мониторинга процессов (например, ptrace в Linux и NetBSD). В отличие от других фаззеров, он обнаруживает и сообщает о перехваченных/игнорируемых сигналах сбоев (перехваченных и потенциально скрытых фаззинговой программой).
Простой в использовании, дайте ему простой каталог корпуса (может даже быть пустым для фаззинга на основе обратной связи), и он будет двигаться вверх, расширяя его за счет использования показателей покрытия на основе обратной связи.
Поддерживает несколько (больше, чем любой другой фазззер с обратной связью на основе покрытия) аппаратных (ЦП: подсчет ветвей/инструкций, 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+
если для компиляции honggfuzz используется Clang/LLVM - свяжите его с библиотекой 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
Удаленное чтение OOB в OpenSSL • CVE-2015-1789
Удаленное использование после освобождения (потенциальный RCE, рейтинг критический ) в OpenSSL • CVE-2016-6309
Удаленная запись OOB в OpenSSL • CVE-2016-7054
Удаленное OOB-чтение в OpenSSL • CVE-2017-3731
Использование неинициализированной памяти в OpenSSL
Сбой в LibreSSL
Неверное бесплатное использование в LibreSSL.
Использование неинициализированной памяти в BoringSSL
Повреждение памяти Adobe Flash • CVE-2015-0316
Множественные ошибки в библиотеке libtiff .
Множественные ошибки в библиотеке librsvg
Множественные ошибки в библиотеке poppler
Множественные уязвимости в IDA-Pro
Удаленный DoS в Crypto++ • CVE-2016-9939
Интерпретаторы языков программирования
PHP/Питон/Руби
PHP WDDX
PHP
Перл: №1, №2, №3
Двойное освобождение в LibXMP
Переполнение буфера кучи в SAPCAR • CVE-2017-8852
Сбои в либбассе
ФриТип 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 : №1, №2, №3, №4, №5.
НАСМ №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
Переполнение буфера кучи (или UAF) в MPV
Переполнение буфера кучи в picoc
Сбои в OpenCOBOL : #1, #2
DoS в ProFTPD : №1 • №2
Множественные проблемы безопасности в ImageIO (iOS/MacOS)
Повреждение памяти в htmldoc
Повреждение памяти в OpenDetex
Повреждение памяти в Yabasic
Повреждение памяти в Xfig
Повреждение памяти в LibreOffice
Повреждение памяти в ATasm
Повреждение памяти в oocborrt • CVE-2020-24753
Повреждение памяти в LibRaw
Разыменование NULL-ptr в привязке уценки
Неинициализированное значение в MD4C • CVE-2020-26148.
17 новых ошибок в fwupd
Утверждение в libvips
[Сбой в libocispec )(https://github.com/containers/libocispec/commit/6079cd9490096cfb46752bd7491c71253418a02c)
Ржавчина :
паника() в регулярном выражении №1, №2, №3
паника() в h2 #1, #2, #3
паника() в анализаторе сна №1
паника() в Льютоне #1
паника()/DoS в Ethereum-Parity #1
сбой() в Parts — менеджер разделов GPT №1
вылетает в Rust-Bitcoin/Rust-Lightning #1
... и многое другое
QuickFuzz от CIFASIS
OSS-Fuzz
Лягушка и пух
переводчики фаззинг : автор dyjakan
riufuzz : honggfuzz с пользовательским интерфейсом в стиле AFL
h2fuzz : фаззинг реализации HTTP/2 в Apache.
honggfuzz-dharma : honggfuzz с фаззером грамматики дхармы
Owl : система обнаружения параллельных атак
honggfuzz-docker-apps
FFW : фаззинг для червей
honggfuzz-rs : фаззинг Rust с помощью Honggfuzz
грубый-пушок
Обезьяна : HTTP-сервер.
Killerbeez API : модульный фреймворк фаззинга
FuzzM : платформа фаззинга на основе модели серого ящика.
FuzzOS : от Mozilla Security.
Android : от OHA
QDBI : Quarkslab
пакет тестов fuzzer : от Google
DeepState : по следу битов
Quiche-HTTP/3 : от Cloudflare
Болеро : структура фаззинга и тестирования свойств
pwnmachine : бродячий файл для разработки эксплойтов в Linux.
Quick700 : анализ эффективности фаззеров в веб-браузерах и веб-серверах
python-hfuzz : склеивание honggfuzz и python3
go-hfuzz : приклеиваем honggfuzz и вперед
Магма : основной тест фаззинга
произвольные-модели-тесты : процедурный макрос для тестирования моделей с сохранением состояния.
Clusterfuzz : движок фаззинга, лежащий в основе OSS-фазза/Chrome-фаззинга
HTTP-сервер Apache
Centos-Fuzz
FLUFFI : полностью локализованная утилита для мгновенного фаззинга от Siemens
Fluent Bit : быстрый процессор журналов и сервер пересылки для Linux.
Samba : SMB-сервер.
универсальный-fuzzing-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
libnbd : фаззинг libnbd с помощью honggfuzz
EnsmallenGraph : библиотека Rust для запуска взвешенных случайных блужданий, подобных node2vec, на очень больших графах.
Оазис Ядро
bp7-rs : реализация протокола пакета dtn 7 на Rust.
WHATWG : URL-библиотека C++.
Xaya Core / Chimera : децентрализованная система регистрации и передачи информации с открытым исходным кодом.
OpenWRT : операционная система Linux, предназначенная для встроенных устройств.
RcppDeepStateTools : пакет R для Linux с функциями R для запуска тестового пакета DeepState.
Materialize : потоковая база данных для приложений реального времени.
Руст-Биткоин
Субстрат : структура нового поколения для инноваций в блокчейне.
Solana : быстрый, безопасный и устойчивый к цензуре блокчейн.
fwupd : проект, целью которого является сделать обновление прошивки в Linux автоматическим, безопасным и надежным.
polkadot : реализация узла https://polkadot.network в Rust на основе фреймворка Substrate.
systemd : проверен honggfuzz
freetype : проверено honggfuzz
Ghostscript : проверен honggfuzz
Fuzzme : шаблоны фаззинга для языков программирования и фаззеров.
P0 : Фаззинг ImageIO
TrapFuzz : автор P0
Фаззтест Rust
и несколько проектов Rust
Список рассылки пользователей: [email protected], зарегистрируйтесь по этой ссылке.
Это НЕ официальный продукт Google.