Ein sicherheitsorientierter, rückkopplungsgesteuerter, evolutionärer, einfach zu bedienender Fuzzer mit interessanten Analysemöglichkeiten. Eine Einführung in die Verwendung von Honggfuzz finden Sie im Nutzungsdokument.
Neueste stabile Version: 2.6
Änderungsprotokoll
sudo apt-get install binutils-dev libunwind-dev libblocksruntime-dev clang make
Es ist Multiprozess- und Multithread-fähig : Sie müssen nicht mehrere Kopien Ihres Fuzzers ausführen, da Honggfuzz das Potenzial aller Ihrer verfügbaren CPU-Kerne mit einer einzigen laufenden Instanz freisetzen kann. Der Dateikorpus wird automatisch zwischen allen Fuzzing-Prozessen gemeinsam genutzt und verbessert.
Im Persistent-Fuzzing-Modus geht es rasend schnell. Eine einfache/leere LLVMFuzzerTestOneInput -Funktion kann mit bis zu 1 Monat Iterationen pro Sekunde auf einer relativ modernen CPU (z. B. i7-6700K) getestet werden.
Verfügt über eine solide Erfolgsbilanz bei aufgedeckten Sicherheitslücken: Die einzige (bislang) Schwachstelle in OpenSSL mit der kritischen Bewertung wurde von honggfuzz entdeckt. Eine Zusammenfassung der bisherigen Erkenntnisse finden Sie im Abschnitt „Trophäen“.
Verwendet Low-Level-Schnittstellen zur Überwachung von Prozessen (z. B. Ptrace unter Linux und NetBSD). Im Gegensatz zu anderen Fuzzern erkennt und meldet es entführte/ignorierte Signale von Abstürzen (die von einem Fuzz-Programm abgefangen und möglicherweise verborgen werden).
Einfach zu verwenden, füttern Sie es mit einem einfachen Korpusverzeichnis (kann für das Feedback-gesteuerte Fuzzing sogar leer sein), und es arbeitet sich nach oben und erweitert es durch die Verwendung von Feedback-basierten Abdeckungsmetriken.
Unterstützt mehrere (mehr als jeder andere abdeckungsbasierte, rückkopplungsgesteuerte Fuzzer), hardwarebasierte (CPU: Branch/Instruction Counting, Intel BTS , Intel PT ) und softwarebasierte, rückkopplungsgesteuerte Fuzzing-Modi. Sehen Sie sich auch den neuen Qemu-Modus für Blackbox-Binär-Fuzzing an.
Funktioniert (zumindest) unter GNU/Linux, FreeBSD, NetBSD, Mac OS X, Windows/CygWin und Android.
Unterstützt den persistenten Fuzzing-Modus (langlebiger Prozess, der wiederholt eine Fuzzing-API aufruft). Mehr dazu finden Sie hier.
Es wird mit dem Beispielverzeichnis geliefert, das reale Fuzz-Setups für weit verbreitete Software (z. B. Apache HTTPS, OpenSSL, libjpeg usw.) enthält.
Bietet einen Korpusminimierungsmodus .
Linux – Die BFD-Bibliothek (libbfd-dev) und libunwind (libunwind-dev/libunwind8-dev), clang-5.0 oder höher für softwarebasierte Abdeckungsmodi
FreeBSD – gmake, clang-5.0 oder neuer
NetBSD – gmake, clang, capstone, libBlocksRuntime
Android – Android SDK/NDK. Sehen Sie sich auch dieses ausführliche Dokument zum Erstellen und Ausführen an
Windows - CygWin
Darwin/OS X – Xcode 10.8+
Wenn Clang/LLVM zum Kompilieren von Honggfuzz verwendet wird, verknüpfen Sie es mit der BlocksRuntime-Bibliothek (libblocksruntime-dev).
Honggfuzz wurde verwendet, um einige interessante Sicherheitsprobleme in wichtigen Softwarepaketen zu finden; Eine unvollständige Liste:
Dutzende Sicherheitsprobleme durch das OSS-Fuzz-Projekt
Remote-Absturz vor der Authentifizierung in OpenSSH
Apache HTTPD
Remote-Absturz in mod_http2 • CVE-2017-7659
Use-after-free in mod_http2 • CVE-2017-9789
Speicherleck in mod_auth_digest • CVE-2017-9788
Außerhalb des gebundenen Zugriffs • CVE-2018-1301
Schreiben Sie nachher kostenlos in HTTP/2 • CVE-2018-1302
Außerhalb des zulässigen Bereichs: • CVE-2018-1303
Verschiedene SSL- Bibliotheken
Remote-OOB-Lesen in OpenSSL • CVE-2015-1789
Remote Use-after-Free (potenzieller RCE, als kritisch eingestuft) in OpenSSL • CVE-2016-6309
Remote-OOB-Schreiben in OpenSSL • CVE-2016-7054
Remote-OOB-Lesen in OpenSSL • CVE-2017-3731
Nicht initialisierte Mem-Nutzung in OpenSSL
Absturz in LibreSSL
Ungültig kostenlos in LibreSSL
Nicht initialisierte Mem-Nutzung in BoringSSL
Beschädigung des Adobe Flash- Speichers • CVE-2015-0316
Mehrere Fehler in der libtiff -Bibliothek
Mehrere Fehler in der Bibliothek librsvg
Mehrere Fehler in der Poppler -Bibliothek
Mehrere ausnutzbare Fehler in IDA-Pro
Remote-DoS in Crypto++ • CVE-2016-9939
Programmiersprachendolmetscher
PHP/Python/Ruby
PHP WDDX
PHP
Perl: #1, #2, #3
Doppelt frei in LibXMP
Heap-Pufferüberlauf in SAPCAR • CVE-2017-8852
Abstürze in libbass
FreeType 2 :
CVE-2010-2497
CVE-2010-2498
CVE-2010-2499
CVE-2010-2500
CVE-2010-2519
CVE-2010-2520
CVE-2010-2527
Probleme mit der Stapelbeschädigung im Windows OpenType-Parser: Nr. 1, Nr. 2, Nr. 3
Endlosschleife in der NGINX-Einheit
Ein paar Probleme in der MATLAB MAT File I/O Library : #1, #2, #3, #4, #5
NASM Nr. 1, Nr. 2, Nr. 3, Nr. 4, Nr. 5, Nr. 6, Nr. 7, Nr. 8, Nr. 9, Nr. 10
Samba tdbdump + tdbtool, #2, #3, #4, #5, #6 CVE-2019-14907 CVE-2020-10745 CVE-2021-20277 LPRng_time
Absturz in djvulibre
Mehrere Abstürze in VLC
Pufferüberlauf in ClassiCube
Heap-Pufferüberlauf (oder UAF) in MPV
Heap-Pufferüberlauf in Picoc
Abstürze in OpenCOBOL : Nr. 1, Nr. 2
DoS in ProFTPD : #1 • #2
Mehrere Sicherheitsprobleme in ImageIO (iOS/MacOS)
Speicherbeschädigung im HTMLdoc
Speicherbeschädigung in OpenDetex
Speicherbeschädigung in Yabasic
Speicherbeschädigung in Xfig
Speicherbeschädigung in LibreOffice
Speicherbeschädigung in ATasm
Speicherbeschädigung in oocborrt • CVE-2020-24753
Speicherbeschädigung in LibRaw
NULL-ptr-Deref im Peg-Markdown
Nicht initialisierter Wert in MD4C • CVE-2020-26148
17 neue Fehler in fwupd
Behauptung in libvips
[Absturz in libocispec )(https://github.com/containers/libocispec/commit/6079cd9490096cfb46752bd7491c71253418a02c)
Rost :
panic() in Regex Nr. 1, Nr. 2, Nr. 3
panic() in h2 #1, #2, #3
panic() im Schlafparser Nr. 1
panic() in Lewton #1
panic()/DoS in Ethereum-Parität #1
crash() in Parts – ein GPT-Partitionsmanager Nr. 1
stürzt in Rust-Bitcoin/Rust-Lightning #1 ab
... und mehr
QuickFuzz von CIFASIS
OSS-Fuzz
Frosch und Flaum
Dolmetscher fuzzing : von Dyjakan
riufuzz : Honggfuzz mit AFL-ähnlicher Benutzeroberfläche
h2fuzz : Fuzzing der HTTP/2-Implementierung von Apache
Honggfuzz-Dharma : Honggfuzz mit Dharma-Grammatik-Fuzzer
Owl : ein System zur Erkennung von Parallelitätsangriffen
honggfuzz-docker-apps
FFW : Fuzzing für Würmer
honggfuzz-rs : Rust mit Honggfuzz fuzzen
rau genug-Flaum
Monkey : ein HTTP-Server
Killerbeez API : ein modulares Fuzzing-Framework
FuzzM : ein auf Gray-Box-Modellen basierendes Fuzzing-Framework
FuzzOS : von Mozilla Security
Android : von OHA
QDBI : von Quarkslab
fuzzer-test-suite : von Google
DeepState : von Trail-of-Bits
Quiche-HTTP/3 : von Cloudflare
Bolero : Fuzz- und Eigenschaftstest-Framework
pwnmachine : eine Vagrant-Datei für die Exploit-Entwicklung unter Linux
Quick700 : Analyse der Wirksamkeit von Fuzzern in Webbrowsern und Webservern
python-hfuzz : Honggfuzz und Python3 zusammenkleben
go-hfuzz : Honggfuzz kleben und los
Magma : ein Ground-Truth-Fuzzing-Benchmark
Arbiträrmodelltests : ein prozedurales Makro zum Testen zustandsbehafteter Modelle
Clusterfuzz : die Fuzzing-Engine hinter OSS-Fuzz/Chrome-Fuzzing
Apache HTTP-Server
Centos-Fuzz
FLUFFI : Vollständig lokalisiertes Dienstprogramm für sofortiges Fuzzing von Siemens
Fluent Bit : ein schneller Protokollprozessor und Forwarder für Linux
Samba : ein SMB-Server
universal-fuzzing-docker : von nnamon
Canokey Core : Kernimplementierungen eines sicheren Open-Source-Schlüssels
uberfuzz2 : ein kooperatives Fuzzing-Framework
TiKV : eine verteilte transaktionale Schlüsselwertdatenbank
Fuzz-Monitor
libmutator : eine C-Bibliothek, die zufällige Testfälle durch Mutation legitimer Testfälle generieren soll
StatZone : ein DNS-Zonendateianalysator
shub-fuzz/honggfuzz : Singularitätsbild für honggfuzz
Code Intelligence : Fuzzing-as-a-Service
SpecFuzz : Fuzzing für Spectre-Schwachstellen
rcc : ein Rust C-Compiler
EIP1962Fuzzing : Fuzzy-Test verschiedener EIP1962-Implementierungen
wasm-fuzz : Fuzzing von Wasmer, Blogbeitrag
propfuzz : Rust-Tools zur Kombination von Coverage-gesteuertem Fuzzing mit eigenschaftsbasierten Tests – von Facebook
Bitcoin Core : Fuzzing
ESP32-Fuzzing-Framework : Ein Fuzzing-Framework für ESP32-Anwendungen
Fuzzbench : Fuzzer-Benchmarking als Service
rumpsyscallfuzz : NetBSD Rump Kernel Fuzzing
libnbd : Fuzzing von libnbd mit honggfuzz
EnsmallenGraph : Rust-Bibliothek zum Ausführen von node2vec-ähnlichen gewichteten Zufallswanderungen für sehr große Diagramme
Oasenkern
bp7-rs : Rust-Implementierung des DTN-Bundle-Protokolls 7
WHATWG : URL der C++-Bibliothek
Xaya Core / Chimera : Ein dezentrales Open-Source-System zur Registrierung und Übertragung von Informationen
OpenWRT : Ein Linux-Betriebssystem für eingebettete Geräte
RcppDeepStateTools : Ein Linux-spezifisches R-Paket mit R-Funktionen zum Ausführen der DeepState-Testumgebung
Materialise : Eine Streaming-Datenbank für Echtzeitanwendungen
Rust-Bitcoin
Substrat : Ein Framework der nächsten Generation für Blockchain-Innovationen
Solana : Eine schnelle, sichere und zensurresistente Blockchain
fwupd : Ein Projekt, das darauf abzielt, die Aktualisierung der Firmware unter Linux automatisch, sicher und zuverlässig zu machen
polkadot : Implementierung eines https://polkadot.network-Knotens in Rust basierend auf dem Substrate-Framework
systemd : wird von honggfuzz getestet
Freetype : wird von honggfuzz getestet
Ghostscript : wurde von honggfuzz getestet
Fuzzme : Fuzzing-Vorlagen für Programmiersprachen und Fuzzer
P0 : Fuzzing ImageIO
TrapFuzz : von P0
Rusts Fuzztest
und mehrere Rust-Projekte
Benutzer-Mailingliste: [email protected], melden Sie sich über diesen Link an.
Dies ist KEIN offizielles Google-Produkt