De belofte van kunstmatige intelligentie om softwarebeveiliging te automatiseren, krijgt een flinke tik. Hoewel veel modellen indrukwekkende scores behalen in gecontroleerde tests, blijkt de stap naar de praktijk problematisch. Een recent onderzoek van Chaomeng Lu en Bert Lagaisse onthult dat er een aanzienlijke kloof gaapt tussen laboratoriumresultaten en de werkelijke inzetbaarheid van deze technologie.
Volgens de wetenschappelijke publicatie arxiv.org presteren huidige systemen voor het opsporen van kwetsbaarheden in de praktijk aanzienlijk slechter dan verwacht. De onderzoekers stellen dat de vaak gebruikte benchmarkdatasets in de academische wereld een vertekend beeld geven. Deze datasets bevatten vaak synthetische monsters of ruis in de etikettering, waardoor modellen patronen herkennen die in de echte wereld niet relevant zijn. Hierdoor lijken technieken gebaseerd op transformers en graph neural networks effectiever dan ze in werkelijkheid zijn.
Om deze discrepantie te analyseren, hebben de auteurs vier specifieke modellen onderzocht: Devign, ReVeal, LineVul en VulBERTa. Deze systemen maken gebruik van merriam-webster.com, een vorm van machine learning waarbij complexe patronen in data worden herkend via meerdere lagen van neurale netwerken. De modellen werden getraind op diverse datasets zoals Juliet, BigVul, ICVul en Devign. Met behulp van geavanceerde analyses, waaronder t-SNE en centroid-afstand, probeerden de onderzoekers te begrijpen hoe deze AI-systemen kwetsbaarheden in code identificeren.
Het grootste probleem doet zich voor wanneer de modellen worden geconfronteerd met gegevens die buiten hun trainingsset vallen. Om dit te testen, creëerden de onderzoekers een nieuwe dataset genaamd VentiVul. Deze set bevat 200 recente kwetsbaarheden uit Chromium en Linux, specifiek geselecteerd om af te wijken van de gebruikelijke trainingsdata. De resultaten waren volgens de ontnuchterend: de prestaties van de modellen kelderden zodra ze met deze nieuwe data werden geconfronteerd.
Zelfs vier open-weight Large Language Models (LLM's) bleken niet in staat om kwetsbaarheden op een betrouwbare manier te detecteren. Een kritiek punt in het onderzoek is dat de modellen vaak het onderscheid niet konden maken tussen een functie die een beveiligingslek bevat en een versie van diezelfde functie die al is gepatcht. Dit wijst erop dat de huidige methoden voor code-representatie tekortschieten in het begrijpen van de essentie van een kwetsbaarheid.
De conclusie van de auteurs is dat er een dringende noodzaak is voor kwalitatief betere datasets die de realiteit van softwareontwikkeling beter weerspiegelen. Daarnaast is er behoefte aan robuustere evaluatiemethoden die specifiek kijken naar de wijzigingen die plaatsvinden bij het dichten van lekken. Het onderzoek, dat is geaccepteerd voor publicatie in het Journal of Systems and Software (JSS), pleit voor een verschuiving van academische scores naar een kader dat gericht is op daadwerkelijke implementatie. Meer details over deze evaluatie zijn beschikbaar in de op de arXiv-repository.