FuzzCoder Einsatz großer Sprachmodelle zur Optimierung von Fuzzing Tests
Mindverse News
KI-gestützt erstellt 9 Quellen Arbeitsweise
// Inhalt · 11 Abschnitte
FuzzCoder: Byte-Level Fuzzing-Test mittels großer Sprachmodelle
Einleitung
Fuzzing ist eine wichtige dynamische Programmanalysetechnik, die entwickelt wurde, um Schwachstellen in komplexer Software zu finden. Dabei wird ein Zielprogramm mit sorgfältig erstellten Eingaben konfrontiert, um Abstürze, Speicherüberläufe, Speicherfehler und Ausnahmen zu provozieren. Die effiziente Generierung wirksamer bösartiger Eingaben bleibt jedoch eine herausfordernde offene Frage, da die besten Ansätze oft auf gleichmäßigen zufälligen Mutationen bereits bestehender gültiger Eingaben beruhen.
FuzzCoder: Ein neuartiger Ansatz
In dieser Arbeit wird FuzzCoder vorgestellt, ein neuer Ansatz, der große, feinabgestimmte Sprachmodelle (LLMs) nutzt, um die Effizienz des Fuzzings zu verbessern. Dieser Ansatz lernt Muster aus erfolgreichen Angriffsinputs, um zukünftige Fuzzing-Explorationen zu leiten. Ein Rahmenwerk wurde entwickelt, das Code-LLMs nutzt, um den Mutationsprozess von Eingaben beim Fuzzing zu steuern und diesen als Sequenz-zu-Sequenz-Modellierungsaufgabe zu formulieren, bei der das LLM eine Byte-Sequenz erhält und eine mutierte Version ausgibt.
Feinabstimmung auf Fuzz-Instruct
FuzzCoder wurde auf Fuzz-Instruct, einem benutzerdefinierten Instruktionsdatensatz, der aus erfolgreichen Fuzzing-Historien mit heuristischen Fuzzing-Tools gesammelt wurde, feinabgestimmt. Dies ermöglicht FuzzCoder, optimale Mutationsorte und -strategien innerhalb von Eingabedateien vorherzusagen, wodurch die Wahrscheinlichkeit erhöht wird, anormales Programmverhalten auszulösen.
Integration mit AFL
FuzzCoder wurde in AFL (American Fuzzy Lop) integriert und seine Leistung wurde über verschiedene Eingabeformate hinweg bewertet, darunter ELF, JPG, MP3 und XML. Die experimentellen Ergebnisse zeigen signifikante Verbesserungen in zwei Schlüsselmetriken: dem effektiven Anteil der Mutation (EPM) und der Anzahl der erkannten Abstürze (NC).
Methodik
Die Methodik hinter FuzzCoder umfasst:
- Die Formulierung des Fuzzing-Tests als Sequenz-zu-Sequenz-Paradigma, bei dem das Generierungsmodell anfällige Positionen durch die Auswahl geeigneter Mutationspositionen und -strategien angreift. - Die Konstruktion eines vollständigen Rahmens zur Feinabstimmung der Code-LLMs mit Hilfe des gesammelten Instruktionskorpus Fuzz-Instruct. - Die Evaluation der Leistung verschiedener Modelle auf einem Fuzzing-Test-Benchmark Fuzz-Bench, der aus 8 Programmen besteht, die verschiedene Datenformate akzeptieren (z.B. ELF, JPG, MP3, und XML).Ergebnisse
Die experimentellen Ergebnisse auf dem erstellten Benchmark Fuzz-Bench (Simulation mit AFL) zeigen, dass der feinabgestimmte FuzzCoder den effektiven Anteil der Mutation (EPM) signifikant verbessert und mehr Programmabstürze im Vergleich zu den bisherigen Baselines auslöst.
Fuzzing-Test: Eine Vorstudie
Fuzzing ist eine robuste Softwaretesttechnik, die darauf abzielt, Schwachstellen und Fehler in Computerprogrammen aufzudecken, indem sie einer Flut unerwarteter und oft ungültiger Eingaben ausgesetzt werden. Der Fuzzing-Test kann mathematisch wie folgt dargestellt werden:
ℱ(𝑇, 𝑔(𝑥)) = 𝑅
wobei ℱ(⋅,⋅) den Fuzzing-Prozess darstellt, der die Mutation von Eingabetestfällen empfängt. 𝑇 ist die Zielsoftware oder das Programm, das dem Fuzzing-Test unterzogen wird. 𝐼 repräsentiert die Eingabetestfälle, die typischerweise fehlerhafte, unerwartete oder zufällige Daten sind. 𝑔(𝑥) ist das Mutationsformat der ursprünglichen Eingabe 𝑥. 𝑅 steht für die während des Fuzzing-Tests erhaltenen Ergebnisse oder Beobachtungen, zu denen Systemabstürze, Fehlermeldungen oder andere unerwartete Verhaltensweisen in der Zielsoftware gehören können.
American Fuzzy Lop (AFL)
American Fuzzy Lop (AFL) ist ein weit verbreitetes automatisiertes Tool zur Schwachstellenanalyse, das Sicherheitslücken in Softwareprogrammen durch Fuzzy-Testing-Techniken findet. Fuzzy-Testing ist eine Black-Box-Testmethode, die zufällige oder halbzufällige Daten in Programmeingaben injiziert, um anomales Verhalten und potenzielle Schwachstellen im Programm zu erkennen. In AFL bezieht sich die Mutation auf die Generierung neuer Fuzzy-Testeingaben durch Modifikation der Eingabebeispiele, was eine Kernkomponente des AFL-Fuzzy-Tests darstellt. Die Mutationsstrategie verwendet eine Reihe zufälliger und halbzufälliger Mutationstechniken, um eine Vielfalt an Testeingaben zu erstellen.
Evaluierung und Ergebnisse
Unser vorgeschlagener Ansatz wurde auf dem Benchmark Fuzz-Bench, bestehend aus 8 Programmen (NM_ELF, READ_ELF, OBJDUMP_ELF, LINT_XML, MP3GAIN_MP3, IMAGEMAGICK_GIF, SPLIT_TIFF, und TRAN_JPEG) evaluiert. Diese Programme akzeptieren verschiedene Eingabeformate wie ELF, XML, MP3 und GIF. FuzzCoder verbessert die Zeilenabdeckung und die Zweigabdeckung im Vergleich zu den vorherigen starken Baselines signifikant. Darüber hinaus beobachten wir, dass FuzzCoder aufgrund der effektiven Mutationsvorhersage der Code-LLM mehr neue Pfade oder die Häufigkeit von Codeblöcken während des Fuzz-Tests auslöst.
Schlussfolgerung
FuzzCoder stellt einen bedeutenden Fortschritt in der Fuzzing-Technologie dar, indem es die Fähigkeiten großer Sprachmodelle nutzt, um den Mutationsprozess von Eingaben zu optimieren. Durch die Integration mit bestehenden Fuzzing-Frameworks wie AFL zeigt FuzzCoder erhebliches Potenzial zur Verbesserung der Detektion von Schwachstellen und zur Erhöhung der Effizienz des Fuzzing-Prozesses.
Bibliographie
- https://arxiv.org/abs/2409.01944
- https://arxiv.org/html/2409.01944
- https://github.com/wcventure/FuzzingPaper
- https://twitter.com/gm8xx8/status/1831185428575056325
- https://wcventure.github.io/FuzzingPaper/
- https://www.researchgate.net/publication/381404448_Exploring_Fuzzing_as_Data_Augmentation_for_Neural_Test_Generation
- https://www.cs.ru.nl/masters-theses/2023/E_Tamminga___Utilizing_large_language_models_for_fuzzing.pdf
- https://chatpaper.com/chatpaper/paper/54880
- https://abhikrc.com/pdf/NDSS24.pdf
//Nächster Artikel
Open Source
Direkteinreichung von Fachpublikationen: Workflows auf Hugging Face und regulatorische Vorgaben im Open-Access-VerlagswesenAnalyse der Einreichungsprozesse für Forschungsarbeiten über Hugging Face Daily Papers sowie der KI- und Lizenzvorgaben im Open-Access-Verlagswesen.

// Artikel teilen
// Dranbleiben
Mindverse News folgen
Neue Meldungen erhalten Sie über unseren RSS-Feed oder auf LinkedIn.
Passend dazu in Mindverse Studio
- KI-Chat mit allen führenden ModellenGPT, Claude und Gemini in einer Oberfläche — mit Websuche und Quellenangaben.
- Prozesse mit KI-Workflows automatisierenVisuelle Automatisierung wiederkehrender Abläufe — mit Freigabeschritten.
- Studio mit Ihren Tools verbindenIntegrationen für Microsoft 365, Google Workspace, Slack, Notion und mehr.
Recherchieren Sie KI-News wie diese selbst — mit Mindverse Studio.
7 Tage kostenlos testen — ohne Kreditkarte, mit 200 Credits. Für Fragen zur Umsetzung buchen Sie eine persönliche Demo.
//Chronik
Aus dem Archiv · rund um den 9. September 2024
← Davor erschienen