← Nieuwste papers
💻 computer science

Guiding Symbolic Execution with Static Analysis and LLMs for Vulnerability Discovery

Het paper introduceert SAILOR, een geautomatiseerd systeem dat statische analyse en Large Language Models combineert om symbolische uitvoering te sturen en zo op grote schaal nieuwe geheugenveiligheidskwetsbaarheden in C/C++-projecten kan ontdekken.

Oorspronkelijke auteurs: Md Shafiuzzaman, Achintya Desai, Wenbo Guo, Tevfik Bultan

Gepubliceerd 2026-04-09
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Md Shafiuzzaman, Achintya Desai, Wenbo Guo, Tevfik Bultan

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 gigantische, oude bibliotheek moet inspecteren op verborgen valkuilen. Deze bibliotheek is zo groot dat hij 6,8 miljoen boeken (regels code) bevat. De boeken zijn geschreven in een complexe taal (C/C++). Je wilt weten: "Waar zit een valkuil die een bezoeker kan laten struikelen en verwonden?"

Dit is precies wat software-ontwikkelaars proberen te doen met grote computerprogramma's. Maar het is een nachtmerrie om dit handmatig te doen.

Deze paper introduceert Sailor, een slimme, geautomatiseerde "veiligheidsinspecteur" die drie verschillende experts samenbrengt om deze taak te voltooien. Hier is hoe het werkt, vertaald naar alledaagse taal:

De Drie Experts in het Team

Sailor werkt in drie fases, waarbij elke fase een ander type expert inschakelt:

1. De Snuffelhond (Statistische Analyse)

Stel je voor dat je een snuffelhond hebt die door de bibliotheek loopt. Deze hond is getraind om specifieke geuren te ruiken die op gevaar wijzen, zoals "hier is een deur die niet op slot zit" of "hier is een vloerplank die los zit".

  • Wat doet hij? Hij scant de hele bibliotheek en maakt een lijstje met mogelijke gevaarlijke plekken.
  • Het probleem: De hond is erg alert, maar ook een beetje paranoïde. Hij blaft vaak om niets (veel "vals alarm"). Hij zegt: "Hier is een gevaar!" maar hij weet niet zeker of de deur echt openstaat of dat er iemand doorheen kan lopen.

2. De Slimme Architect (De LLM - Large Language Model)

Nu komt de tweede expert: een zeer slimme architect die alles over de bibliotheek weet, maar die soms ook hallucineert.

  • De taak: De snuffelhond geeft de architect een lijstje met verdachte plekken. De architect moet nu een testomgeving bouwen. Hij moet een "proefkonijn" (een testprogramma) maken dat precies naar die verdachte deur loopt, de deur openmaakt en probeert erdoorheen te lopen.
  • De magie: De architect bouwt dit niet in één keer. Hij bouwt het, probeert het, en als het mislukt (bijvoorbeeld: de deur zit vast of het proefkonijn valt om), krijgt hij feedback. Hij past zijn bouwplannen dan aan en probeert het opnieuw. Dit gebeurt keer op keer tot het werkt.
  • Zonder deze architect: De snuffelhond kan wel wijzen, maar niemand kan de test uitvoeren omdat de bibliotheek te complex is om zomaar te betreden.

3. De Proefkonijnen (Symbolische Executie & Concrete Validatie)

Nu hebben we een testomgeving. Maar werkt hij echt?

  • De Symbolische Test: We laten een robot (de "Symbolische Executie") door de testomgeving rennen. Deze robot probeert alle mogelijke manieren om de deur te openen, zelfs die die je niet kunt bedenken. Als hij een valkuil vindt, zegt hij: "Ik heb een bewijs! Als je hier 17 stappen zet in plaats van 16, val je!"
  • De Echte Test (Concrete Validatie): Dit is het allerbelangrijkste. De robot heeft een theorie. Nu nemen we die theorie en voeren we hem uit in de echte, ongewijzigde bibliotheek. We laten een echt mens (of een computerprogramma) precies die 17 stappen zetten.
  • Het resultaat: Als de echte persoon daadwerkelijk struikelt en valt, dan is het een echte valkuil. Als hij niet valt, was het een vals alarm van de robot.

Waarom is dit zo speciaal?

Vroeger moesten mensen deze testomgevingen (de "harnassen" of harnesses) handmatig bouwen. Dat is als het bouwen van een testcircuit voor een Formule 1-auto: het kost jaren, vereist experts en is extreem duur. Daardoor werd dit zelden gedaan voor grote projecten.

Sailor lost dit op door:

  1. De Snuffelhond te gebruiken om te weten waar je moet zoeken (zodat je niet de hele bibliotheek hoeft te doorzoeken).
  2. De Architect (LLM) te gebruiken om de testomgeving automatisch te bouwen en te verbeteren.
  3. De Robot te gebruiken om te bewijzen dat het gevaar echt bestaat.

De Resultaten in Eenvoud

De auteurs hebben Sailor getest op 10 grote, bekende software-projecten (zoals tools voor beeldbewerking, databases en internet).

  • Het resultaat: Sailor vond 379 nieuwe, onbekende valkuilen die nog nooit eerder waren ontdekt.
  • Vergelijking: De beste andere methoden (alleen een slimme AI zonder de robot, of alleen de snuffelhond) vonden er maar een handjevol (minder dan 12).
  • De les: Als je de snuffelhond weghaalt, vind je 12 keer minder. Als je de architect weghaalt, vind je niets. Als je de robot weghaalt, vind je ook bijna niets. Je hebt ze alle drie nodig.

Samenvattend

Sailor is als een super-team dat een gigantisch gebouw inspecteert:

  1. Een snuffelhond wijst op verdachte plekken.
  2. Een slimme architect bouwt een proefomgeving om die plekken te testen.
  3. Een robot probeert alle mogelijke manieren om te falen.
  4. Een echte proefpersoon controleert of de valkuil echt bestaat.

Door deze krachten te bundelen, kunnen ze veiligheidslekken vinden in software die te groot en complex is voor mensen om handmatig te controleren. Het is een doorbraak in het veilig maken van onze digitale wereld.

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 →