Din kod kan afsløre sårbarheder – men der er en kæmpe hage
Din kodestil kan afsløre sikkerhedshuller – men der er en kæmpe hage
Hver udvikler har sin egen måde at kode på. Nogle er fanatiske med indrykning. Andre elsker korte variabelnavne. Den ene stabler løkker i dybden, mens den anden altid bryder det ned i hjælpefunktioner. Disse små vaner bliver til et unikt fingeraftryk i koden.
Forskere fra UMass Dartmouth undersøger et spændende spørgsmål: Kan vi bruge disse stilistiske mønstre til at finde sårbarheder, før koden går live?
Risikoens skjulte mønstre
Idéen er enkel og smart. Dårlige vaner som sløset bufferhåndtering eller uregelmæssig pointer-aritmetik gentager sig. De dukker ikke op én gang og forsvinder – de sidder fast som en dialekt.
Her kommer VulStyle ind. Det er en ML-model, der ser på din kodestil som et sikkerhedssignal. Ikke kun kendte farlige calls eller tokens, men stylometriske træk: Hvordan deklarerer du variabler? Hvordan bygger du udtryk? Mønstre i if-sætninger og loops. Det blander det med klassisk strukturanalyse og syntaksdata.
Første tests var lovende. Mod flere benchmarks slog den modeller, der kun kiggede på tokens og syntaks. Stil og struktur supplerer hinanden: Strukturen viser hvad koden gør, stilen viser hvordan du plejer at gøre det.
Benchmarks, der bedrager
Men så kommer det ubehagelige.
VulStyle rocker på nogle datasæt, men floppe på andre. På DiverseVul – et nyt benchmark, der retter fejl i gamle – falder præstationen markant. Forfatterne peger selv på støjende labels i populære benchmarks, der blåser resultaterne op.
Det sker i hele ML-sikkerhedsforskningen. Modeller skinner i labbet på sæt A, men krakker på sæt B i virkeligheden. Problemet er ikke modellen – det er datasættene, træningsdataene og manglende realisme.
For sikkerhedsteams: Præcisionsprocenter siger ikke hele sandheden.
AI-kodens stilproblemer
Værre bliver det for os, der kodder i 2024.
VulStyle bygger på, at udviklere har unik stil. Men masser af kode kommer nu fra LLMs som GitHub Copilot, ChatGPT eller Claude. Den er:
- Ensformigt formateret (ingen personlige quirks)
- Syntaktisk sikker (ingen vilde nestinger)
- Uden individuelle vaner (det er pointen)
Stil-signalet forsvinder. Fingeraftrykket eksisterer simpelthen ikke.
Forfatterne nævner det, men det bliver værre: AI-koding bliver normen, så stil-analysen mister fodfæstet hurtigt.
Ubesvarede angrebsspørgsmål
Et åbent hul: Er stil-detektion svær at omgå? Forskere siger ja – angribere skal ændre flere signaler på én gang. Lyder godt, men de testede det ikke.
Hvad hvis en slem udvikler kører koden gennem en formatter, skifter navne og omstrukturerer? Overlever stil-signalet? Vi ved det ikke. Åben forskning.
Hvad det betyder for din stack
VulStyle er kun research-prototype. Ikke noget, du downloader i dag. Men ideen er guld: Kombiner stil, struktur og tokens for bedre bug-jagt.
Praktiske råd er mere realistiske:
Ignorer enkelt-benchmarks – 95% accuracy? Spørg hvilket datasæt. Test på din egen kode.
Kald bias ud – Populære benchmarks matcher ikke virkelige codebases eller sårbarhedsfordelinger.
Forbered dig på AI-kode – Copilot ændrer spillet. Stil-analyser bliver mindre relevante. Find alternativer.
Regn med signal-svind – Metoder baseret på udviklervaner dør ud, når AI udjævner alt.
Vejen frem
Sikkerhedsforskning i vulndetektion modnes raskt – og viser sine svagheder. Enkelt-signaler generaliserer dårligt. Benchmarks kan lyve. Og kodningsverdenen skifter under fødderne.
Bedste forsvar er lag på lag: Static analysis, dynamisk test, code review, supply chain-checks og runtime-overvågning. Intet signal – hverken stil, syntaks eller struktur – står alene.
Forstå hvorfor signalerne virker, bryder og interagerer. Det bygger ægte robusthed.