QLCoder: A Query Synthesizer For Static Analysis of Security Vulnerabilities
Het paper introduceert QLCoder, een agentisch framework dat met behulp van een LLM, uitvoeringsfeedback en een MCP-interface automatisch CodeQL-query's synthetiseert uit CVE-metadata om beveiligingskwetsbaarheden te detecteren, waarbij het 53,4% correcte resultaten behaalt vergeleken met 10% bij het gebruik van alleen Claude Code.
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 Probleemstelling: De "Gevarenkaart" die niemand kan lezen
Stel je voor dat software een enorme, complexe stad is. In deze stad zitten soms verborgen valkuilen (veiligheidslekken), zoals een open raam waar inbrekers doorheen kunnen klimmen. Om deze valkuilen te vinden, hebben we static analysis tools nodig. Dit zijn als het ware super-scherpe zoekmachines die de stadscodes (de software) doorzoeken op patronen die op gevaar lijken.
Maar hier zit de hak: om deze zoekmachine te vertellen wat hij moet zoeken, moet je een heel specifieke "zoekopdracht" (een query) schrijven in een vreemde, moeilijke taal (CodeQL).
- Het probleem: Dit is als proberen een kaart te tekenen voor een blinde. Je moet weten hoe de stad eruitziet, waar de inbrekers komen, en hoe ze zich verplaatsen. Zelfs experts vinden dit lastig. Als je de kaart verkeerd tekent, roept de zoekmachine vals alarm (je wast je handen in onschuld terwijl er een inbreker is) of mist hij de echte dief helemaal.
🤖 De Oplossing: QLCoder, de Slimme Architect
De auteurs van dit paper hebben QLCoder bedacht. Dit is geen simpele robot, maar een agente (een slimme AI-assistent) die de taak van die kaart-tekenaar overneemt.
QLCoder doet iets heel slimme: hij leest een verslag van een bekende inbraak (een CVE, een officiële melding van een veiligheidslek) en schrijft automatisch de perfecte zoekopdracht voor de CodeQL-zoekmachine.
Hoe werkt dit? De "Leerling-Architect" met een Meester
Stel je QLCoder voor als een getalenteerde leerling-architect die een opdracht krijgt: "Bouw een alarm dat afgaat als iemand door dat specifieke raam klimt, maar niet als het raam dicht is."
- De Eerste Poging (De Gist): De AI schrijft een eerste versie van de zoekopdracht.
- De Test (De Bouwkeuring): De AI test deze opdracht op twee versies van de software:
- De oude, kapotte versie (waar het lek nog zit).
- De nieuwe, gerepareerde versie (waar het lek is dichtgemaakt).
- Het Feedbacksysteem (De Meester):
- Als de AI het lek mist in de oude versie, zegt de meester: "Je hebt de inbreker gemist!"
- Als de AI vals alarm geeft in de nieuwe versie (waar het lek al dicht is), zegt de meester: "Je schreeuwt om hulp waar niemand is!"
- Als de AI de taal verkeerd gebruikt (syntaxisfout), zegt de meester: "Je gebruikt de verkeerde woorden."
QLCoder gebruikt deze feedback om de opdracht te verbeteren en probeert het opnieuw. Dit doet hij totdat hij de perfecte kaart heeft.
🛠️ De Magische Gereedschapskist (MCP)
Wat maakt QLCoder zo goed in vergelijking met andere AI's? Hij heeft een speciale gereedschapskist (een interface genaamd MCP) die hem helpt niet in de war te raken:
- De Woordenboek-Link (Language Server): Als de AI een woord niet zeker weet, kan hij direct navragen bij een "slimme woordenboek" (de CodeQL-taalserver) of het woord correct is gespeld. Dit voorkomt dat hij verzonnen woorden gebruikt.
- De Bibliotheek (RAG Database): De AI kan snel bladeren in een bibliotheek van duizenden eerdere zoekopdrachten en documentatie. Hij zoekt niet op het hele internet (wat te rommelig is), maar kijkt alleen in de juiste boeken die relevant zijn voor dit specifieke lek.
🏆 De Resultaten: Van "Missen" naar "Vinden"
De auteurs hebben QLCoder getest op 176 echte veiligheidslekken in Java-software.
- De oude manier (Alleen AI): Als je een AI gewoon vraagt om een zoekopdracht te schrijven zonder deze slimme feedback-loop, lukt het maar in 10% van de gevallen goed.
- De standaard tools: De bestaande zoekmachines van CodeQL vinden maar een klein beetje van de lekken (F1-score van 0.07).
- QLCoder: Deze AI slaagt erin om in 53,4% van de gevallen een perfecte zoekopdracht te schrijven.
- Hij vindt het lek in de oude software.
- Hij schreeuwt niet om hulp in de nieuwe, gerepareerde software.
- Zijn "F1-score" (een maatstaf voor nauwkeurigheid) is 0.7, wat een enorme verbetering is.
💡 Waarom is dit belangrijk?
Vroeger moesten beveiligingsexperts urenlang zitten te puzzelen om een zoekopdracht te schrijven die precies het juiste lek vond. Nu kan QLCoder dit in een paar minuten doen, gebaseerd op de beschrijving van het lek.
Dit betekent dat bedrijven sneller hun software kunnen controleren op bekende lekken, zelfs als ze geen experts zijn in die moeilijke CodeQL-taal. Het is alsof je van een handgeschreven, onleesbare kaart bent gegaan naar een GPS-systeem dat je automatisch de beste route wijst, zelfs als de wegen veranderen.
Kortom: QLCoder is de slimme tolk die vertaalt van "Er is een lek in de software" naar "Hier is de perfecte zoekopdracht om dat lek te vinden en te bewaken."
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.