CPU-sårbarheder har været i højsædet for nylig, hvor Zenbleed og Downfall er to seneste. Men hvor bekymret skal du være?
CPU-sårbarheder har været ind og ud af nyhederne de seneste år, og de kommer ofte med en ret skræmmende besked, når det kommer til, at de bliver afsløret. I tilfælde af Zenbleed og Fald, det var, at ethvert program på din computer kunne få adgang til hukommelsen i ethvert andet program, der kører under de rigtige omstændigheder. Det lyder intenst, ikke?
Det er dog ikke helt så slemt, som det ser ud til. Det er åbenbart væsentligt nok til at berettige en afsløring og en softwareopdatering til at rette fejlene, selv på bekostning af ydeevnen, men hvad er det præcist, der sker for at forårsage disse sikkerhedsproblemer? Bør du være bekymret?
Skulle du være bekymret for CPU-sårbarheder som Zenbleed, Downfall og Inception?
For at være ærlig påvirker ingen af disse bedrifter det store flertal af mennesker. Selvom de kan lække data fra et program til et andet, har ethvert stykke malware på en forbrugers maskine allerede et stort adgangsniveau, som det kan misbruge. I stedet, hvor disse angreb er særligt bekymrende er i cloud computing sammenhænge.
For at forstå problemet skal du forstå, at mange forskellige cloud-servere er ganske enkelt computere med mange hestekræfter, en stor netværksbåndbredde og noget andet specialiseret hardware if påkrævet. Mange virksomheder udlejer det, der kaldes en VPS, eller en virtuel privat server, som er virtualiserede maskiner med begrænset strøm, hvor dusinvis af andre virtuelle maskiner kan køre hen imod.
Hvor dette kan være et problem er, at én person på én virtuel maskine kunne udføre en af disse sårbarheder, få indsigt i, hvilke data der strømmer gennem processoren, herunder data fra andre virtuelle maskiner. Dette burde ikke være muligt og er et stort brud på sikkerheden. Det er derfor, da Zenbleed blev afsløret, var der allerede patches til AMD's Epyc-processorer, som er rettet mod serverbrug.
De mest alvorlige CPU-sårbarheder i øjeblikket
Branchestandarden for "rangering" af sårbarheder og deres alvor er gennem Common Vulnerability Scoring System (CVSS). Det giver et kvantitativt mål for sværhedsgraden, da de forskellige aspekter af sårbarheden vil påvirke scoren. Den måler ved at tage hensyn til følgende:
- Angrebsvektor: Netværk/tilstødende/lokalt/fysisk
- Angrebskompleksitet: Lav høj
- Privilegier påkrævet: Ingen/Lav/Høj
- Brugerinteraktion: Ingen/Påkrævet
- Omfang: Uændret/Ændret
- Fortrolighed: Ingen/Lav/Høj
- Integritet: Ingen/Lav/Høj
- Tilgængelighed: Ingen/Lav/Høj
Alle disse klassificerer sværhedsgraden af en fejl. For eksempel en sårbarhed, der kan udføres over et netværk med en lav kompleksitet, ingen privilegier påkrævet, ingen brugerinteraktion, med et ændret omfang, høj datafortrolighedslækage, høj dataintegritetskrænkelse og høj indvirkning på tilgængelighed vil score en perfekt 10 i CVSS 3.1, den højeste score muligt.
Med den metrik kan vi vurdere den skade, som Zenbleed og Downfall er i stand til. Spoiler: De er de samme, selvom de påvirker forskellige CPU'er. Derfor, mens de scorer et vist beløb i i sammenhæng med sårbarheder, kan de påvirke forskellige mængder af produkter, og det vil ikke påvirke deres score. CVSS-resultater er i det væsentlige kun til triage, men fortæller ikke hele historien.
Zenbleed: 6,5 (medium)
- Angrebsvektor: Lokalt
- Angrebskompleksitet: Lav
- Privilegier påkrævet: Lav
- Brugerinteraktion: Ingen
- Omfang: Ændret
- Fortrolighed: Høj
- Integritet: Ingen
- Tilgængelighed: Ingen
Forklaring: Angrebsvektoren kræver lokal adgang til maskinen (som i, den kører på maskinen), mens den heller ikke har nogen indflydelse på integriteten af dataene på maskinen eller dens tilgængelighed. Det ændrer dog omfang (hvilket betyder, at det påvirker ressourcer ud over dets privilegier) og angrebskompleksiteten, og de nødvendige privilegier for at udføre er lave. Det krænker også fuldstændigt fortroligheden af oplysninger på maskinen.
Nedgang: 6,5 (medium)
- Angrebsvektor: Lokalt
- Angrebskompleksitet: Lav
- Privilegier påkrævet: Lav
- Brugerinteraktion: Ingen
- Omfang: Ændret
- Fortrolighed: Høj
- Integritet: Ingen
- Tilgængelighed: Ingen
Forklaring: Angrebsvektoren kræver lokal adgang til maskinen (som i, den kører på maskinen), mens den heller ikke har nogen indflydelse på integriteten af dataene på maskinen eller dens tilgængelighed. Det ændrer dog omfang (hvilket betyder, at det påvirker ressourcer ud over dets privilegier) og angrebskompleksiteten, og de nødvendige privilegier for at udføre er lave. Det krænker også fuldstændigt fortroligheden af oplysninger på maskinen.
Start: 5,6 (medium)
- Angrebsvektor: Lokalt
- Angrebskompleksitet: Høj
- Privilegier påkrævet: Lav
- Brugerinteraktion: Ingen
- Omfang: Ændret
- Fortrolighed: Høj
- Integritet: Ingen
- Tilgængelighed: Ingen
Forklaring: Angrebsvektoren kræver lokal adgang til maskinen (som i, den kører på maskinen), mens den heller ikke har nogen indflydelse på integriteten af dataene på maskinen eller dens tilgængelighed. Det ændrer dog omfang (hvilket betyder, at det påvirker ressourcer ud over dets privilegier), angrebskompleksiteten er høj, og de nødvendige privilegier for at udføre er lave. Det krænker også fuldstændigt fortroligheden af oplysninger på maskinen.
Spectre: 5,6 (medium) (lappet)
Spectre scorer faktisk, på trods af at det er et mere udbredt fænomen mindre end Zenbleed og Downfall. Det er takket være det faktum, at angrebskompleksiteten blev døbt som "Høj", hvilket faldt sin score.
- Angrebsvektor: Lokalt
- Angrebskompleksitet: Høj
- Privilegier påkrævet: Lav
- Brugerinteraktion: Ingen
- Omfang: Ændret
- Fortrolighed: Høj
- Integritet: Ingen
- Tilgængelighed: Ingen
Forklaring: Angrebsvektoren kræver lokal adgang til maskinen (som i, den kører på maskinen), mens den heller ikke har nogen indflydelse på integriteten af dataene på maskinen eller dens tilgængelighed. Det ændrer dog omfang (hvilket betyder, at det påvirker ressourcer ud over dets privilegier), angrebskompleksiteten er høj, og de nødvendige privilegier for at udføre er lave. Det krænker også fuldstændigt fortroligheden af oplysninger på maskinen.
Nedsmeltning: 5,6 (medium) (lappet)
Ligesom Spectre scorer Meltdown lavere end Zenbleed og Downfall på grund af den større angrebskompleksitet, der kræves.
- Angrebsvektor: Lokalt
- Angrebskompleksitet: Høj
- Privilegier påkrævet: Lav
- Brugerinteraktion: Ingen
- Omfang: Ændret
- Fortrolighed: Høj
- Integritet: Ingen
- Tilgængelighed: Ingen
Forklaring: Angrebsvektoren kræver lokal adgang til maskinen (som i, den kører på maskinen), mens den heller ikke har nogen indflydelse på integriteten af dataene på maskinen eller dens tilgængelighed. Det ændrer dog omfang (hvilket betyder, at det påvirker ressourcer ud over dets privilegier), angrebskompleksiteten er høj, og de nødvendige privilegier for at udføre er lave. Det krænker også fuldstændigt fortroligheden af oplysninger på maskinen.
Den største årsag: Branch-forudsigelse
Kilde: AMD
Forudsigelse af filialer og spekulativ eksekvering refererer bredt til, hvornår din computer udfører handlinger, der ikke er nødvendige i øjeblikket, men vil være i efterfølgende cyklusser. Det gøres ofte på tidspunkter, hvor dit system har ledige ressourcer, da det fremskynder den samlede behandling, når instruktioner eller data ellers endnu ikke ville være klar til CPU'en. Hvis det udførte arbejde ikke er nødvendigt, kasseres det typisk, og processoren kan hoppe tilbage til hvor den skal for at udføre den næste korrekte instruktion. Når den gør dette, kaldes dette en gren fejlforudsigelse.
For en mere dybdegående forståelse af grenprædiktorer, forestil dig et scenarie, hvor et program konsekvent tilføjer de samme to tal i sin udførelse. På et tidspunkt kan processoren genkende dette mønster og forberede de næste trin, hvis metoden, hvor de to numre tilføjes, skulle kaldes igen. Hvis det resultat ændrer sig på et tidspunkt, selvom processoren planlagde, at de samme to numre skulle være det samme, så vil gættet blive smidt ud og erstattet af det faktiske udførelsesflow. Dog for den tid, de tal er det samme, så kan processoren springe gennem disse instruktioner hurtigt.
Der er dog mange problemer, når det kommer til spekulativ udførelse, og sårbarheder som Spectre, Zenbleed, Downfall og flere er et resultat. Det er en kraftfuld funktion, som vi skylder en masse af moderne CPU-ydeevne, men det er et stort mål, når forskere leder efter sårbarheder i CPU'er.
Afbødning: En præstationshæmmer
Det er yderst vigtigt at afbøde disse sårbarheder, men problemet er, at disse begrænsninger ofte belaster ydeevnen. I tilfældet med AMD's seneste Zenbleed kunne afbødningen se massive præstationsomkostninger.
Årsagen til dette er, at den eneste rigtige måde at undgå det på er at deaktivere eller ændre adfærden af grenprædiktoren i den berørte processor. Det samme præstationshit kan findes i begrænsningerne for Intels undergang, med tidlige rapporter, der tyder på ydeevnepåvirkninger på op til 39 %. Episke spil engang berømt delt CPU-udnyttelsesgrafer, når Meltdown-sårbarheden blev afsløret, og hvor stor en indflydelse disse begrænsninger havde på virksomhedens CPU-brug. Der var en stor stigning i CPU-brug, som man kunne forvente. Hvor tingene bliver skræmmende er med rettelsen til AMD's Inception, ydelsen viste sig at falde med op til 54 %.
Fordi sårbarheder som denne påvirker funktioner, der er grundlæggende for processoren, er det svært at rette dem udover at deaktivere eller alvorligt lemlæste kernefunktioner. Spekulativ henrettelse er utrolig vigtig, og disse begrænsninger vil kunne mærkes af mange mennesker. Spilydelsen er mindre forudsigelig, så hvis din pc's primære brug er spil, er du måske det okay, da din computer ikke kan lave så mange forudsigelser, men disse problemer skalerer op i meget større systemer.
Bliver fremtidige processorer påvirket?
Heldigvis, i tilfældet med både Intel Downfall og Zenbleed, påvirker disse udnyttelser ældre processorer. Nyere processorer fra begge virksomheder er sikre, og der er ikke noget at bekymre sig om lige nu. Et væsentligt redesign er normalt det, der ender med at løse disse problemer. For eksempel påvirkede Spectre Intels ottende og niende generations CPU'er, men den niende generation inkorporerede en hardwareversion af de softwarerettelser, der blev implementeret, komplet med præstationshittet. Intels 10. generation var stadig sikker, men havde heller ikke længere en ydeevnepåvirkning fra disse afbødende foranstaltninger.
Som et resultat, da både Downfall og Zenbleed allerede var rettet i de seneste versioner af deres respektive processorer, har brugerne ikke meget at bekymre sig om. Selvfølgelig kan der altid være flere sårbarheder opdaget, men på dette tidspunkt er du sikker.