Skrevet af

Morten Leth Hedegaard, Infrastructure Specialist

Meltdown og Spectre blev onsdag den 3. januar 2018 bekræftet af Googles Project Zero. Her er en forklaring på, hvad det er, hvorfor vi skal gøre noget, og hvad.

Det lyder som en James Bond filmtitel, men udfordringen med CPU-sårbarhederne, Meltdown og Spectre, er langt fra underholdende. For denne gang handler det ikke om sårbarheder i styresystemet eller applikationerne, som vi kan patche os ud af. I dette tilfælde er det et (fejl-)design i CPU-arkitekturen – altså hardwaren - der kan udnyttes, hvilket er helt nyt. Og producenterne kæmper nu for at få lavet BIOS-rettelser til at "lukke hullerne med".

Meltdown og Spectre blev onsdag den 3. januar 2018 bekræftet af Googles Project Zero. Herunder får du en kort forklaring på, hvad Meltdown og Spectre er, hvorfor vi skal gøre noget, og hvad vi skal gøre. Og vi tager det sidste først: what to do?

Har du brug for assistance til håndtering af udfordringen med Meltdown og Spectre? Kontakt din foretrukne edgemo-kontaktperson.

What to do?

Sørg for at installere leverandørernes patches ASAP! Det ser ud til, at Intel og Google har afsløret sårbarhederne for alle større leverandører på forhånd, så nu har de fleste allerede udgivet patches. 

Udover det mest oplagte såsom operativsystemer og hypervisorer, skal du huske alle former for storage, netværk og lignende komponenter, da de alle kører på operativsystemer, der også skal patches mod sårbarhederne. Og glem ikke jeres smartphones! Brug evt. denne tracker som hjælp til overblikket over enhederne. Microsoft er ikke på trackeren, men de udsendte en emergency update til Windows Update den 3. januar 2018.

Vær opmærksom på, at ovennævnte patches påvirker performance! En påvirkning, som kun er ubetydelig, når det gælder applikationer med lav I/O-aktivitet. Mens disse patches fuldt ud adresserer Meltdown, adresserer de kun et par kendte angreb, som Spectre muliggør. 

Spectre-sårbarheden åbner op for alt for mange muligheder for hackere, og den eneste rigtige løsning kan kun leveres med CPU-hardware. Og der går nok mindst to år, før dén processor lanceres – plus de år det tager dig at få erstattet den sidste påvirkede CPU. Indtil da må vi nok regne med mange kritiske patches mod nyopdagede Spectre-baserede angreb.

Det er også en virkelig god ide at installere annonceblokker nu, hvis du ikke allerede har det! Og bruger du Chrome, er aktivering af Site Isolation-funktionen også en god idé. Læs her hvorfor.

Efter denne artikel blev udgivet, er der kommet tilføjelser fra flere af edgemo's infrastructure specialists. Vi samler dem herunder, efterhånden som de tikker ind.

- om Microsoft-patchen

Patchen fra Microsoft forudsætter, at der sættes en registry-nøgle (se nedenstående). Microsoft har lagt implementeringsopgaven ud til Antivirus-producenterne. Hvis nøglen IKKE er på computeren, kan computeren IKKE installere opdateringen.

Hvis en server 2008 R2 ikke får opdateringen, kan forklaringen være, at antivirusproduktet på serveren ikke er opdateret, eller - i sjældne tilfælde - at der slet ikke ER et antivirusprodukt. Det bevirker, at nøglen ikke sættes, og dermed kan man ikke se opdateringen og ej heller installere den. Mon ikke, vi også kommer til at se en del af dette på Windows 7.

Inden man går i gang med at lege med sin registreringsdatabase, er det en god idé at sikre sig, at antivirus-backend'en supporterer patchen. Der er en grund til, at Microsoft har lagt det ud til antivirusproducenterne. På zdnet.com kan du se en oversigt over de producenter, der p.t. har meldt klar.

Registry key:
Key="HKEY_LOCAL_MACHINE"Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat"
Value Name="cadca5fe-87d3-4b96-b7fb-a231484277cc"
Type="REG_DWORD”
Data="0x00000000”

CPU’ens 'speculative execution'-funktion er central

Både Meltdown og Spectre udnytter funktionen "speculative execution". Uden dén ville processoren være inaktiv det meste af tiden og blot vente på at modtage I/O-svar fra perifere enheder, der er mindst 10 gange langsommere end processoren. Så i stedet for at vente på det reelle resultat, antager processoren det mest sandsynlige resultat, og eksekverer ud fra dét – deraf navnet ”spekulativ eksekvering”. Det sparer selvsagt tid. Viser det sig, at antagelsen ikke var korrekt, kasseres antagelsen, og der fortsættes fra det punkt, hvor ’gætteriet’ startede. Funktionen har eksisteret de sidste 20 år, hvilket desværre betyder, at alle aktive processorer er berørt.

Alle operativsystemer og al softwares sikkerhed er afhængig af CPU'ens evne til at sikre fuldstændig procesisolation – og både Meltdown og Spectre har med procesisolation at gøre. Procesisolation handler om, at alle processer arbejder i virtuelle adresse-områder, som er mappet til fysisk RAM på en måde, så de ikke overlapper hinanden - i stedet for at have direkte fysisk RAM-adgang. Disse hukommelsesallokeringer udføres og styres af hardwaren i CPU’ens Memory Management Unit (MMU).

Hvad er og gør Meltdown?

Navnet ’Meltdown’ spiller på, at barriererne, der normalt isolerer processer fra hinanden, er ”smeltet”. Meltdown er en fejl i MMU-logikken, der skyldes, at adressekontrollen hoppes over i løbet af den ”spekulative eksekvering” – og det er nemt for skurke og andre ballademagere at udnytte! Den ondsindede kode skal blot narre processoren ind i den spekulative eksekveringssti, og derfra udføre en ubegrænset læsning af en anden proces’ memory. Men hvorfor kasserer CPU’en ikke bare sådan en spekulativ eksevering, når den finder ud af, at den "kørte forkert"? Faktisk ER den kasseret, MEN den forbliver i CPU-cachen! Og selvom ingen proces kan læse indholdet af CPU-cachen direkte, kan det omgås ved at foretage legitime RAM-læsninger i processen og måle responstiden (alt gemt i CPU-cachen leveres jo hurtigere). Derfor har browserudbydernes p.t. travlt med at frigive patches, der gør JavaScript-timere "grovere".

Meltdown begrænses til Intel- og ARM-processorer. Men for Intel er Meltdown ekstremt ubehagelig, fordi sårbarheden er så nemt at udnytte, og mulighederne, den åbner op for, er virkelig skræmmende. Eksempelvis muligheden for at ”aflure” administratoradgangskoder, som skrives i en anden proces på samme operativsystem (se videoen herunder). Eller muligheden for adgang til din bitcoin-tegnebog?

Naturligvis skal den ondsindede kode først leveres til computeren, men det klarer JavaScript nemt via din browser. Fx indeholder tredjepartsannoncer på legitime websites ofte JavaScript, så det er en virkelig god ide at installere annonceblokker nu, hvis du ikke allerede har det! Og bruger du Chrome, er aktivering af Site Isolation-funktionen også en god ide.

 

Meltdown åbner fx for muligheden for at ”aflure” adgangskoder, som skrives i en anden proces på samme OS.

Hvad er og gør Spectre?

Spectre-sårbarheden påvirker alle moderne CPU'er, omend i en anden grad. Den baseres på en egenskab i forudsigelseslogikken, som implementeres af den såkaldte Branch Prediction Unit (BPU). BPU’en opsamler statistikker til den ”spekulative eksekvering”; men BPU’en skelner IKKE mellem forskellige processer. Det gør det muligt for den ondsindede kode at "træne" BPU’en ved utallige gange at køre en konstruktion, der er identisk med én i den angrebne proces. Dermed kan den effektivt styre ”spekulativ eksekvering” af de angrebne processer, når først den rammer sin egen konstruktion, så man dumper "lækkerierne" i CPU-cachen.

Læs mere om Meltdown og Spectre skrevet af en række uafhængige forskere 

Mens Meltdown kan "scanne" CPU-cache direkte, er det med Spectre selve offer-processen, der sætter værdien i CPU-cachen. Således er det kun offer-processen selv, der er i stand til at udføre den tidsbaserede "scanning" af CPU-cachen. Hackernes fordel er, at de fleste apps har API, som man kan ’ringe’ til og få til at gøre det, man har brug for - og måle reponstiden på API-opkaldet. Et optimalt udbytte kræver dog en dybdegående analyse af den specifikke applikation, hvilket for hackerne derfor kun er værd at forfølge ved open source apps.

Men Spectres "skønhed" er, at der tilsyneladende er mange måder at få offer-processen til at lække sine data til CPU-cachen på. Google-ingeniører fandt og dokumenterede nogle få, men desværre forventes der mange flere. Hvem mon finder dem først?

Det lyder måske nemt for hackerne, men virkeligheden er heldigvis mere kompleks. Omvendt er noget af det Ransomware, 2017 bød på, ret avanceret :-(

Tænd kontakten

Vil du vide mere?

Udfyld nedenstående, så kontakter vi dig senest næste arbejdsdag. Du er også altid velkommen på +45 69 89 88 00 eller info@edgemo.com - og i menuen under Kontakt finder du alle edgemo people's kontaktdata.