Mastodon
Zuletzt aktualisiert am
Phoronix Linux News
Michael Larabel

Google entwickelt KFuzzTest zum Fuzzing interner Linux-Kernelfunktionen

 Die Google-Ingenieure haben heute KFuzzTest vorgestellt, ein neues, leichtgewichtiges Framework für In-Kernel-Fuzz-Ziele für interne Kernel-Funktionen. KFuzzTest zielt darauf ab, das Ausprobieren von Linux-Kernel-Codepfaden zu erleichtern, die von der Systemaufrufgrenze aus nur schwer zu erreichen sind.
Eine Übersetzung von 🇬🇧 Phoronix.com

Google-Ingenieur Ethan Graham beschreibt KFuzzTest als:

 

Diese Patch-Reihe stellt KFuzzTest vor, ein leichtgewichtiges Framework zur Erstellung von Fuzz-Zielen für interne Kernel-Funktionen im Kernel.

Die Hauptmotivation für KFuzzTest ist die Vereinfachung des Fuzzings von Low-Level-Funktionen, die relativ zustandslos sind (z. B. Daten-Parser, Formatkonverter) und sich nur schwer von der Syscall-Grenze aus effektiv ausführen lassen. Es ist für das In-Situ-Fuzzing von Kernel-Code gedacht, ohne dass dieser als separate Userspace-Bibliothek erstellt werden muss oder seine Abhängigkeiten ausgelagert werden müssen. Mithilfe einer einfachen makrobasierten API können Entwickler ein neues Fuzz-Target mit minimalem Boilerplate-Code hinzufügen.

Das Kerndesign besteht aus drei Hauptteilen:

1. Ein `FUZZ_TEST(name, struct_type)` Makro, das es Entwicklern erlaubt, einen Fuzz-Test einfach zu definieren.
2. Ein binäres Eingabeformat, das es einem Userspace-Fuzzer erlaubt, komplexe, zeigerreiche C-Strukturen in einen einzigen Puffer zu serialisieren.
3. Metadaten für Testziele, Einschränkungen und Anmerkungen, die in speziellen ELF-Abschnitten ausgegeben werden, damit sie von Userspace-Tools gefunden und überprüft werden können. Diese sind in ".kfuzztest_{targets, constraints, annotations}" zu finden.

Der KFuzzTest-Code in seiner jetzigen Form umfasst den Framework-Code selbst, die Dokumentation einer benutzerorientierten API und Datenstrukturen sowie einige Beispiel-Fuzz-Targets für den Linux-Kernel.

Diejenigen, die mehr über diese neue KFuzzTest-Initiative für den Linux-Kernel erfahren möchten, finden in diesem LKML-Thread alle Details.

 

Unterstützen Sie Michael

Ein Service von s3n🧩net

Comments