De siste dagene har vi fått høre om to store sikkerhetshull som rammer de fleste datamaskiner og mobiltelefoner i bruk i dag. Hva er egentlig greia?
Sikkerhetsforskere fra en rekke institusjoner, blant annet Googles Project Zero og det tekniske universitetet i Graz fant i fjor alvorlige feil i måten moderne prosessorer behandler informasjon på.
I praksis åpner disse feilene for at sensitiv data som passord og annen privat informasjon kan leses ukryptert fra maskinens minne.
De to sikkerhetshullene har fått navnene Spectre og Meltdown. Før vi dykker ned i hva de to hullene innebærer, må vi bare kjapt innom hvordan datamaskinen behandler informasjon.
Operativsystemkjernen er sjefen
Datamaskinens hjerne er prosessoren kalt CPU. I sakene om Meltdown og Spectre-sårbarhetene har vi hørt mye om selskapet Intel. Intel er en av de største produsentene av prosessorer, og lager den fysiske delen inne i maskinen som fungerer som hjernen.
For at maskinen skal kunne fungere må programvaren snakke med den fysiske prosessoren – hjernen.
I de fleste systemer koordineres dette av operativsystemet: f.eks. Windows, MacOS, iOS eller Android. CPU-en kjører programmene på maskinen, disse kan kjøre i forskjellige beskyttelsesnivåer.
Den aller helligste delen av operativsystemet kalles kjernen, deretter kommer det ytre nivå kalt applikasjons- og maskinvarelaget. Kjernen er den som bestemmer hvordan ressursene i datamaskinen skal utnyttes og fordeles på de ulike applikasjonene som kjører.

Enkelt forklart funker det omtrent sånn:
Når du ber en applikasjon om å gjøre noe, må den forhandle med kjernen for å få ressurser fra maskinvaren til å utføre handlingen du etterspør.
Dette har selvsagt mange fordeler: Kjernen har oversikt over alle applikasjoner som kjører, og kan fordele ressursene på best mulig måte. Det fører også til økt sikkerhet, da kjernen kan gi applikasjoner egne båser for lesing og skriving til minne, og dermed sørge for at én applikasjon ikke kan lese minnet fra en annen.
Uten denne sikkerhetsarkitekturen, som kalles for beskyttelsesringer, ville det være mulig for et virusinfisert program å lese minnet fra f.eks. nettleseren din mens du skriver inn et passord.

Men siden kjernen har ansvar for å fordele ressurser og sørge for at maskinen kjører så raskt som mulig, har prosessorleverandørene bestemt at kjernen kan anta hva du kommer til å gjøre. Dette kalles spekulativ utførelse, eller speculative execution.
Det er denne optimaliseringen i maskinvaren angriperne kan utnytte.
Ett eksempel
La oss overgeneralisere for å gå litt dypere: Når du gjør en handling, som å skrive inn en nettadresse, så antar prosessoren at du kommer til å trykke på ENTER, og «kjører» denne handlingen før du i det hele tatt har gjort det. Ofte kommer du til å trykke ENTER, og slik har prosessoren spart tid.
Hvis du derimot ombestemmer deg, og lukker nettleservinduet i stedet, har kjernen gitt en instruks som egentlig ikke skulle blitt kjørt. Da må instruksen rulles tilbake til sin originale tilstand, men det vil ligge igjen «rester» av operasjonen som fremmede kan utnytte i svakheten kalt Meltdown.
Slik kan angriperen få nyss om hvor i minnet passordet ditt er lagret.
Og når de vet hvor i minnet sensitive opplysninger ligger kan de selv utføre spekulative utførelser som vil bli rullet tilbake, men først etter at de har hentet opplysningene de er ute etter.
For Spectre er det litt vanskeligere: Da får man ikke tilgang til å se «restene» og man må derfor i større grad gjette seg fram ved å utføre spekulative operasjoner.
Egentlig kjempesmart, men…
Spekulativ utførelse er på papiret kjempesmart, men har altså åpnet døren for både Spectre og Meltdown.
Disse sikkerhetshullene utnytter hvordan prosessoren utfører spekulativ utførelse, og gjør det mulig for applikasjoner å få tilgang til hele datamaskinens minne.
Her kan du se en demonstrasjon som viser hvordan man kan hente ut passord ved hjelp av Meltdown:
Using #Meltdown to steal passwords in real time #intelbug #kaiser #kpti /cc @mlqxyz @lavados @StefanMangard @yuvalyarom https://t.co/gX4CxfL1Ax pic.twitter.com/JbEvQSQraP
— Michael Schwarz (@misc0110) 4. januar 2018
Noen vil kanskje synes denne forklaringen er for enkel og det finnes flere kilder som går dypere. Blant annet forklarer og oppdaterer Nasjonal sikkerhetsmyndighet i detalj hva feilene innebærer og hvor alvorlige de ser dem.
Forskerne har også publisert to akademiske tekster som beskriver fremgangsmåten, muligheter, og begrensninger.
De påvirker omtrent alle
Meltdown, som er svakheten som er lettest å utnytte, påvirker de fleste Intel-prosessorer bygget etter 2003.
Sikkerhetsoppdateringene som er foreslått vil, ifølge New York Times, kunne redusere prosessorhastighetene opptil 30%, men dette er et øvre anslag. Intel skriver på sine sider at den vanlige PC-bruker ikke vil oppleve et nevneverdig hastighetstap, og at det vil bli mindre over tid.
Spectre påvirker de fleste moderne prosessorer som Intel, AMD, or ARM.
De fleste moderne mobiler, pcer, og skyløsninger som Amazon Web Services er derfor påvirket av disse svakhetene.
Så ikke se bortfra at mange som jobber med IT-sikkerhet ble satt i beredskapsmodus etter at britiske The Register tirsdag først omtalte sikkerhetssvakhetene. Det flyttet publiseringen av svakhetene tidligere og satte mer press på produsentene om å få ut sikkerhetsoppdateringer.
Hva skjer framover?
Det har allerede kommet en rekke sikkerhetsoppdateringer for Meltdown (en hjelpsom oppdateringsliste finner du hos NorCERT), og det er forventet at det vil komme en rekke til de neste ukene. Allerede nå har det kommet oppdateringer til operativsystemene Windows, MacOS, og Linux.
Paul Kocher, en av forskerne som var med på å avsløre svakhetene, tror Spectre vil være et problem som vil hefte ved oss over flere maskinvare-oppdateringer.
Navnevalget gir kanskje en antydning om hvor lenge forskerne tror Spectre vil hjemsøke oss. Det betyr spøkelse.