Teknologi

Hull i computeren

Den siste uken har WannaCry-viruset infisert hundretusener av datamaskiner og tatt filene som gisler. Men hva er det egentlig som skjer når et datavirus sniker seg inn i maskinen din? Her er spørsmålene du ikke turte å stille.

Hva mener ekspertene når de sier hull? Det er ikke et fysisk hull, vel?

Nei, det er ikke fysisk. Hullet er et «hull i muren». I utgangspunktet er det bare eieren, altså du som sitter innenfor muren, som skal bestemme hva datamaskinen skal gjøre. Bare du skal kunne starte tekstbehandleren eller lese innholdet i en fil. Men av og til, egentlig ganske ofte, gjør programmerere små, unnselige feil. Og disse feilene kan, noen ganger, la seg utnytte av smarte typer til å få datamaskinen til å kjøre hva som helst, eller til å lese noe de ikke burde få lese. Alle sånne feil kalles hull – eller sårbarheter.

Men du: Uansett hva du gjør: IKKE RØR DETTE HULLET!

Hvordan klarer de det?

Det finnes mange kategorier av hull, men en som er ganske vanlig og lett å forklare er en såkalt overflytfeil. Det var en slik feil WannaCry brukte for å spre seg fra maskin til maskin på et nettverk.

Et dataprogram, for eksempel en tekstbehandler eller en nettleser, er egentlig en lang liste med enkle, små instruksjoner: Hvis brukeren trykker en tast, hopp til linje 2800! Hvis tasten var «a», legg til en «a» i minnet og hopp videre.

Når programmet starter opp, lastes det inn i et korttidsminne. Se for deg minnet som en enorm settekasse: Et digert rutenett av nummererte luker som inneholder hvert sitt tall. Programmet, den lange rekken på millioner av instruksjoner, stykkes opp og puttes etter hverandre i kassen. I datamaskinen finnes det en kjerne, en prosessor, som kan lese slike instruksjoner. For eksempel betyr kommando 64 «legg til 1 i det lille minnet ditt». Prosessoren kan nemlig huske noen få ting. En av tingene den husker, er nummeret til en luke i settekassen. Den leter inni denne luken, utfører instruksjonen som står der, og så fortsetter den bortover til neste luke – med mindre instruksjonen er å peke på en annen luke.

Se for deg minnet som en enorm settekasse: et digert rutenett av nummererte luker som inneholder hvert sitt tall.

Men settekassen brukes også til å lagre data, for eksempel innholdet på en nettside du leser. Tenk deg nå et program som skal lese inn litt data fra internett. Da ber det først om at det ryddes plass i settekassen, la oss si ti skuffer. Programmereren vet adressen til den første skuffen, og sender så instruksjonen: «putt disse nye dataene i den skuffen og utover».

Men så sender en ond virusprogrammerer plutselig tyve skuffefuller av data. Hva skjer nå?

Det kan være at det bare fylles på som vanlig: Første databit i skuff en, og så videre, opp til tyve. Dermed er ti skuffer av minnet vårt overskrevet av data som angriperen har sendt inn. Men vent litt: Settekassen er full av instruksjoner – programmet vårt! Nå er en bit av det skrevet over. Om den som sender dataene er smart, kan han ha sendt tall som prosessoren forstår som instruksjoner. Om programmet går videre til akkurat disse adressene i settekassen, er angrepet plankekjøring. Det er bokstavelig talt angriperens instruksjoner som kjøres, på din maskin. Muren er brutt.

Men det kan ikke være så enkelt…

Nei, heldigvis ikke. Programmerere vet at data fra internett er farlig å laste rett inn i settekassen, og de forsøker å passe på at et program aldri kan ta over på denne måten. Men til syvende og sist er en overflytfeil som WannaCry mulig. Den fantes i et program som kjører på mange Windows-datamaskiner: SMB, programmet som har ansvar for deling av filer på nettverket. Du har brukt det dersom du kobler deg til serveren på jobb eller deler en mappe på hjemmenettverket. Teknikken, som kalles Eternalblue, krever en helt spesiell rekkefølge av kommandoer til SMB, nesten som en trylleformel. Ved hjelp av en rekke ulike forsendelser av data sørger denne teknikken for at settekassen blir nøyaktig slik angriperen vil på akkurat riktig tidspunkt, før den sender en siste pakke, som sender prosessoren til akkurat riktig sted. Og med instruksjonene på plass installeres en bakdør – Doublepulsar – som gir angriperen anledning til å sende en spesiell kode, nesten som en banke-kode til barnas trehytte, og laste ned og kjøre hvilket program som helst.

Men hvorfor?

Løsepenger. WannaCry-angriperne brukte dette hullet til å kjøre et program som låste inne mange av filene på datamaskinen bak et veldig langt og tilfeldig passord. Etterpå sender WannaCry passordet til bandittene, som lover å gi tilbake passordet mot 300 dollar i bitcoins. Foreløpig tyder enkelte rapporter på at folk ikke får låst opp filene sine selv om de betaler. Torsdag formiddag hadde utpresserne mottatt 45 bitcoins, eller om lag 700 000 norske kroner.

Noen tidlige analyser viser også at noe av koden ligner på kode hackergruppen Lazarus, som egentlig er staten Nord-Korea, har brukt tidligere. Det kan være at de er involvert – eller at WannaCry-folkene bare har stjålet koden. Det finnes ikke lenger noen ære blant tyver.

Hvordan oppdaget noen trylleformelen?

Metoden ble oppdaget av Equation Group, en enhet som de aller fleste regner med er et dekknavn for National Security Agency, altså amerikansk etterretning. De lagde et enkelt program for å benytte seg av hullet, som de la til i verktøykassen sin. I løpet av 2016 og 2017 har en annen gruppe, The Shadow Brokers, publisert litt og litt av denne verktøykassen på internett. Det spekuleres for øvrig i om The Shadow Brokers kan være russisk etterretning.

NSA utviklet teknikkene senest i 2013, og har altså visst om hullet siden da. Microsoft ble ikke informert om feilen før i år. Selv om ingenting er bekreftet, tyder sammenfallet i tid på at Microsoft ble varslet av NSA på grunn av Shadow Brokers’ lekkasje. Microsoft har kritisert NSA kraftig for at de har valgt å holde slike hull hemmelige for å kunne bryte seg inn hvor de vil, og dermed holdt millioner av datamaskiner sårbare.

Men Microsoft har også sine svin på skogen. Eternalblue avhenger av en tretti år gammel protokoll for hvordan SMB-mekanismen skal fungere, versjon 1. Ned Pyle, sjefen for SMB i Microsoft, har advart mot å bruke denne i lang tid. SMB1 ble utviklet i en æra uten internett, og mangler flere moderne sikkerhetsventiler som etterfølgerne har, selv uten å regne med gapende hull som Eternalblue. I et blogginnlegg med tittelen «Stop using SMB1» skriver han at «hvis du kjører SMB1, er du og dine data eid av selv den enkleste angriperen». Her snakker han altså om SMB1 selv uten Eternalblue-hullet, som ble tettet av en oppdatering i mars. Likevel har Microsoft altså valgt å la alle versjoner av Windows støtte SMB1 som standard, slik at nye maskiner kan snakke med gamle lagringsløsninger helt uten problemer. Fint for leverandørene, som slipper å oppgradere til moderne løsninger, men dumt for verdens datahelse.

Hva kan jeg gjøre?

Det er ikke mulig å beskytte seg helt. Men disse tingene reduserer risikoen: Installer alltid oppdateringer så fort som mulig. Det var bare maskiner som ikke hadde installert sikkerhetsoppdateringen fra mars i år, som ble rammet denne gangen. Ikke klikk på mistenkelige vedlegg. Og mot WannaCry er en av de aller beste forsvarsverkene å ha backup av det du bryr deg om – da er det bare å fjerne alt og laste inn backupen.

Men jeg har Mac…

Ikke føl deg for trygg. Windows har riktignok en kombinasjon av usikre standardinnstillinger, mange gamle installasjoner og veldig mange brukere, og rammes derfor desidert oftest av slike ting. Men senest 15. mai sendte Apple ut en bunke oppdateringer med flere nyoppdagede hull i Ios, Os X, Itunes, Safari og Apple TV.

Endret 19.5.: En tidligere versjon kalte The Shadow Brokers for The Shadow Group.

Mer fra Teknologi