← Nieuwste papers
💻 computer science

On Interaction Effects in Greybox Fuzzing

Dit paper introduceert MuoFuzz, een greybox fuzzer die interactie-effecten tussen mutatoren leert en benut om via een random walk de meest veelbelovende mutatorreeksen te selecteren, wat resulteert in een hogere codecoverage en het vinden van meer bugs dan bestaande tools zoals AFL++ en MOPT.

Oorspronkelijke auteurs: Konstantinos Kitsios, Marcel Böhme, Alberto Bacchelli

Gepubliceerd 2026-04-24
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Konstantinos Kitsios, Marcel Böhme, Alberto Bacchelli

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

De Kern: Fuzzing als een "Gokker"

Stel je voor dat je een enorme, complexe slotkast hebt (een computerprogramma) en je wilt weten of er een sleutelgat in zit dat je kunt openen zonder de sleutel te hebben. Dit is wat Greybox Fuzzing doet. Het is een robot die miljoenen willekeurige pogingen doet om een programma te laten crashen (en zo bugs te vinden).

De robot heeft een doos vol met mutators (gereedschappen). Sommige gereedschappen draaien een boutje los (een bit omkeren), andere hakken een stukje weg (een blok bytes verwijderen).

Hoe werkt het nu normaal?
De robot pakt een startpunt (een 'zaadje') en gebruikt willekeurig een reeks gereedschappen om het aan te passen.

  • Huidige aanpak (zoals bij AFL++): De robot heeft een vaste lijst met kansen. Gereedschap A heeft 4% kans, Gereedschap B heeft 3%. Hij pakt ze eruit alsof hij blindelings uit een hoed trekt.
  • Huidige aanpak (zoals bij MOPT): De robot leert welk gereedschap alleen het beste werkt, en gebruikt dat vaker. Maar hij kijkt niet naar wat er daarvoor is gebeurd.

Het Nieuwe Inzicht: Het is een Teamwerk

De auteurs van dit paper (Kitsios, Böhme en Bacchelli) hadden een idee: Misschien werkt gereedschap A alleen maar goed als je het na gereedschap B gebruikt.

Stel je voor dat je een auto repareert:

  1. Als je eerst de motor verwijdert (gereedschap B) en daarna de wielen eraf haalt (gereedschap A), lukt het misschien perfect.
  2. Maar als je eerst de wielen eraf haalt en daarna de motor verwijdert, valt de auto misschien in elkaar en werkt het niet.

De volgorde maakt dus uit! De huidige robots kijken niet naar deze interactie. Ze denken dat gereedschappen onafhankelijk van elkaar werken, maar dat is niet zo.

De Oplossing: MuoFuzz

De auteurs hebben een nieuwe robot gebouwd, genaamd MuoFuzz. Deze robot leert een heel slimme truc:

  1. De Leerfase (Training): In het begin laat de robot een tijdje losjes proberen. Hij houdt een groot notitieboek bij: "Als ik gereedschap X gebruik, wat is de kans dat gereedschap Y daarna een goed resultaat geeft?"

    • Vergelijking: Het is alsof je een chef-kok bent die leert welke ingrediënten goed samengaan. Als je eerst zout doet, werkt peper misschien beter dan als je eerst suiker doet.
  2. De Gids-fase (Guided Mutation): Nadat hij heeft geleerd, gebruikt hij dit notitieboek. Als hij gereedschap X heeft gebruikt, kijkt hij in zijn boek en kiest hij met een hoge kans het gereedschap Y dat daar het beste bij past.

    • Vergelijking: In plaats van blindelings uit een hoed te trekken, loopt de robot een pad af dat hij zelf heeft uitgezocht. Hij weet: "Na stap 1, is stap 2 het meest kansrijk."

Wat hebben ze ontdekt?

Ze hebben dit getest op echte software (zoals webbrowsers en PDF-lezers) en vergeleken met de beste robots die er nu zijn (AFL++ en MOPT).

  • Meer dekking: MuoFuzz vond in 10 van de 13 gevallen meer "nieuwe plekken" in de code dan de anderen.
  • Sneller: MuoFuzz bereikte de resultaten van de andere robots in minder tijd.
  • Meer bugs: MuoFuzz vond vier bugs die de andere robots gemist hadden, en zelfs een bug die niemand anders vond.

Waarom werkt dit?

De robot leert dat bepaalde combinaties van mutaties (gereedschappen) een "chemische reactie" veroorzaken die de software dwingt om diep in zijn code te kijken, waar de bugs vaak zitten.

  • Interessant detail: Soms werkt het beste om te beginnen met een willekeurig gereedschap, en pas daarna de slimme volgorde te volgen. Als je te specifiek begint, wordt de robot te voorspelbaar en mist hij creatieve oplossingen.

Conclusie

Dit onderzoek toont aan dat we bij het testen van software niet alleen moeten kijken naar welke gereedschappen we gebruiken, maar vooral naar in welke volgorde we ze gebruiken.

De boodschap in één zin:
Net zoals een goede kok weet dat de volgorde van ingrediënten de smaak bepaalt, weet MuoFuzz dat de volgorde van test-pogingen bepaalt of hij een software-bug vindt of niet. Door te leren welke stappen het beste op elkaar volgen, wordt de robot veel slimmer en efficiënter.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →