Vilka är Spectre- och Meltdown-sårbarheterna?

Två av de mest publicerade sårbarheterna på 2010-talet var mycket nära relaterade till varandra. Istället för att vara säkerhetsbrister i mjukvara, är Spectre och Meltdown sårbarheter i den grundläggande designen av CPU: er som gör problemet svårare att lösa. Problemen i sig är särskilt allvarliga, vilket möjliggör minnesavslöjande från andra applikationer och operativsystemet.

Översikt

CPU: er använder otroligt avancerade konstruktioner för att uppnå högsta prestanda inklusive tekniker inklusive spekulativ exekvering och grenförutsägelse. Spekulativ exekvering är där processorn börjar köra en process innan den vet om den behöver, i ett försök att spara tid när den fastställer att den behöver det. Grenförutsägelse är en undergrupp av spekulativt utförande som försöker förutsäga resultatet av en process och sedan börjar beräkna nästa steg baserat på det förutsagda värdet så att CPU: n kan utföra en serie instruktioner från beställa.

Spectre-sårbarheten kommer från implementeringen av dessa två funktioner. Det tillåter en applikation att bryta mot minnesisoleringsteknikerna som är inbyggda i de flesta moderna programvaror som tillåter avslöjande av minne, inklusive hemligheter som lösenord och krypteringsnycklar. Ett av problemen med Spectre är att data kan nås från applikationer som inte har några säkerhetsbrister eftersom endast ett skadligt program krävs.

Meltdown-sårbarheten är baserad på vissa minnestekniker, såväl som det spekulativa exekveringssystemet som nämns ovan. Den använder ett "racevillkor" mellan processexekveringen och behörighetskontrollen och tillåter ett skadligt program att komma åt minnet i andra applikationer och operativsystemet.

Tips: Ett "racevillkor" är ett problem där en uppgift är tänkt att förlita sig på en annan, men den korrekta exekveringsordern verkställs inte. Detta kan resultera i att den "andra" processen körs först och använder oinitierat minne som borde ha innehållit resultatet av den "första" processen, vilket läcker det tidigare innehållet i det minnet. I det här specifika fallet bör processen inte köras förrän en behörighetskontroll har verifierat att den är tillåten, men behörighetskontrollen kan ske i andra hand på grund av prestandaoptimeringar.

Effekter

I mitten av 2017 upptäckte och rapporterade flera team oberoende av varandra både Meltdown och Spectre privat till CPU-tillverkare som utvecklade patchar. På grund av patchar som riktade in sig på prestandaoptimeringar, slutade de med att de minskade processorernas prestanda med upp till 30 % i värsta fall, med en prestationsminskning på 2–14 % som är mer representativ för människors upplevelser.

Sårbarheterna påverkade många x86-processorer, IBM POWER-processorer och vissa ARM-baserade processorer. Meltdown påverkar hårdvaran som vanligtvis finns i persondatorer såväl som molnservrar. Spectre påverkar persondatorer, molnservrar och mobila enheter. Alla Intel-processorer från 1995 till mitten av 2018 var sårbara för problemen (med undantag för Itanium- och Atom-linjerna före 2013). AMD-processorer påverkades inte av Meltdown men var sårbara för Spectre.

Programvarukorrigeringskorrigeringar utvecklades och släpptes genom operativsystemleverantörer som löser de flesta problemen. Sedan mitten av 2018 har Intel uppdaterat sin CPU-design för att inkludera hårdvarubegränsningar för problemen.

Båda problemen kan utnyttjas via skadliga webbsidor med skapad JavaScript, så det är verkligen viktigt att se till att säkerhetskorrigeringarna är installerade på alla system, även om prestandaförlusten blir svår. Tyvärr kan problemen inte fixas med en enda patch, eftersom de är extremt komplexa problem med djup integrering i hårdvaran, kommer säkerhetskorrigeringar att fortsätta att rullas ut med tiden som nyare varianter upptäckt.