← Nieuwste papers
💻 computer science

WuppieFuzz: Coverage-Guided, Stateful REST API Fuzzing

Dit paper introduceert WuppieFuzz, een open-source, coverage-gestuurde stateful fuzzer voor REST-API's die op LibAFL is gebaseerd en gebruikmaakt van OpenAPI-specificaties om geautomatiseerd testcorpora te genereren en complexe softwaretoestanden te verkennen.

Oorspronkelijke auteurs: Thomas Rooijakkers, Anne Nijsten, Cristian Daniele, Erieke Weitenberg, Ringo Groenewegen, Arthur Melissen

Gepubliceerd 2026-03-26
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Thomas Rooijakkers, Anne Nijsten, Cristian Daniele, Erieke Weitenberg, Ringo Groenewegen, Arthur Melissen

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

Stel je voor dat je een nieuw, groot winkelcentrum hebt gebouwd: de Petstore. Dit winkelcentrum heeft honderden deuren (de API-eindpunten) waar klanten doorheen kunnen lopen om producten te kopen, te bekijken of te verwijderen.

De makers van dit winkelcentrum willen zeker weten dat alle deuren veilig zijn en dat er geen verborgen valkuilen zijn waar een boze dader in kan trappen. Maar er zijn zoveel deuren dat het voor mensen onmogelijk is om ze allemaal handmatig te controleren.

Hier komt WuppieFuzz in beeld.

Wat is WuppieFuzz eigenlijk?

WuppieFuzz is een slimme, robotachtige testpiloot. In plaats van dat een mensje urenlang rondloopt om te kijken of de deuren stevig zijn, laat je deze robot los. De robot probeert duizenden deuren per seconde open te krijgen, niet op de normale manier, maar door er raar tegenaan te duwen, te trekken en te schudden.

In de wereld van computers noemen we dit Fuzzing: het sturen van gekke, onlogische input om te zien of het systeem crasht of zich raar gedraagt.

Hoe werkt deze robot? (De drie manieren van testen)

De paper beschrijft drie manieren waarop WuppieFuzz dit doet, afhankelijk van hoeveel hij mag weten over het binnenwerk van het winkelcentrum:

  1. Zwartkijker (Black-box):
    De robot staat buiten het winkelcentrum. Hij kan niets zien van wat er binnen gebeurt. Hij probeert gewoon deuren open te duwen. Als er een geluid klinkt of een deur openbreekt, weet hij dat er iets aan de hand is. Dit is snel, maar hij weet niet waar het precies misging.

    • Analogie: Je gooit ballen tegen een muur om te zien of er een barst in zit, zonder te weten hoe de muur van binnen is opgebouwd.
  2. Grijze kijker (Grey-box):
    De robot heeft een beetje meer informatie. Hij ziet misschien wel welke deuren al eens open zijn geweest, maar niet precies welke planken er in de muren zitten.

  3. Witkijker (White-box):
    Dit is de krachtigste versie. De robot heeft de bouwtekeningen (de broncode) van het winkelcentrum in zijn handen. Hij kan zien welke planken er in de muren zitten en welke lichten er branden.

    • Analogie: De robot loopt door het gebouw met een lantaarn en ziet precies welke hoekjes donker blijven. Als hij een hoekje ziet dat nog nooit verlicht is geweest, zegt hij: "Hé, daar moet ik nog even ballen gooien!"
    • Het resultaat: De paper laat zien dat deze "witkijker"-methode veel sneller nieuwe plekken vindt dan de "zwartkijker", omdat hij niet hoeft te gissen.

De slimme trucjes van WuppieFuzz

Normaal gesproken zou een robot die duizenden deuren probeert, heel veel tijd verspillen aan deuren die al open staan of die niet bestaan. WuppieFuzz is slimmer:

  • De Blauwdruk (OpenAPI): De robot leest eerst de officiële handleiding van het winkelcentrum. Hieruit leert hij welke deuren er zijn en in welke volgorde je ze moet gebruiken (bijvoorbeeld: eerst de winkel openen, dan een product kopen).
  • De Kettingreactie (Stateful): Veel bugs gebeuren pas als je een specifieke reeks handelingen doet. Bijvoorbeeld: eerst een account aanmaken, dan inloggen, en dan pas proberen te stelen. WuppieFuzz onthoudt deze reeksen. Hij weet: "Als ik eerst dit doe, kan ik daarna dat proberen."
  • De Kaart van de Verlichting (Coverage): De robot houdt een kaart bij van welke stukken van het gebouw hij al heeft verlicht. Als hij ziet dat hij een nieuwe, donkere hoek heeft bereikt, zegt hij: "Leuk! Laten we daar nog wat gekker doen om te zien of er nog meer verborgen deuren zijn."

Wat leverde dit op?

De onderzoekers hebben WuppieFuzz getest op een bekend voorbeeld (de Petstore API).

  • Ze zagen dat de robot met de witkijker-methode (met bouwtekeningen) veel sneller alle deuren vond dan zonder.
  • De robot kon ook rapporten maken, zoals een lijst met alle deuren die hij heeft geprobeerd en welke raar reageerden. Dit helpt programmeurs om de lekken te dichten voordat boze hackers ze vinden.

Conclusie in één zin

WuppieFuzz is een slimme, geautomatiseerde testrobot die, geholpen door bouwtekeningen en een slim geheugen, razendsnel alle verborgen deuren en valkuilen in een webapplicatie vindt, zodat we die veilig kunnen maken voordat de boeven eraan komen.

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 →