Linux och Intel långsamt hacka deras sätt att ett Spöke patch

0
138

Noll

Spectre och Härdsmälta finns stora brister design i moderna Processorer. Medan de är närvarande i nästan alla nyare processorer, eftersom Intel-kretsar är så vanligt förekommande, Intel tar de flesta av värmen för dessa fel. Ingenstans har kritiken varit hetare än på Linux-Kernel Mailing List (LKML). Det beror på att till skillnad från Apple och Microsoft operativsystem utvecklare och OEM-tillverkare som Dell och HP, Linux programmerare göra sitt arbete i det öppna. Men, när Linux och Intel developers inte argumentera, och att de gör framsteg.

Det började inte bra. Som Linux skapare Linus Torvalds sade på LKML när nyheten om de problem som bröt “jag tror att någon på insidan av Intel behöver verkligen ta en lång hård titt på deras Processorer, och faktiskt erkänna att de har problem.” Senare, Greg Kroah-Hartman, ansvarig för Linux stabil gren, skrev att detta är “ett skolexempel på hur man inte ska interagera med Linux-kärnan community korrekt”.

Då saker och värms upp igen då, irriterad av nya Intel föreslog fläckar, Torvalds morrade, “Är Intel verkligen planerar göra detta skit arkitektoniska? Någon talade till dem och berättade för dem att de är f*kung galen?”

David Woodhouse, en Intel Linux-kärnan ingenjör, svarade:

Om alternativet var två decennium återkallande av produkter och för att ge alla gratis Processorer, jag är inte säker på att det var helt insane.

Visst det är en otäck hack, men hey-världen var on fire och i slutet hade vi inte bara vända den datacenter utanför och gå tillbaka till getuppfödning, så det är inte allt dåligt.

Som ett hack för befintliga Processorer, det är bara acceptabel om — så länge den kan dö helt och hållet av nästa generation.

Under tiden har Intels försök att åtgärda dessa problem precis ovanför chip hårdvara och under operativsystemet med mikrokod har kommit till ingenting. För det första, Intel rekommenderar människor att sluta använda sin nuvarande firmware-uppdateringar. Sedan dess, Dell och HP drog Intels buggy Härdsmälta och Spectre mikrokod åtgärdas.

Torvalds har inte varit imponerad, släppa, “Intel verkar faktiskt planerar att göra rätt sak för härdsmälta (den viktigaste frågan är _when_). Vilket inte är en stor överraskning, eftersom det borde vara lätt att fixa, och det är en riktigt tutande stora hål att köra igenom. Inte gör rätt för härdsmälta skulle vara helt oacceptabelt.” Men, fortsatte han, “Intel är _inte_ planerar på att göra det som är rätt för indirekta gren spekulation. Ärligt talat, det är helt oacceptabelt.”

Och dessutom, “Som det är, fläckar är rent OCH SKÄRT SKRÄP”. Du kan alltid räkna med Torvalds att ringa dem på det sätt som han ser dem.

Men, Woodhouse svarade att även om det är en “otäck hacka på kort sikt kunde jag leva med [det].”

I ett senare meddelande, Woodhouse fortsatte, “jag tror att vi har täckt den tekniska delen av detta nu, inte för att du vill det-inte för att någon av oss *gilla*.” Han förklarade då logiken bakom dessa “sopor” patchar.

Här är allt om Spectre variant 2 [CVE-2017-5715], där PROCESSORN kan luras mispredicting målet om en indirekt gren. Och jag är speciellt att titta på vad vi kan göra på *nuvarande* hårdvara, där vi är begränsade till att hacka de kan hantera för att lägga till i mikrokod.

Den nya konstruktionen från Intel och AMD lägger till tre nya funktioner.

En ny funktion (IBPB) är en klar barriär för hoppgissning. Efter frobbing detta, ingen gren mål lärt oss tidigare kommer att användas. Det är ganska dyrt (storleksordning ~4000 cykler).

Den andra (STIBP) skyddar en hyperthread syskon från följande gren förutsägelser som de lärt sig på ett annat syskon. Du *kan* vill ha detta när du kör oberoende processer i användarrymden, till exempel. Eller olika VM-gäster som körs på HT syskon.

Den tredje funktionen (IBRS) är mer komplicerat. Det är utformat för att vara när du går in i en mer privilegierad körning-läge (dvs kärnan). Det hindrar gren mål lärt sig i en mindre privilegierade utförande läge, INNAN DET VAR MEST NYLIGEN, från att ta effekt. Men det är inte bara en “set-and-forget” – funktionen, det har också hinder som semantik och måste vara inställd på att *alla* har trätt i kärnan (från användarrymden, eller en VM-gäst). Det är *också* dyra. Och en usel hack, men ett tag var det enda alternativ vi hade.

Förutom att vara riktigt rörigt, brist med alla dessa fläckar är de drastiskt bromsa processer. Googles Retpoline patch är en “massiv prestanda vinna”, Woodhouse medger. Retpoline fungerar genom att blockera alla processorer indirekta gren förutsägelser, som är där Spectre liv.

Men, Woodhouse fortsatte, “är Inte alla som har en retpoline kompilator ännu” och Intel “Skylake, och den generation av CPU-kärnor,” som skulle fortfarande vara sårbara. “IBRS lösning, ful även om det är, gjorde adress”. Som det är, med bara Retpoline “öppnar en *liten* bit av ett säkerhetshål”.

Arbetet fortsätter på ett sätt att undvika “skräp”, fläckar, medan fortfarande hålla Intel Skylake — Intel sjätte generationens processor familj — säker. Ingo Molnar, en Red Hat Linux-utvecklare, har föreslagit en metod, som verkar för att hålla Skylake säker från Spectre.

Något måste göras. Dessa hål möjligt för hackare att ta sig runt systemet kopieringsskydd på nästan alla Datorer, servrar och smartphones. Så långt, knock on silicon, ingen har lyckats utnyttja dem. Men det är bara en fråga om tid. Under tiden fixar alla hittills bromsa system.

Som Linux-diskussioner och Intel mikrokod nyheter, vi är fortfarande en lång, lång väg från ett komplett fix.

Slutligen, bara för att vi vet vad som händer med Linux, betyder inte att macOS och Windows inte inför exakt samma problem. De finns. Vi är inte bara höra om dem.

Relaterade Artiklar:

Spectre och Härdsmälta: Linux skapare Linus Torvalds kritiserar Intels ‘sopor’ patchar för Linux vs Härdsmälta och Spectre striden fortsätter om Hur Linux har att göra med Härdsmälta och Spectre Stora Linux-redesign i arbeten att ta itu med Intel säkerhetsbrist

Relaterade Ämnen:

Hårdvara

Säkerhet-TV

Hantering Av Data

CXO

Datacenter

0