Finns faktiskt några ljuspunkter som jag tycker fallit bort, men börjar med att slå på den döda hästen lite till.
Trista delen
Meltdown a.k.a Variant 3
Verkar fortfarande vara rätt mycket förvirring kring vem detta problem är relevant för. Tar man det som ansågs mest allvarligt, Meltdown, är den mest allvarlig då den möjliggör för en "normal" lokal applikation att läsa OS-kärnans minne. För "vanliga" användare är dock detta rätt mycket ett icke-problem då man normalt inte har andra användare än sig själv som kör program på hem-PCn. I teorin kan Meltdown utnyttjas via webbläsaren men detta anses som rätt svårt i praktiken.
För molnleverantörer är dock Meltdown det överlägset mest kritiska problemet! Red Hat har lite mellan-tummen-och-pekfingret kostnad fixen ger för olika typer av laster.
Drabbade modeller är i princip alla Intel, Apples egendesignade ARM:ar samt ARMs Cortex A75 (som nog inte hunnit ut på marknaden än, men kommer sitta i flera kommande flaggskeppsmodeller). Vidare är Cortex A15, A57 samt A72 mottaglig för en (betydligt mildare) variant av Meltdown.
Spectre Variant 1 (Misspredict)
Initialt verkar det som man från vissa håll försökte vifta bort denna som mindre problematisk, verkar inte riktigt vara sanningen. Dels är denna variant den som drabbar klart flest CPU-modeller, i princip alla "high-end" CPUer som tillverkats de senaste 10-20 åren är påverkade.
Dels är denna numera betecknad som "lätt" att utnyttja via JavaScript, d.v.s. via t.ex. en webbläsare. Finns fungerade proof-of-concept för Intel, AMD och ARM CPUer.
Så denna är nog varianten som främst påverkar "vanliga" användare. Därför: se till att installera alla säkerhetsuppdateringar kring detta!
Spectre Variant 2 (Branch Target Injection)
Denna verkar vara svårast att helt lösa, kommer kräva både mikrokoduppdateringar samt förändringar i programvara.
De gladare tongångarna
Finns ändå en hel del ljusglimtar i mörkret.
Meltdown a.k.a Variant 3
Går att helt lösa med en OS-patch, tror inte heller det kommer vara supersvårt att fixa detta i framtida kisel då det finns en väldigt enkel nyckel att använda för att avgöra om man ska utföra spekulation eller ej.
Att det inte går att microkodpatcha beror nog främst på att utan HW-stöd för sådan filtrering blir prestandakostnaden totalt orimligt då den måste utföras på en av de absolut mest prestandakritiska delarna som existerar i en modern CPU (översättningen av "logiska" adresser som är de applikationer jobbar med till "fysiska" adresser vilket är adressen till där data faktiskt lagras).
Den variant som ARM kallar 3A läcker i.o.f.s. information från kärnan, men de modeller som bara är mottagliga för 3A verkar inte läcka innehåll från OS-kärnans minne (är annan typ av OS-information som läcks).
Spectre Variant 1 (Misspredict)
Den riktigt goda nyheten här är att det finns flera s.k. "serialiserade" x86 instruktion som helt spärrar detta hål. Vidare finns en specifik sådan funktion, lfence (load-fence), som är relativt billig på modern Intel/ARM CPUer (kommer ändå att påverka negativt, är en viss kostnad + man dödar även "snäll" spekulativ exekvering).
Webbläsare gör något som kallas "just-in-time" kompilering (JIT) av JavaScript koden och man kan då förändra hur kod genereras för att stoppa detta problem just där attack-ytan är som värst för "vanliga" användare.
Mobiltelefoner
En väldigt god nyhet här är att i princip alla enklare ARM-modeller är helt immuna mot alla tre attacker! Ett sådan exempel är Cortex A53 som sitter i många budget / mellan-segment Android-telefoner (bl.a. nya Snapdragon 4xx och 6xx använder Cortex A53). Även RPi3 är utrustad med just Cortex A53.
(Varit avskärmad från detta hela dagen (skidåkning), läste lite till nu på kvällen då detta lär vara på tapen på jobbet när man kommer tillbaka från semester...).
Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer