CPU-sårbarheter har vært på topp den siste tiden, med Zenbleed og Downfall som to nylige. Men hvor bekymret bør du være?
CPU-sårbarheter har vært inn og ut av nyhetene de siste årene, og de kommer ofte med en ganske skummel melding når det kommer til at de blir avslørt. I tilfelle av Zenbleed og Fall, var det at ethvert program på datamaskinen din kunne få tilgang til minnet til et hvilket som helst annet program som kjører under de rette omstendighetene. Høres intenst ut, ikke sant?
Det er imidlertid ikke fullt så ille som det ser ut til. Det er åpenbart betydelig nok til å garantere en avsløring og en programvareoppdatering for å fikse feilene, selv på bekostning av ytelsen, men hva er det egentlig som forårsaker disse sikkerhetsproblemene? Bør du være bekymret?
Bør du være bekymret for CPU-sårbarheter som Zenbleed, Downfall og Inception?
For å være ærlig påvirker ingen av disse utnyttelsene det store flertallet av mennesker. Selv om de kan lekke data fra ett program til et annet, har enhver del av skadelig programvare på forbrukerens maskin allerede et stort tilgangsnivå som det kan misbruke. I stedet, hvor disse angrepene er spesielt bekymringsfulle er i cloud computing-sammenhenger.
For å forstå problemet, må du forstå at mange forskjellige skyservere er ganske enkelt datamaskiner med mye hestekrefter, stor nettverksbåndbredde og noe annen spesialisert maskinvare hvis nødvendig. Mange selskaper leier ut det som kalles en VPS, eller en virtuell privat server, som er virtualiserte maskiner med begrenset kraft som dusinvis av andre virtuelle maskiner kan kjøre mot.
Der dette kan være et problem er at én person på en virtuell maskin kan utføre en av disse sårbarheter, få innsikt i hvilke data som flyter gjennom prosessoren, inkludert data fra andre virtuelle maskiner. Dette skal ikke være mulig og er et stort sikkerhetsbrudd. Det er derfor da Zenbleed ble avslørt, var det allerede patcher for AMDs Epyc-prosessorer, som er rettet mot serverbruk.
De mest alvorlige CPU-sårbarhetene for tiden
Bransjestandarden for å "rangere" sårbarheter og deres alvorlighetsgrad er gjennom Common Vulnerability Scoring System (CVSS). Det gir et kvantitativt mål på alvorlighetsgrad, ettersom de ulike aspektene ved sårbarheten vil påvirke poengsummen. Den måler ved å ta hensyn til følgende:
- Angrepsvektor: Nettverk/tilstøtende/lokalt/fysisk
- Angrepskompleksitet: Lav høy
- Privilegier kreves: Ingen/Lav/Høy
- Brukerinteraksjon: Ingen/Obligatorisk
- omfang: Uendret/Endret
- konfidensialitet: Ingen/Lav/Høy
- Integritet: Ingen/Lav/Høy
- Tilgjengelighet: Ingen/Lav/Høy
Alle disse klassifiserer alvorlighetsgraden av en feil. For eksempel en sårbarhet som kan kjøres over et nettverk med lav kompleksitet, ingen rettigheter kreves, ingen brukerinteraksjon, med endret omfang, høy datakonfidensialitetslekkasje, høy dataintegritetsbrudd og høy innvirkning på tilgjengelighet vil score en perfekt 10 i CVSS 3.1, den høyeste poengsummen mulig.
Med den beregningen kan vi vurdere skaden som Zenbleed og Downfall er i stand til. Spoiler: De er de samme, selv om de påvirker forskjellige CPUer. Derfor, mens de scorer et visst beløp i i sammenheng med sårbarheter, kan de påvirke forskjellige mengder produkter, og det vil ikke påvirke deres score. CVSS-poeng er i hovedsak bare for triage, men forteller ikke hele historien.
Zenbleed: 6,5 (medium)
- Angrepsvektor: Lokalt
- Angrepskompleksitet: Lavt
- Privilegier kreves: Lavt
- Brukerinteraksjon: Ingen
- omfang: Endret
- konfidensialitet: Høy
- Integritet: Ingen
- Tilgjengelighet: Ingen
Forklaring: Angrepsvektoren krever lokal tilgang til maskinen (som i, den kjører på maskinen) mens den heller ikke har noen innvirkning på integriteten til dataene på maskinen eller tilgjengeligheten. Den endrer imidlertid omfang (som betyr at den påvirker ressurser utover privilegiene) og angrepskompleksiteten, og rettighetene som kreves for å utføre er lave. Det bryter også totalt konfidensialiteten til informasjonen på maskinen.
Nedgang: 6,5 (middels)
- Angrepsvektor: Lokalt
- Angrepskompleksitet: Lavt
- Privilegier kreves: Lavt
- Brukerinteraksjon: Ingen
- omfang: Endret
- konfidensialitet: Høy
- Integritet: Ingen
- Tilgjengelighet: Ingen
Forklaring: Angrepsvektoren krever lokal tilgang til maskinen (som i, den kjører på maskinen) mens den heller ikke har noen innvirkning på integriteten til dataene på maskinen eller tilgjengeligheten. Den endrer imidlertid omfang (som betyr at den påvirker ressurser utover privilegiene) og angrepskompleksiteten, og rettighetene som kreves for å utføre er lave. Det bryter også totalt konfidensialiteten til informasjonen på maskinen.
Begynnelse: 5,6 (middels)
- Angrepsvektor: Lokalt
- Angrepskompleksitet: Høy
- Privilegier kreves: Lavt
- Brukerinteraksjon: Ingen
- omfang: Endret
- konfidensialitet: Høy
- Integritet: Ingen
- Tilgjengelighet: Ingen
Forklaring: Angrepsvektoren krever lokal tilgang til maskinen (som i, den kjører på maskinen) mens den heller ikke har noen innvirkning på integriteten til dataene på maskinen eller tilgjengeligheten. Den endrer imidlertid omfang (som betyr at den påvirker ressurser utover privilegiene), angrepskompleksiteten er høy, og privilegiene som kreves for å utføre er lave. Det bryter også totalt konfidensialiteten til informasjonen på maskinen.
Spektre: 5,6 (middels) (lappet)
Spectre, til tross for at det er et mer utbredt fenomen, scorer faktisk mindre enn Zenbleed og Downfall. Det er takket være det faktum at angrepskompleksiteten ble kalt "Høy", noe som falt poengsummen.
- Angrepsvektor: Lokalt
- Angrepskompleksitet: Høy
- Privilegier kreves: Lavt
- Brukerinteraksjon: Ingen
- omfang: Endret
- konfidensialitet: Høy
- Integritet: Ingen
- Tilgjengelighet: Ingen
Forklaring: Angrepsvektoren krever lokal tilgang til maskinen (som i, den kjører på maskinen) mens den heller ikke har noen innvirkning på integriteten til dataene på maskinen eller tilgjengeligheten. Den endrer imidlertid omfang (som betyr at den påvirker ressurser utover privilegiene), angrepskompleksiteten er høy, og privilegiene som kreves for å utføre er lave. Det bryter også totalt konfidensialiteten til informasjonen på maskinen.
Nedsmelting: 5,6 (middels) (lappet)
Som Spectre scorer Meltdown lavere enn Zenbleed og Downfall, på grunn av den større angrepskompleksiteten som kreves.
- Angrepsvektor: Lokalt
- Angrepskompleksitet: Høy
- Privilegier kreves: Lavt
- Brukerinteraksjon: Ingen
- omfang: Endret
- konfidensialitet: Høy
- Integritet: Ingen
- Tilgjengelighet: Ingen
Forklaring: Angrepsvektoren krever lokal tilgang til maskinen (som i, den kjører på maskinen) mens den heller ikke har noen innvirkning på integriteten til dataene på maskinen eller tilgjengeligheten. Den endrer imidlertid omfang (som betyr at den påvirker ressurser utover privilegiene), angrepskompleksiteten er høy, og privilegiene som kreves for å utføre er lave. Det bryter også totalt konfidensialiteten til informasjonen på maskinen.
Den største årsaken: Branch prediksjon
Kilde: AMD
Branch prediksjon og spekulativ utførelse refererer stort sett til når datamaskinen din utfører operasjoner som ikke er nødvendige for øyeblikket, men vil være i påfølgende sykluser. Det gjøres ofte i tider når systemet ditt har ledige ressurser siden det øker hastigheten på den totale behandlingen når instruksjoner eller data ellers ennå ikke ville være klare for CPU. Hvis arbeidet som er utført ikke er nødvendig, blir det vanligvis forkastet, og prosessoren kan hoppe tilbake dit den skal for å utføre neste korrekte instruksjon. Når den gjør dette, kalles dette en grenfeilprediksjon.
For en mer dyptgående forståelse av grenprediktorer, forestill deg et scenario der et program konsekvent legger til de samme to tallene i utførelsen. På et tidspunkt kan prosessoren gjenkjenne dette mønsteret og forberede de neste trinnene hvis metoden der de to numrene legges til, blir kalt opp igjen. Hvis det resultatet endres på et tidspunkt, selv om prosessoren planla at de samme to tallene skulle være de samme, vil gjetningen bli kastet ut og erstattet av den faktiske utførelsesflyten. Men for tiden som disse tallene er det samme, så kan prosessoren hoppe gjennom disse instruksjonene raskt.
Det er imidlertid mange problemer når det kommer til spekulativ utførelse, og sårbarheter som Spectre, Zenbleed, Downfall og flere er et resultat. Det er en kraftig funksjon som vi skylder mye av dagens CPU-ytelse, men det er et hovedmål når forskere ser etter sårbarheter i CPUer.
Avbøtende: En ytelseshemmer
Å redusere disse sårbarhetene er av ytterste viktighet, men problemet er at disse avbøtingene ofte belaster ytelsen. I tilfellet med AMDs nyeste Zenbleed, kan reduksjonen se enorme ytelseskostnader.
Grunnen til dette er at den eneste virkelige måten å unngå det på er å deaktivere eller endre virkemåten til grenprediktoren i den berørte prosessoren. Det samme ytelsestreffet finner du i begrensningene for Intels fall, med tidlige rapporter som antyder ytelseseffekter på opptil 39 %. Episke spill en gang kjent delt CPU-bruk grafer når Meltdown-sårbarheten ble avslørt, og hvor stor innvirkning disse begrensningene hadde på selskapets CPU-bruk. Det var en stor økning i CPU-bruk, som man kunne forvente. Der ting blir skummelt er med løsningen for AMDs Inception, ytelse ble funnet å falle med opptil 54 %.
Fordi sårbarheter som dette påvirker funksjoner som er grunnleggende for prosessoren, er det vanskelig å virkelig fikse dem bortsett fra å deaktivere eller alvorlig lemleste kjernefunksjonene. Spekulativ henrettelse er utrolig viktig, og disse avbøtningene vil bli følt av mange mennesker. Spillytelsen er mindre forutsigbar, så hvis PC-ens primære bruk er spill, kan du være det OK siden datamaskinen din ikke kan gi så mange spådommer, men disse problemene skaleres opp i mye større systemer.
Blir fremtidige prosessorer berørt?
Heldigvis, når det gjelder både Intel Downfall og Zenbleed, påvirker disse utnyttelsene eldre prosessorer. Nyere prosessorer fra begge selskapene er trygge, og det er ingenting å bekymre seg for nå. En betydelig redesign er vanligvis det som ender opp med å fikse disse problemene. For eksempel påvirket Spectre Intels åttende og niende generasjons CPUer, men niende generasjon inkorporerte en maskinvareversjon av programvarefiksene som ble implementert, komplett med prestasjonshiten. Intels 10. generasjon var fortsatt trygg, men hadde heller ikke lenger en ytelsespåvirkning fra disse avbøtende tiltakene.
Som et resultat, gitt at både Downfall og Zenbleed allerede var fikset i de nyeste versjonene av deres respektive prosessorer, har ikke brukerne mye å bekymre seg for. Selvfølgelig kan det alltid bli oppdaget flere sårbarheter, men på dette tidspunktet er du trygg.