← Neueste Arbeiten
💻 computer science

Automatic, Expressive, and Scalable Fuzzing with Stitching

Die Arbeit stellt STITCH vor, ein automatisiertes Fuzzing-System, das durch eine neuartige „Stitching"-Technik dynamisch API-Interaktionen zusammenfügt und durch den Einsatz von LLMs sowie eine präzise Typsystem-Überwachung sowohl die Abdeckung als auch die Fehlerfindungsrate bei Open-Source-Projekten signifikant verbessert.

Ursprüngliche Autoren: Harrison Green, Fraser Brown, Claire Le Goues

Veröffentlicht 2026-02-24
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Ursprüngliche Autoren: Harrison Green, Fraser Brown, Claire Le Goues

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stell dir vor, du hast einen riesigen, komplizierten Werkzeugkasten (eine Software-Bibliothek), der voller verschiedener Werkzeuge (Funktionen) ist. Um herauszufinden, ob dieser Werkzeugkasten kaputt ist oder ob er Dinge tut, die er nicht sollte, musst du die Werkzeuge in verschiedenen Kombinationen benutzen.

Das Problem ist: Es gibt so viele Möglichkeiten, diese Werkzeuge zu kombinieren, dass es unmöglich ist, alles manuell zu testen. Und wenn man es automatisch macht, stolpert man oft über Dinge, die gar keine echten Fehler sind, sondern nur dumme Bedienfehler (wie wenn man versucht, einen Nagel mit einem Löffel zu schlagen).

Hier kommt STITCH ins Spiel. Es ist wie ein super-intelligenter, selbstlernender Handwerker, der automatisch herausfindet, wie man die Werkzeuge richtig benutzt, um die wahren Schwachstellen zu finden.

Hier ist die einfache Erklärung, wie das funktioniert:

1. Das Problem: Der "Werkzeugkasten-Chaos"

Früher haben Computerprogramme (Fuzzer) einfach wild herumgetestet. Sie haben Werkzeuge in zufälliger Reihenfolge benutzt.

  • Das Problem: Die meisten Kombinationen sind Unsinn. Wenn du versuchst, ein Fenster zu öffnen, bevor du das Haus gebaut hast, stürzt das Programm ab. Das ist aber kein echter Fehler im Hausbau, sondern nur, weil du die Reihenfolge falsch gemacht hast.
  • Die Folge: Die alten Programme verbrachten 99% ihrer Zeit damit, diese "dummen" Abstürze zu finden, und verpassten die echten, gefährlichen Fehler.

2. Die Lösung: "Stitching" (Das Nähen)

Stell dir vor, du hast viele kleine, fertige Bauteile (wie Lego-Steine). Jedes Bauteil ist eine korrekte Anweisung, wie man ein einzelnes Werkzeug benutzt.

  • Die Idee: Anstatt alles neu zu erfinden, "näht" STITCH diese Bauteile dynamisch zusammen.
  • Die Magie: Ein normaler Fuzzer würde versuchen, Bauteile zusammenzustecken, egal ob sie passen. STITCH hat aber ein Gedächtnis. Es weiß: "Oh, ich habe gerade ein Fenster gebaut. Ich darf jetzt nicht versuchen, ein Dach auf ein Loch zu setzen."

3. Der "Geheimtipp": Das Metadaten-Notizbuch

Das Geniale an STITCH ist eine Technik namens "Extrinsic Typestate".

  • Stell dir vor, jedes Werkzeug hat ein kleines Notizbuch dabei. Wenn du ein Werkzeug benutzt, schreibst du etwas in das Notizbuch (z. B. "Dieses Werkzeug ist jetzt offen" oder "Dieses Werkzeug gehört zu Haus A").
  • Bevor STITCH zwei Bauteile zusammenfügt, liest es die Notizbücher.
    • Beispiel: "Kann ich dieses Werkzeug jetzt benutzen? Nein, das Notizbuch sagt, es ist noch nicht geöffnet." -> Stopp! STITCH probiert es gar nicht erst.
    • Ergebnis: Es verschwendet keine Zeit mit Unsinn. Es sucht nur nach Kombinationen, die sinnvoll sind, aber trotzdem abstürzen könnten. Das ist wie ein Detektiv, der nur die Türen aufsucht, die auch wirklich verschlossen sind, anstatt gegen jede Wand zu klopfen.

4. Der KI-Assistent (LLM)

Wie findet STITCH diese Bauteile und Notizbücher? Es nutzt eine Künstliche Intelligenz (KI), die wie ein sehr gelehriger Student ist.

  • Die KI liest die Handbücher und Kommentare des Werkzeugkastens.
  • Sie schreibt automatisch die Anweisungen (den Code) für die Bauteile.
  • Wenn etwas schiefgeht (z. B. der Code kompiliert nicht oder es gibt einen falschen Absturz), korrigiert die KI ihre Anweisungen selbstständig. Sie lernt aus Fehlern, ohne dass ein Mensch eingreifen muss.

5. Was hat das gebracht? (Die Ergebnisse)

Die Forscher haben STITCH auf 1.365 verschiedene Open-Source-Projekte losgelassen – völlig automatisch, ohne dass jemand Hand angelegt hat.

  • Das Ergebnis: STITCH hat 131 neue, echte Fehler gefunden, die bisher niemand kannte.
  • Der Vergleich: Andere moderne Tools zusammen haben nur 10 echte Fehler gefunden. STITCH war nicht nur genauer (weniger "falsche Alarme"), sondern auch schneller und kostete weniger Geld pro gefundener Fehler.
  • Der Bonus: Viele dieser Fehler wurden bereits von den Entwicklern der Software behoben (gepatcht).

Zusammenfassung in einem Satz

STITCH ist wie ein unermüdlicher, kluger Handwerker, der sich die Bedienungsanleitung merkt, weiß, welche Werkzeuge zusammenpassen, und nur dann testet, wenn es wirklich spannend wird – und dabei findet er die echten Risse im Fundament, die andere übersehen haben.

Es ist ein riesiger Schritt hin zu Software, die sich selbstständig und sicherer macht, bevor wir sie überhaupt benutzen.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →