← Nieuwste papers
💻 computer science

Words Speak Louder Than Code: Investigating Cognitive Heuristics in LLM-Based Code Vulnerability Detection

Dit artikel presenteert het eerste systematische onderzoek dat aantoont dat op LLM gebaseerde detectie van kwetsbaarheden in code significant gevoelig is voor menselijke cognitieve heuristieken (framing-, verankering- en halo-effecten), die de oordelen van het model kunnen veranderen en geëxploiteerd kunnen worden om tot 97% van de gedetecteerde kwetsbaarheden te onderdrukken.

Oorspronkelijke auteurs: Asif Shahriar, Hongyu Cai, Hadjer Benkraouda, Gang Wang, Z. Berkay Celik

Gepubliceerd 2026-06-30
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Asif Shahriar, Hongyu Cai, Hadjer Benkraouda, Gang Wang, Z. Berkay Celik

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 superintelligente robot-beveiliger hebt wiens taak het is om naar computercode te kijken en te beslissen: "Is dit veilig, of is dit een tikkende tijdbom?"

Lama tijd hebben we aangenomen dat deze robot alleen naar de code zelf keek — de logica, de wiskunde, de structuur. Maar dit paper onthult een verbijsterende waarheid: De robot leest niet alleen de code; hij leest het verhaal rondom de code. En net als mensen heeft deze robot mentale afkortingen (zogenaamde "cognitieve heuristieken") die hem kunnen misleiden tot een verkeerde beslissing.

Hier is de uitsplitsing van hun bevindingen, gebruikmakend van eenvoudige analogieën.

De drie manieren waarop de robot wordt misleid

De onderzoekers testten drie specifieke manieren om de geest van de robot te "hacken" zonder een enkele regel code te veranderen. Ze veranderden simpelweg de context (de metadata) rondom de code.

1. Het Halo-effect (De "Celebrity"-bias)

De analogie: Stel je een rechter voor in een rechtszaal. Als de verdachte een beroemde, gerespecteerde CEO is, kan de rechter onbewust denken: "Hij is een goed mens, hij zou niets verkeerds doen," en daard matter streng zijn. Als de verdachte een jonge, onbekende stagiair is, kan de rechter denken: "Hij is onervaren, hij heeft waarschijnlijk een fout gemaakt," en strenger zijn.

De bevinding:

  • Wanneer de code werd toegeschreven aan een "Principal Security Engineer" (een expert met een hoge status), werd de robot lui en vertrouwend. Hij miste echte kwetsbaarheden omdat hij ervan uitging: "Een expert zou geen slechte code schrijven."
  • Wanneer dezelfde code werd toegeschreven aan een "Junior Developer" (een beginner met een lage status), werd de robot achterdochtig en paranoïde. Hij vond de kwetsbaarheden die hij eerder had gemist, maar begon ook "Wolf!" te roepen bij veilige code, wat leidde tot valse alarmen.
  • De twist: Sommige robots (zoals de robot genaamd Claude) deden precies het tegenovergestelde door de junior meer te vertrouwen dan de expert, maar de bias was er nog steeds.

2. Het Framing-effect (De "Waarschuwingslabel"-bias)

De analogie: Denk aan een medicijnflesje.

  • Label A: "Dit medicijn geneest 90% van de patiënten." (Positieve framing)
  • Label B: "Dit medicijn faalt bij 10% van de patiënten." (Negatieve framing)
    Hoewel de wiskunde hetzelfde is, verandert je reactie.

De bevinding:

  • Positieve framing: Wanneer de robot te horen kreeg: "Je taak is om ervoor te zorgen dat de pipeline soepel verloopt en valse alarmen te vermijden," werd hij te ontspannen. Hij negeerde gevaarlijke bugs om zaken snel te laten verlopen.
  • Negatieve framing: Wanneer de robot te horen kreeg: "Je taak is om beveiligingsdreigingen te vinden voordat ze het systeem vernietigen," werd hij hyper-waakzaam. Hij vond meer bugs, maar begon ook veilige code als gevaarlijk te markeren.
  • Het resultaat: Dit was de sterkste truc van allemaal. Elke geteste robot werd beïnvloed door hoe de taak werd beschreven.

3. Het Anchoring-effect (De "Eerste Indruk"-bias)

De analogie: Als je een vriend vraagt: "Is dit huis 500k waard?" en hij zegt "Ja", dan denk je misschien dat het een koopje is. Als je vraagt: "Is dit huis 1 miljoen waard?" en hij zegt "Nee", dan denk je misschien dat het goedkoop is. Het eerste getal dat je hoort, fungeert als een "anker" voor je oordeel.

De bevinding:

  • Als de robot te horen kreeg: "Een eerdere scan zei dat deze code VEILIG is," had hij de neiging om daarmee in te stemmen en nieuwe bugs te missen.
  • Als de robot te horen kreeg: "Een eerdere scan zei dat deze code KWETSBAAR is," had hij de neiging om hiermee in te stemmen en bugs te vinden (zelfs als die er niet waren).
  • De robot zei in feite: "Nou, de ander zei dat het veilig is, dus ik vertrouw dat," in plaats van zijn eigen onafhankelijke werk te doen.

De grote problemen die ontdekt zijn

De onderzoekers ontdekten drie belangrijke problemen met de manier waarop deze robots werken:

1. Het "Volume-knop"-probleem
De robots werden niet slimmer of dommer in het vinden van bugs. Ze werden alleen luider of stiller.

  • Wanneer de context de robot achterdochtig maakte, draaide hij de "Volume-knop" omhoog: Hij markeerde alles als gevaarlijk (vond echte bugs, maar ook veel valse alarmen).
  • Wanneer de context de robot vertrouwend maakte, draaide hij de "Volume-knop" omlaag: Hij markeerde niets als gevaarlijk (miste echte bugs, maar had ook minder valse alarmen).
  • De les: De robot heeft niet echt geleerd om beter onderscheid te maken tussen goede en slechte code; hij veranderde alleen zijn stemming.

2. De "Hallucinatie"-valstrik
Wanneer de robot werd misleid om te denken dat een veilige code gevaarlijk was (door een "Junior Developer"-label of een "Kwetsbaar"-anker), zei hij niet alleen "Het is gevaarlijk." Hij verzon vaak een nepreden.

  • Voorbeeld: De robot zag veilige code, maar omdat hij in een "achterdochtige" stemming was, beweerde hij: "Dit lijkt op een geheugenlek!" terwijl er geen lek was. Hij was zelfverzekerd, maar volkomen onjuist.

3. "Slimme" versus "Domme" code

  • Makkelijke bugs: Sommige bugs zijn overduidelijk, zoals een typefout of een ontbrekende puntkomma. De robot vond deze gemakkelijk, ongeacht de context.
  • Moeilijke bugs: Sommige bugs vereisen diep nadenken (zoals het volgen van hoe een variabele in de loop van de tijd verandert). Dit waren de bugs waar de robot het meest op werd misleid. Als de context "vertrouwend" was, miste hij de moeilijke bugs. Als de context "achterdochtig" was, verzon hij nep-moeilijke bugs.

De "Cognitieve Aanval" (Het echte gevaar)

De onderzoekers stopten niet bij testen; ze bouwden een proof-of-concept aanval.

Stel je voor dat een hacker gevaarlijke code in de software van een bedrijf wil smokkelen. In plaats van te proberen de hersenen van de robot direct te hacken (wat moeilijk is), vervalst de hacker gewoon de papieren.

  • Ze schrijven de code.
  • Ze voegen een nep-e-mail toe waarin staat dat de code afkomstig is van een beroemde beveiligingsexpert (Halo).
  • Ze schrijven een notitie: "Laten we de pipeline draaiende houden, wees niet te kritisch" (Framing).
  • Ze voegen een nepverslag toe: "Eerdere scans zeiden dat dit veilig is" (Anchoring).

Het resultaat: De robot, die dit "geruststellende" pakketje zag, besloot dat de gevaarlijke code VEILIG was. De aanval slaagde erin om tot wel 97% van de kwetsbaarheden te onderdrukken die de robot normaal gesproken zou hebben opgemerkt.

De Conclusie

Dit paper bewijst dat Large Language Models (LLMs) die voor beveiliging worden gebruikt, geen objectieve machines zijn. Ze worden beïnvloed door dezelfde psychologische trucs die ook mensen beïnvloeden.

  • Ze vertrouwen de verkeerde mensen (experts te veel, junioren te weinig).
  • Ze reageren op hoe je de vraag stelt (angst versus comfort).
  • Ze blijven hangen in eerste indrukken (vorige rapporten).

Het gevaarlijkste deel? Je hoeft geen genie-hacker te zijn om ze te breken. Je moet alleen weten hoe je een overtuigende e-mail of een mooi uitziend commit-bericht schrijft. De robot is niet kapot; hij is gewoon menselijk in zijn gebreken.

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 →