Vulnerability Detection with Interprocedural Context in Multiple Languages: Assessing Effectiveness and Cost of Modern LLMs
Deze empirische studie toont aan dat het integreren van interprocedurale context (aanroepers en aangeroepene functies) de effectiviteit van moderne LLM's bij het detecteren van kwetsbaarheden in C, C++ en Python aanzienlijk verbetert, waarbij Gemini 3 Flash de beste kosten-batenverhouding biedt en Claude Haiku 4.5 de hoogste nauwkeurigheid in detectie en uitleg haalt.
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 Digitale Detectives: Kunnen AI's Gevaar in Code Vinden?
Stel je voor dat je een enorm groot gebouw hebt (een softwareprogramma) met duizenden kamers (functies). In sommige kamers zitten valkuilen of gevaarlijke gaten (kwetsbaarheden) die hackers kunnen gebruiken om binnen te dringen.
Vroeger keken AI-detectives (Large Language Models of LLMs) alleen naar één kamer om te zien of die gevaarlijk was. Ze keken niet naar de gangen die naar die kamer leiden of de kamers waar die kamer weer naartoe leidt.
De onderzoekers van dit paper vroegen zich af: "Wat gebeurt er als we de detective ook de hele gang laten zien? Helpt dat om de valkuil sneller te vinden, of maakt het de detective juist in de war?"
Ze testten dit met vier moderne AI-modellen (denk aan slimme digitale assistenten zoals Claude, GPT en Gemini) op code in drie talen: C, C++ en Python.
🧩 De Drie Manieren om te Kijken
De onderzoekers gaven de AI's drie verschillende "pakketjes" met informatie:
- Alleen de kamer (Code Only): De AI ziet alleen de code van de verdachte functie.
- Kamer + Deuren naar buiten (Callers): De AI ziet de verdachte functie én de kamers die er direct naartoe lopen (wie belt deze functie aan?).
- Kamer + Deuren naar binnen (Callees): De AI ziet de verdachte functie én de kamers die deze functie zelf aanstuurt (wat doet deze functie op zijn beurt?).
Het idee was: "Meer context moet toch helpen?"
🚨 De Verassende Bevindingen
1. Meer is niet altijd beter (De "Te veel informatie"-val)
Het bleek dat meer informatie de AI's soms juist verwarde.
- Voorbeeld: Stel je voor dat je een detective vraagt: "Is deze persoon een dief?" Je geeft hem alleen de foto van de verdachte. Hij zegt: "Ja, die heeft een verdachte blik."
- Nu geef je hem ook de foto's van de buren en de postbode. De detective raakt in de war, kijkt naar de buren en zegt: "Nou, die buren lijken ook wel verdacht, misschien is de verdachte wel onschuldig."
- Resultaat: Bij de modellen van OpenAI (GPT-4.1 en GPT-5) zorgde het toevoegen van extra code (de "buren") ervoor dat ze minder goed werden. Ze werden tot 25% minder accuraat! Ze raakten de focus kwijt.
- Uitzondering: De modellen van Google (Gemini) en Anthropic (Claude) waren als ervaren detectives. Ze keken naar de extra informatie, maar wisten precies wat belangrijk was en werden er niet door in de war. Hun prestatie bleef stabiel.
2. De Prijskaart (Kosten vs. Baat)
Elke keer dat je de AI extra informatie geeft, moet die meer "denken" (meer tokens verwerken). Dat kost geld.
- Analogie: Het is alsof je een taxichauffeur vraagt om je naar de stad te rijden. Als je zegt: "Rijd maar gewoon," kost het €5. Als je zegt: "Rijd langs de hele stad, stop bij elke winkel, en kijk ook nog eens in de kelders," kost het €10.
- De conclusie: De onderzoekers ontdekten dat het dubbel zo duur werd om de AI extra context te geven, maar dat de verbetering in resultaat nihil was (of zelfs negatief). Je betaalde dus dubbel voor hetzelfde, of zelfs slechtere, resultaat.
3. De Talen Verschillen
- C en C++ (De oude, complexe talen): Hier zijn de valkuilen vaak verborgen in de interactie tussen verschillende functies. Maar paradoxalerwijs werkten de AI's hier het slechtst als ze te veel context kregen. Ze raakten in de war door de complexe logica.
- Python (De moderne, duidelijke taal): Hier waren de resultaten iets anders, maar de trend bleef hetzelfde: meer context hielp niet echt.
4. Het Verklaren van het Gevaar
Niet alleen moesten de AI's zeggen "Ja, hier zit een fout", ze moesten ook uitleggen waarom.
- Claude Haiku 4.5 was hierin de beste leraar. Hij gaf in 93% van de gevallen een perfecte uitleg: "Hier is de fout, hier is de oorzaak, en hier is hoe je het oplost."
- GPT-modellen maakten vaker fundamentele fouten in hun uitleg. Als ze de fout niet goed zagen, was hun uitleg ook vaak onzin.
💡 De Gouden Tips voor de Praktijk
Wat betekent dit voor mensen die software beveiligen?
- Kies je detective slim: Als je geld wilt besparen en goede resultaten wilt bij C-code, kies dan Gemini 3 Flash. Het is de beste prijs-kwaliteitverhouding. Wil je de allerbeste uitleg? Kies dan Claude Haiku.
- Geef niet te veel info: Voor veel AI-modellen werkt het beter om ze alleen de verdachte stukjes code te geven, in plaats van de hele geschiedenis van de functie. "Minder is meer."
- Geen "one size fits all": Wat werkt voor Python, werkt niet per se voor C. Je moet je AI-strategie afstemmen op de programmeertaal die je gebruikt.
🏁 Conclusie in één zin
Het onderzoek leert ons dat we niet blindelings moeten denken dat "meer context" voor AI altijd beter is; soms maakt het de AI juist slordig, en dat kost je alleen maar meer geld zonder dat je veiliger bent. De kunst is om de juiste detective te kiezen voor de juiste taak.
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.