A Comprehensive Evaluation of Code Language Models for Security Patch Detection
Dit artikel presenteert een rigoureuze herwaardering van code-taalmodellen voor de detectie van commits die kwetsbaarheden herstellen, gebruikmakend van een verenigd framework van 20 datasets en 270 modellen, wat onthult dat huidige modellen lijden onder datalekken en labelfouten, en uiteindelijk falen in het betrouwbaar identificeren van security fixes onder strikte beperkingen wat betreft fout-positieven.
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 het internet voor als een enorme, bruisende stad die volledig is gebouwd uit code. Elke dag gaan er nieuwe gebouwen omhoog, worden oude gerenoveerd en verschijnen er soms verborgen barsten in de fundamenten die inbrekers naar binnen kunnen laten. In deze stad zijn "security patches" de noodreparaties die die barsten repareren voordat de slechteriken ze vinden. Een lange tijd hebben mensen geprobeerd een superintelligente robotdetective te bousden die miljoenen van deze dagelijkse constructie-updates (genaamd "commits") kan scannen en direct kan roepen: "Hé, deze is een beveiligingsfix!" De hoop is dat deze robot de reparaties sneller kan opsporen dan de officiële politieborden (kwetsbaarheidsdatabases) ze zelfs kunnen opschrijven, om de stad in realtime veilig te houden. Maar om deze robot te trainen, hadden wetenschappers een enorme bibliotheek aan voorbeelden nodig die precies lieten zien welke updates fixes waren en welke slechts normale wijzigingen waren. Het probleem was dat deze bibliotheek verspreid was over tientallen verschillende planken, geschreven in verschillende talen en gelabeld door verschillende mensen met verschillende regels, wat het een nachtmerrie maakte om resultaten te vergelijken.
Dit artikel is als een team van detectives dat besloot die rommelige bibliotheek op te schonen, één enkele, gigantische, verenigde archiefkast te bouwen, en de robotdetective vervolgens door de meest rigoureuze test ooit te laten gaan. Ze verzamelden meer dan 180.000 code-updates uit 20 verschillende datasets en trainden 270 verschillende versies van de robot, variërend van kleine, behendige modellen tot massieve, breinachtige modellen met 80 miljard parameters. Ze wilden zien of deze robots de code daadwerkelijk konden "begrijpen" om de beveiligingsfixes te vinden, of dat ze alleen vertrouwden op commit-berichten (de aantekeningen die de programmeurs schreven) of het memoriseren van de projecten waarvan ze afkomstig waren.
De resultaten waren een beetje een reality check. Het team kwam tot de conclusie dat de robots vooral vertrouwden op de commit-berichten in plaats van naar de werkelijke code-wijzigingen te kijken. Wanneer de onderzoekers de robots dwongen om alleen naar de code te kijken, daalde hun prestatie aanzienlijk. Zelfs de grootste, krachtigste robotmodellen faalden er niet in om betrouwbaar beveiligingsfixes op te sporen wanneer de regels streng waren: bij een zeer laag percentage valse alarmen (0,5%) mistte elk model ten minste 80% van de werkelijke beveiligingsfixes. De studie ontdekte ook dat de "ground truth"-labels die werden gebruikt om de robots te trainen, vaak fout waren, vooral voor fixes die geen officieel CVE-nummer (Common Vulnerabilities and Exposures) gekoppeld hadden. Sterker nog, de fouten waren zo geconcentreerd in deze niet-geverifieerde fixes dat ze de gehele evaluatie vervormden, waardoor de robots beter leken dan ze in werkelijkheid waren.
Uiteindelijk suggereert het artikel dat het simpelweg groter maken van de robots of het geven van meer context (zoals het toevoegen van extra regels code uit nabijgelegen bestanden) het probleem niet oplost. De robots lijken moeite te hebben omdat het echte bewijs van een beveiligingsfix vaak buiten de specifieke regels code ligt die worden gewijzigd, wat een dieper begrip van het hele systeem vereist dat huidige modellen niet hebben. De auteurs concluderen dat totdat we een manier vinden om de juiste context effectief te selecteren en te gebruiken, en totdat we het slordige labelen van onze trainingsdata oplossen, deze geautomatiseerde systemen nog niet klaar zijn om menselijke experts te vervangen bij het opsporen van beveiligingspatches. Ze hebben een beter testkader gebouwd en hun tools vrijgegeven om toekomstige onderzoekers te helpen dezelfde valkuilen te vermijden, maar voor nu blijft de "magie" van volledig geautomatiseerde detectie van beveiligingspatches net buiten bereik.
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.