KI für Ihr Unternehmen – Jetzt Demo buchen

FuzzCoder Einsatz großer Sprachmodelle zur Optimierung von Fuzzing Tests

Kategorien:
No items found.
Freigegeben:
September 9, 2024

Artikel jetzt als Podcast anhören

FuzzCoder: Byte-level Fuzzing Test via Large Language Model

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
Was bedeutet das?
Mindverse vs ChatGPT Plus Widget

Warum Mindverse Studio?

Entdecken Sie die Vorteile gegenüber ChatGPT Plus

Sie nutzen bereits ChatGPT Plus? Das ist ein guter Anfang! Aber stellen Sie sich vor, Sie hätten Zugang zu allen führenden KI-Modellen weltweit, könnten mit Ihren eigenen Dokumenten arbeiten und nahtlos im Team kollaborieren.

🚀 Mindverse Studio

Die professionelle KI-Plattform für Unternehmen – leistungsstärker, flexibler und sicherer als ChatGPT Plus. Mit über 50 Modellen, DSGVO-konformer Infrastruktur und tiefgreifender Integration in Unternehmensprozesse.

ChatGPT Plus

❌ Kein strukturierter Dokumentenvergleich

❌ Keine Bearbeitung im Dokumentkontext

❌ Keine Integration von Unternehmenswissen

VS

Mindverse Studio

✅ Gezielter Dokumentenvergleich mit Custom-Prompts

✅ Kontextbewusste Textbearbeitung im Editor

✅ Wissensbasierte Analyse & Zusammenfassungen

📚 Nutzen Sie Ihr internes Wissen – intelligent und sicher

Erstellen Sie leistungsstarke Wissensdatenbanken aus Ihren Unternehmensdokumenten.Mindverse Studio verknüpft diese direkt mit der KI – für präzise, kontextbezogene Antworten auf Basis Ihres spezifischen Know-hows.DSGVO-konform, transparent und jederzeit nachvollziehbar.

ChatGPT Plus

❌ Nur ein Modellanbieter (OpenAI)

❌ Keine Modellauswahl pro Use Case

❌ Keine zentrale Modellsteuerung für Teams

VS

Mindverse Studio

✅ Zugriff auf über 50 verschiedene KI-Modelle

✅ Modellauswahl pro Prompt oder Assistent

✅ Zentrale Steuerung auf Organisationsebene

🧠 Zugang zu allen führenden KI-Modellen – flexibel & anpassbar

OpenAI GPT-4: für kreative Texte und allgemeine Anwendungen
Anthropic Claude: stark in Analyse, Struktur und komplexem Reasoning
Google Gemini: ideal für multimodale Aufgaben (Text, Bild, Code)
Eigene Engines: individuell trainiert auf Ihre Daten und Prozesse

ChatGPT Plus

❌ Keine echte Teamkollaboration

❌ Keine Rechte- oder Rollenverteilung

❌ Keine zentrale Steuerung oder Nachvollziehbarkeit

VS

Mindverse Studio

✅ Teamübergreifende Bearbeitung in Echtzeit

✅ Granulare Rechte- und Freigabeverwaltung

✅ Zentrale Steuerung & Transparenz auf Organisationsebene

👥 Kollaborative KI für Ihr gesamtes Unternehmen

Nutzen Sie Mindverse Studio als zentrale Plattform für abteilungsübergreifende Zusammenarbeit.Teilen Sie Wissen, erstellen Sie gemeinsame Workflows und integrieren Sie KI nahtlos in Ihre täglichen Prozesse – sicher, skalierbar und effizient.Mit granularen Rechten, transparenter Nachvollziehbarkeit und Echtzeit-Kollaboration.

Bereit für den nächsten Schritt?

Sehen Sie Mindverse Studio in Aktion. Buchen Sie eine persönliche 30-minütige Demo.

🎯 Kostenlose Demo buchen

Wie können wir Ihnen heute helfen?

Das Expertenteam von Mindverse freut sich darauf, Ihnen zu helfen.
Herzlichen Dank! Deine Nachricht ist eingegangen!
Oops! Du hast wohl was vergessen, versuche es nochmal.

🚀 Neugierig auf Mindverse Studio?

Lernen Sie in nur 30 Minuten kennen, wie Ihr Team mit KI mehr erreichen kann – live und persönlich.

🚀 Demo jetzt buchen