Oppdager ukjente datavirus

Mens dagens antivirusprogrammer bare har muligheten til å oppdage kjente virus, kan en ny oppfinnelse ved Universitetet i Oslo også sette ukjente virus ut av spill.

VAKSINE: Antivirusprogrammet til Tom Lysemose overvåker programmene på datamaskinen din slik at de ikke skal bli lurt av datavirus til å gjøre andre ting enn det de nettopp var programmert til å gjøre. Foto: Ståle Skogstad

Tom Lysemose er den aller første i verden som har utviklet et dataprogram som er i stand til å oppdage angrep av ukjente datavirus på en effektiv måte. I fjor tok han hovedfagseksamen i sin helt spesielle antivirusprogramvare ved Institutt for informatikk. Nå har doktorgradsstudenten fått noen hundre tusen kroner i etablererstipend og startet et tett samarbeid med Birkeland innovasjon ved Universitetet i Oslo for å patentere programvaren sin og opprette en bedrift som kan lease ut eller selge programvaren. Mulige kunder er store antivirusselskap.

Problemet med dagens antivirusprogram er at de bare beskytter mot kjente virus. Ukjente virus blir ikke stanset.

Det fins mengder av virus. Noen virus krever en aktiv handling fra deg som bruker for å infisere datamaskinen din, slik som at du blir lurt til å åpne virusbefengte e-post. Andre virus er mye mer utspekulerte. Uten at du oppdager noe som helst og uten at du har gjort en eneste tabbe kan virus angripe programvaren din, slik at viruset tar kontroll over maskinen og gjør slemme ting som å slette alle dokumentene dine.

Programmeringsfeil

Forklaringen på hvorfor disse ubehagelighetene er mulige, er at svært mange dataprogrammer inneholder programmeringsfeil. Den vanligste feilen kalles Buffer-overflow.

– Pinlig nok har denne programmeringsfeilen også skjedd hos dem som lager antivirusprogrammer, slik som Symantec, forteller Tom Lysemose. Men han påpeker at programmeringsfeilen er vanlig for alle programmer som er skrevet i C, et av verdens vanligste programmeringsspråk.

– Nettleseren Internet Explorer er et slikt eksempel. Programmeringsfeilen er også funnet i ip-telefonisystemet Skype og et databaseprogram fra Microsoft som kalles SQL-server. I 2003 gikk det skikkelig galt. Da tok viruset Slammer automatisk kontroll over svært mange databaseservere. Dette er superraske maskiner. Viruset kunne derfor spre seg lynraskt. Selv om viruset ikke var spesielt destruktivt, spredte det seg så mye at internett gikk tregt. Systemer over hele verden ble påvirket, og en del bankautomater ble satt ut av spill, forteller Tom Lysemose.

Slurvete programmerere

For å forstå oppfinnelsen til Lysemose trenger du en kjapp innføring i hvorfor Buffer-overflow er en uheldig programmeringsfeil.

I internhukommelsen i datamaskinen fins en rekke beholdere som kalles for buffere.

Når du kjører et program som kommuniserer over internett, slik som nettleseren din, er den tekniske løsningen innrettet slik at innholdet i en buffer på nettmaskinen blir overført til en buffer i datamaskinen din.

Et eksempel er tasting av passord på en internettside. Passordet blir lagret i en egen buffer på maskinen din. Prøv å tenk deg at denne bufferen bare har plass til åtte tegn. Hvis programmereren er så distré at han glemmer å sjekke størrelsen, flyter bufferen over hvis noen taster inn mer enn åtte tegn.

Uheldigvis er ikke alle programmerere like bevisste på dette. Hvis de som lagde programmet ditt ikke har programmert inn en liten mekanisme som sjekker om det er nok plass i bufferen din, vil innholdet i det fysiske området rett ved siden av bli overskrevet. Det er svært uheldig. Datamaskinen gir intet varsel. Den fortsetter å kjøre som om intet har skjedd.

Uheldigvis kunne det overskrevne området kanskje inneholde noen viktige instruksjoner til dataprogrammet ditt, slik som ”Jeg vil veldig gjerne ha en oversikt over dokumentene mine”.

Det er nettopp denne svakheten som virusmakerne utnytter. De kan da lage et virus som sender inn en større datapakke enn bufferen på maskinen din har plass til. Hvis hackeren oppdager nøyaktig hvor de viktige instruksjonene finnes, kan viruset programmeres slik at det overskriver disse instruksjonene med helt andre kommandoer, slik som ”Fjern alle dokumentene mine prompte”. Da er du ille ute.

Stanser virus i siste liten

Det er nettopp her oppfinnelsen til Tom Lysemose kommer inn. Programmet hans, som han har kalt for ProMon, kan riktignok ikke hindre at ukjente virus angriper bufferne og områdene rundt, men ProMon overvåker programmene dine slik at de ikke skal gjøre andre ting enn det de er programmert til å gjøre. Det betyr at ProMon stopper programmet hvis programmet plutselig begynner å gjøre andre ting.

Den tekniske løsningen er en ny måte å tenke virusbekjempelse på. Alle moderne dataprogrammer er bygd opp av moduler. Modulene kommuniserer med hverandre og med operativsystemet på maskinen din. Mellom modulene er det veldefinerte grenseoverganger.

– Hele poenget er at ProMon legger seg inn i programmet, slik som nettleseren Internet Explorer, for å overvåke samspillet mellom programmodulene. Så lenge programmet har lovlige overganger mellom modulene gjør ProMon intet. Men med en gang det skjer en ulovlig overgang, skjønner ProMon at et virus har vært på ferde og stopper programmet prompte, forteller Tom Lysemose.

Han presiserer at antivirusprogramvaren hans kan overvåke et hvilket som helst dataprogram. Programmet hans er riktignok ikke alene på markedet, men alle testene til Tom Lysemose viser at virusknekkeren hans er 30 ganger raskere enn konkurrentens fra Massachusetts Institute of Technology.

Foregangsstudent

Teknologisjef Ivar Bergland i Birkeland innovasjon sier de har tro på produktet.

– Vi legger masse ressurser i dette. Teknologien blir presentert for de store antivirusselskapene i mars, men bransjen er tøff, med mange tunge aktører, påpeker Ivar Bergland, som legger til at dette er den første bedriften på Birkeland innovasjon som er blitt grunnlagt på bakgrunn av en hovedfagsoppgave.

Emneord: Matematikk og naturvitenskap, Informasjons- og kommunikasjonsvitenskap, Distribuerte systemer Av Yngve Vogt
Publisert 1. feb. 2012 11:57
Legg til kommentar

Logg inn for å kommentere

Ikke UiO- eller Feide-bruker?
Opprett en WebID-bruker for å kommentere