utvikling

Finner sårbarheter idet utvikleren lager dem og lager patchen automatisk

Ny KI-teknologi utviklet i Norge kan gi nye muligheter i kampen mot nulldagssårbarheter.

Forskere ved Høyskolen Kristiania, ledet av Dr. Guru Prasad Bhandari, har utviklet det de har gitt navnet IOTVulcode, en metode som bruker kunstig intelligens (KI) til å analysere kildekode for IOT-enheter og identifisere sårbarheter på et tidlig stadium.

Systemet skiller seg ut ved både å være mer omfattende enn eksisterende løsninger, og ved å være tilgjengelig som åpen kildekode, noe som gjør det mulig for andre å ta det i bruk og videreutvikle.

IOT-enheter er en integrert del av moderne infrastruktur, men samtidig en kilde til økende sikkerhetstrusler. Tradisjonelle metoder for sikkerhetsanalyse fokuserer på nettverksovervåkning og oppdager ofte trusler først etter at et angrep har skjedd.

IOTVulcode endrer dette ved å analysere selve kildekoden for å avdekke sårbarheter før produktet er ferdig utviklet.

Teknologi og datasett

IOTVulcode bruker maskinlæring og naturlig språkbehandling (NLP) for å analysere kode. Dette gir systemet evnen til å forstå både syntaks og kontekst i programvaren.

– Ved å bruke naturlig språkbehandling kan vi forstå både syntaksen og konteksten i koden, noe som gjør det mulig å identifisere både kjente og ukjente sårbarheter, forteller Guru Prasad Bhandari til Digi.

Modellen er trent med et datasett som er mye større enn sammenlignbare løsninger, noe som gir et mer robust grunnlag for å identifisere både kjente og ukjente svakheter.

– Datasettet vårt er 162 ganger større enn tidligere forsøk, noe som gir modellen vår tilgang til langt flere eksempler på både sårbar og trygg kode.

Datasettet inkluderer både sårbar og sikker kode hentet fra for eksempel Git Hub og andre åpne kildekodeprosjekter, men Guru forteller at det var atskillig enklere å finne sikker kode enn kode med kjente sårbarheter.

– Å samle inn sårbar kode er utfordrende, fordi få ønsker å offentliggjøre svakheter i kildekoden sin. Vi brukte derfor statiske analyseverktøy og åpne kildekodeprosjekter.

Et av de sentrale verktøyene i IOTVulcode er bruk av Common Weakness Enumeration (CWE), en standardisert oversikt over kjente svakheter i programvareutvikling. Dette gjør det mulig å kategorisere og beskrive ulike typer sårbarheter, noe som hjelper utviklere med å forstå problemene og finne løsninger.

Falske positive

En av de største utfordringene i IOTVulcode-prosjektet er håndteringen av falske positive, altså tilfeller der systemet feilaktig identifiserer trygg kode som sårbar. Dette skyldes blant annet ubalanserte datasett, hvor eksempler på sårbar kode er langt færre enn trygge kodesegmenter.

Slike feil kan føre til unødvendige advarsler, som igjen kan forsinke utviklingsprosessen og redusere tilliten til verktøyet.

For å møte denne problematikken har forskerne jobbet med å balansere datasettet og trene modellen med flere varianter av data for å forbedre nøyaktigheten. Selv om problemet ikke er fullstendig løst, ser forskerne modellen som et støtteverktøy som kan kombineres med menneskelig ekspertise for å gi mer pålitelige resultater.

– Falske positive er en av de største utfordringene innen programvare­sikkerhet. Vi forsøker å balansere datasettet for å redusere dette problemet.

Praktisk bruk

Systemet er designet for å integreres som en plugin i utviklingsmiljøer som Visual Studio Code eller Pycharm. Dette gjør det mulig for utviklere å identifisere sårbarheter i sanntid mens de skriver kode. På denne måten kan svakheter fikses tidligere i utviklingsprosessen, noe som både reduserer kostnader og øker sikkerheten.

Modellens inferens kjøres dermed lokalt – for eksempel på en bærbar PC. Treningen, derimot, var en del tyngre.

– Treningen av modellen tok rundt 16 timer på Nvidia A100 GPU-er for uttalelsesnivå og opptil 23 timer for funksjonsnivå, men dette er håndterbare tider, sier Guru.

Modellen skal med tiden også kunne brukes til automatisk fiksing av kode.

– Neste steg er å utvikle en løsning som automatisk genererer sikkerhets­oppdateringer, ved å oversette sårbar kode til reparert kode på samme måte som et språk oversettes.

Teamet har utviklet en tidlig versjon av dette systemet, basert på finjustering av eksisterende KI-modeller som Code T5 fra Microsoft.

Tilgjengelighet og veien videre

– Alt vi har utviklet, inkludert datasettet, modeller og kode, er tilgjengelig som åpen kildekode slik at andre kan bruke eller videreutvikle det.

IOTVulcode og verktøyene er dokumentert slik at brukere kan hente data, trene modellen eller bruke den ferdigtrente versjonen.

Fremover planlegger teamet å utvide prosjektet til å omfatte flere programmeringsspråk og bruksområder. De ønsker også å samarbeide med industrien for å gjøre løsningen til en kommersiell plattform.

IOTVulcode representerer et betydelig skritt mot å forbedre sikkerheten i IOT-systemer ved å tilby en løsning som både oppdager og fikser sårbarheter. Med et åpent og tilgjengelig rammeverk kan dette prosjektet bidra til sikrere teknologi for både utviklere og sluttbrukere.

Guru er oppmerksom på at alt kan misbrukes – inkludert dette prosjektet.

– Vi håper at verktøyene våre blir brukt til positive formål, selv om vi er klar over at slike teknologier også kan misbrukes.

Powered by Labrador CMS