Premiär! Fyndchans i SweClockers Månadens Drop

AMD: "Spectre kommer kräva uppdateringar av mikrokoden"

Permalänk
Melding Plague

AMD: "Spectre kommer kräva uppdateringar av mikrokoden"

Det rapporterades tidigt om att AMD sannolikt inte drabbats lika hårt av Spectre och Meltdown som Intel. Nu berättar AMD att den förstnämnda kräver uppdateringar av mikrokoden.

Läs hela artikeln här

Visa signatur

Observera att samma trivselregler gäller i kommentarstrådarna som i övriga forumet och att brott mot dessa kan leda till avstängning. Kontakta redaktionen om du vill uppmärksamma fel i artikeln eller framföra andra synpunkter.

Permalänk
Medlem

Man får väl även hoppas då att Mikrokoduppdateringen för med sig lite annat godis också. Annars brukar ju folk inte vara så sugna på att uppdatera när systemet i övrigt fungerar bra.

Skönt också att åter få bekräftat att AMD's processorer är immuna mot Meltdown, som ju är den allvarligare av sårbarheterna.

Visa signatur

ozzed.net Min egenkomponerade 8-bit musik. Gillar du musiken från gamla klassiska NES eller Gameboy och liknande är det värt ett besök. :) Jag finns också på Spotify, Bandcamp, Jamendo, Youtube, och du kan även följa mig på Twitter och Facebook.
Vet du att du har fel? Signalera detta tydligt med Argumentationsfel och gärna Whataboutism.

Permalänk
Medlem

Ska bli intressant att se om bios-uppdateringarna påverkar prestandan negativt.

Skickades från m.sweclockers.com

Visa signatur

sweclockers prestandaindex

Efter 10 kommer 11.
Efter 99 kommer 100.

Permalänk
Medlem

Åh nej inte mikrokoden... Den sitter väl i modermodemet? Inte lätt att komma åt.

Permalänk
Medlem

Är en uppdatering av microkoden samma sak som en bios-uppdatering?

Visa signatur

AMD 5600x

Permalänk
Inaktiv

Varför skulle Intel eller AMD-användare vilja få prestanda som en Intel MMX-processor från 1997?

Permalänk
Medlem
Skrivet av Jearom:

Är en uppdatering av microkoden samma sak som en bios-uppdatering?

Nej, inte nödvändigtvis. Mikrokoden kan laddas av OS-kärnan vid boot också.

Permalänk
Medlem

Det förklaras lite dåligt vad microkoden innebär för något. Är det ett mjukvarufel eller ett hårdvarufel? Dvs. befintliga processorer kommer inte kunna bli immuna/åtgärdas?

"Konkret hoppas AMD kunna åtgärda Spectre variant 1 med en operativsystemsuppdatering, medan variant 2 kommer kräva en uppdatering av processorernas mikrokod."

Permalänk
Inaktiv
Skrivet av anon114264:

Varför skulle Intel eller AMD-användare vilja få prestanda som en Intel MMX-processor från 1997?

Jag hoppas detta så har man skäl att uppgradera igen 🤣😉

Permalänk
Medlem
Skrivet av napahlm:

Det förklaras lite dåligt vad microkoden innebär för något. Är det ett mjukvarufel eller ett hårdvarufel? Dvs. befintliga processorer kommer inte kunna bli immuna/åtgärdas?

"Konkret hoppas AMD kunna åtgärda Spectre variant 1 med en operativsystemsuppdatering, medan variant 2 kommer kräva en uppdatering av processorernas mikrokod."

Mikrokod är mjukvara och befintliga processorer kan enkelt uppgraderas. AMD och Intel tillhandahåller mikrokoden som krypterade binära blobbar som BIOS/UEFI och/eller operativsystemet kan byta ut mot en nyare version. För Linux är det bara att installera paketet amd64-microcode (eller motsvarande) när det kommer en ny version av paketet, eller så väntar du på en BIOS-uppdatering som innehåller den nya mikrokoden från din moderkortstillverkare. Antar att Windows-kärnan injecerar mikrokod på liknande sätt som Linux och då kommer fixen som en vanlig operativsystemsuppdatering.

Permalänk
Medlem

@PerWigren: Tack för klargörandet.

Permalänk
Medlem
Skrivet av napahlm:

Det förklaras lite dåligt vad microkoden innebär för något. Är det ett mjukvarufel eller ett hårdvarufel? Dvs. befintliga processorer kommer inte kunna bli immuna/åtgärdas?

Det är ett mjukvarufel i hårdvaran

I moderna processorer är processorns instruktioner oftast implementerade via mikrokod, istället för att vara implementerade direkt i hårdvara. D.v.s. varje instruktion består av ett litet mikroprogram som talar om för processorn vad den ska göra. Det gör att man kan ändra processorns beteende utan att behöva ändra på hårdvaran, t.ex. för att fixa buggar. Se Wikipedia för en mer ingående beskrivning.

Permalänk
Medlem
Skrivet av Chromatic:

Åh nej inte mikrokoden... Den sitter väl i modermodemet? Inte lätt att komma åt.

Det är sant, men å andra sidan handlar det som tur är bara om mikrokod. Det hadde varit värre om det var mycket kod.

Visa signatur

CPU: Ryzen 5 1600 GPU: Asus GeForce GTX 1060 6GB DUAL Moderkort: MSI B350M Mortar
RAM: 16GB Corsair Vengeance DDR4 3200MHz PSU: Corsair RM750X
Laptop: ThinkPad T480s, Core i7 8550U, 16GB RAM Mobil: Samsung Galaxy S10

Permalänk
Avstängd

De kändes allt lite arroganta med sina tvärsäkra uttalanden om att deras processorer var immuna.

Permalänk
Medlem
Skrivet av knge:

De kändes allt lite arroganta med sina tvärsäkra uttalanden om att deras processorer var immuna.

Vilka?

AMD har inte sagt att deras processorer är immuna. Det har väl snarare varit allmänt känt att Spectre även sannolikt kommer att påverka processorer från AMD också.

Visa signatur

AMD RYZEN 9 5900X - ASUS ROG X470-F STRIX - 32GB DDR4 @ 3200MHz - ASUS RTX 3070 Ti

Permalänk
Medlem
Skrivet av Chromatic:

Åh nej inte mikrokoden... Den sitter väl i modermodemet? Inte lätt att komma åt.

Den är ju så jävla liten också. Aspilligt.

Permalänk
Hjälpsam

I en processor finns ju ett antal operationer, dessa kan delas upp i mindre som exekveras via mikrokod.
Förr exekverades en CPU på det sättet, i dag exekveras mikrokoden ofta direkt, jag antar via ett logiskt nät.

https://www.google.se/search?source=hp&ei=i6FYWoGnCcb9swGsqqH...

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Inaktiv

Problemet med mikrokod är att väldigt många kommer strunta i att uppgradera denna. Nu har intel i nästan helt monopol inom kritiska system, men frågan är om de också inte behöver uppdatera mikrokod.
Så detta var en skitnyhet, varför inte enbart rapportera positiva saker och sedan skippa tragiska? *skämt*

För för de flesta av oss medlemmar på sweclockers så löser vi problemet enkelt. (tror inte så många har hunnit satt in en AMD i något riktigt kritisk ännu)

Permalänk
Datavetare

Mikrokod kan användas på flera olika sätt, vanligast är att man använder det till att rätta buggar i hur existerande instruktioner används.

I fallet Spectre Variant 2 gör man något som är lite spännande ändå, man lägger till helt nya instruktioner till instruktionsuppsättningen! I detta fall handlar det om instruktioner som påverkar spekulation av hoppinstruktioner.

Spectre Variant 2 verkar seglat upp som den mest problematiska delen i denna soppa.

Variant 3 må ha en värre effekt (man kan indirekt läsa kärnans minne), men där finns en fix som är 100 %-ig sett till säkerhet + att den helt kan implementeras av OS (lätt att rulla ut).

Variant 1 är den som nog var värst för "vanliga" användare då den största attackvektorn var JavaScript i webbläsare. Här verkar det ändå se ut som fixarna inte har någon större prestandapåverkan.

Variant 2 må vara den som nog är svårast att skapa fungerande attacker med. Men tyvärr är det inte omöjligt och mycket pekar på att prestandapåverkan på fixarna i vissa fall är helt i nivå med Meltdown (det innan Meltdown-fixarna fått sina optimeringar, från Haswell och framåt finns HW-stöd som klart minskar effekten av Meltdown-fixarna).

Spectre-buggarna är problematiska sett till utrullning, krävs fixar både i applikationer, OS och för Variant 2 även i mikrokod.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av knge:

De kändes allt lite arroganta med sina tvärsäkra uttalanden om att deras processorer var immuna.

De sa aldrig att de var immuna, utan att det fanns en "near zero" risk att någon skulle kunna utnyttja säkerhetsbristen Spectre på AMD-processorer och ingen har hittills lyckas demonstrera en fungerande exploit för Spectre på AMD i praktiken. Detta stämmer fortfarande, men med denna uppdatering går det nu från "near zero" till "zero" d.v.s. till och med det teoretiska säkerhetshålet täpps till

När det gäller Meltdown är AMD fortfarande helt immuna.

Visa signatur

Ryzen 7 3800X, Asus Prime X370 Pro, 32 GB LPX 3600, Gainward RTX 3060 Ti Ghost, 7 TB SSD + 4 TB HDD

Permalänk
Medlem

Körde en benchmark på min dator efter patchad kernel med och utan pti, har en Intel i7 med pcid.
https://pastebin.com/kUE50DUv - 45% sämre prestanda.

Visa signatur

How do 'Do Not Walk on the Grass' signs get there ?

Permalänk
Datavetare
Skrivet av Pepsin:

De sa aldrig att de var immuna, utan att det fanns en "near zero" risk att någon skulle kunna utnyttja säkerhetsbristen Spectre på AMD-processorer och ingen har hittills lyckas demonstrera en fungerande exploit för Spectre på AMD i praktiken. Detta stämmer fortfarande, men med denna uppdatering går det nu från "near zero" till "zero" d.v.s. till och med det teoretiska säkerhetshålet täpps till

När det gäller Meltdown är AMD fortfarande helt immuna.

Fast det handlar inte om en teoretisk risk, det handlade främst om att AMD vägrade ge forskarna tillgång till detaljerna för deras BTB (Branch Target Buffer). Forskarna själva ansåg därför att det bara handlade om att de ännu inte lyckats göra reverse engineering på BTB, man har nu i alla fall kommit så långt i det arbetet att man helt förstår varför de proof-of-concepts som gjorts för Haswell inte fungerar på Zen.

En annan detalj som kommit fram är att det finns chans/risk att en fungerande attack-kod för Zen även kommer fungera på Samsungs M1, M2 och M3 ARM-CPUer (används som "big-core" i senare Exynos-kretsar) då de använder samma algoritm.

Spectre Variant 2 är den klart svåraste sårbarheten att utnyttja, den är tyvärr också den svåraste att laga 100 %-igt + den verkar tyvärr även ha rätt kraftig prestandapåverkan i vissa fall. Här får man hålla tummarna att det blir samma utveckling som Variant 1 där den initiala idén för en fix hade rätt stor prestandapåverkan men där man nu hittat andra betydligt bättre sätt att lösa problemet.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Avstängd
Permalänk
Datavetare
Skrivet av anon159643:

Problemet med mikrokod är att väldigt många kommer strunta i att uppgradera denna. Nu har intel i nästan helt monopol inom kritiska system, men frågan är om de också inte behöver uppdatera mikrokod.
Så detta var en skitnyhet, varför inte enbart rapportera positiva saker och sedan skippa tragiska? *skämt*

För för de flesta av oss medlemmar på sweclockers så löser vi problemet enkelt. (tror inte så många har hunnit satt in en AMD i något riktigt kritisk ännu)

?

Intel gick ut dag 1 (eller heter det dag 0 på "säkerhetsspråk" kanske?) med att man kommer skicka ut uppdatering till mikrokod. Denna mikrokod levererades till OEM:er i samband med uttalandet.

Man har även skrivit ett whitepaper. I kapitel 3.2 går man igenom varför det behövs en mikrokoduppdatering

"The first technique introduces a new interface between the processor and system software. This interface provides mechanisms that allow system software to prevent an attacker from controlling the victim’s indirect branch predictions, such as flushing the indirect branch predictors at the appropriate time to mitigate such attacks."

Detta "new interface" är i Intels fall tre nya instruktioner som numera även fått namn

  • IBRS - "indirect branch restricted speculation", ser till att separera BTB-poster som skapas av kärnan inte kan detekteras av user-space (user-space = miljön "vanliga" applikationer körs i)

  • STIBP - "single thread indirect branch predictors", ser till att BTB-poster som skapas av en CPU-tråd inte kan användas för att "attackera" en annan tråd som kör på samma fysiska kärna (d.v.s. detta är bara relevant på modeller med SMT/HyperThreading)

  • IBPB - "indirect branch prediction barrier", gör det möjligt att rensa innehållet i BTB när man byter mellan applikationer så man inte kan "träna" BTB i applikation för att sedan attackera en annan efter en kontext-switch

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av knge:

De kändes allt lite arroganta med sina tvärsäkra uttalanden om att deras processorer var immuna.

Det enda säkerhetshålet som AMD uttalat sig och sagt att de inte är sårbara emot är Meltdown (den där patchar vittnade om stora prestandaförluster i vissa arbetslaster). Spectre har de hela tiden sagt att de, likt i princip alla CPU modeller som finns, är sårbara emot men att verkligen utnyttja hålet är väldigt liten risk. Men självklart är det endå bra att pacha bort det.

Gällande Spectre har det inte kommit några förhandssiffror på möjlig prestandahit för Intel eller AMD, förmodligen då det vad jag förstår inte var klart hur man skulle lösa det vid tiden då patchen för Meltdown implementerades.

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 128gb DDR5 6000 | Ryzen 7950X | 3080Ti
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk
Inaktiv
Skrivet av Yoshman:

?

Intel gick ut dag 1 (eller heter det dag 0 på "säkerhetsspråk" kanske?) med att man kommer skicka ut uppdatering till mikrokod. Denna mikrokod levererades till OEM:er i samband med uttalandet.

Man har även skrivit ett whitepaper. I kapitel 3.2 går man igenom varför det behövs en mikrokoduppdatering

"The first technique introduces a new interface between the processor and system software. This interface provides mechanisms that allow system software to prevent an attacker from controlling the victim’s indirect branch predictions, such as flushing the indirect branch predictors at the appropriate time to mitigate such attacks."

Detta "new interface" är i Intels fall tre nya instruktioner som numera även fått namn

  • IBRS - "indirect branch restricted speculation", ser till att separera BTB-poster som skapas av kärnan inte kan detekteras av user-space (user-space = miljön "vanliga" applikationer körs i)

  • STIBP - "single thread indirect branch predictors", ser till att BTB-poster som skapas av en CPU-tråd inte kan användas för att "attackera" en annan tråd som kör på samma fysiska kärna (d.v.s. detta är bara relevant på modeller med SMT/HyperThreading)

  • IBPB - "indirect branch prediction barrier", gör det möjligt att rensa innehållet i BTB när man byter mellan applikationer så man inte kan "träna" BTB i applikation för att sedan attackera en annan efter en kontext-switch

Ja då är det skit hos Intel också.. Undra hur många företag som t.ex. har en panelpc för 30 000kr, där ett bortfall av denna innebär katastrof, där de väljer att uppgradera? Likaså alla dessa små industripc som finns i precis allt som en skogsmaskin.
Kostnaden vid strul kan bli riktigt extrem och många tar nog hackerrisken istället.

Så jag påstår att samma säkerhetsproblem för Intel är värre än för AMD, då Intel cpuer används på så många riktigt dyra unika hårdvaror som nästan ingen vågar pilla på. Amd finsn just nu mest i enklare desktops, även om en och annan server har kommit.

*edit*
En dag blir förhoppningsvis AMD populär på andra saker än desktops.
*edit2*
Knalla in på elgiganten, min industripc till skördaren gick sönder vid uppgradering av mikrokod. Har ni en ny på lager? Kan ni göra installationen åt mig o.s.v?

Permalänk
Avstängd

Nu darrar nog moderkortstillverkarna om det erfordras uppdateringar av samtliga moderkort som släppts de senaste 20 åren typ.

Pensionerade kodknackade från Abit får rycka in i tjänst igen osv.

Permalänk
Medlem
Skrivet av Ratatosk:

I en processor finns ju ett antal operationer, dessa kan delas upp i mindre som exekveras via mikrokod.
Förr exekverades en CPU på det sättet, i dag exekveras mikrokoden ofta direkt, jag antar via ett logiskt nät.

https://www.google.se/search?source=hp&ei=i6FYWoGnCcb9swGsqqH...

Nu blandar du in en annan sak som inte riktigt har med saken att göra.

x86 instruktioner avkodas av en dekoder, varav de flesta Intel-baserade har fyra (fast Skylake har fem). Varje x86-instruktion kan omvandlas till en, två, tre eller fyra så kallade micro-ops, vilket sedan är vad som exekveras. Vill man tala nittiotals-språk, så är x86-instruktionerna CISC och micro-ops RISC, men det där är ett lite farligt sätt att uttrycka sig på eftersom ingen riktigt definierat vad RISC är.

Ibland stöter man på en x86-instruktion som kräver fler än fyra micro-ops för att beskriva. Då kan den inte hanteras av de vanliga dekodrarna, utan skickas iväg till en speciell enhet som genererar så kallad mikrokod för det. Detta är långsamt och bör om möjligt undvikas, och är något Intel gör för instruktioner som de inte vill att någon skall använda längre, men som ändå måste fungera.

Detta har ingenting med det här problemet att göra.

Intel kan också styra hur visa av deras inbyggda enheter fungerar genom att programmera om dem. Detta kallas tyvärr också för mikrokod, men det är alltså inte samma sak. I 99% av fallen är detta bara att stänga av funktioner som inte fungerar, men ibland kan de istället lägga till funktioner - som här.

Intel programmerar om branch predictorn så att den är försiktigare med vilken information den använder för att förutsäga en branch.

Skrivet av Yoshman:

Fast det handlar inte om en teoretisk risk, det handlade främst om att AMD vägrade ge forskarna tillgång till detaljerna för deras BTB (Branch Target Buffer). Forskarna själva ansåg därför att det bara handlade om att de ännu inte lyckats göra reverse engineering på BTB, man har nu i alla fall kommit så långt i det arbetet att man helt förstår varför de proof-of-concepts som gjorts för Haswell inte fungerar på Zen.

Det är värt att påpeka att Intel inte direkt bidrog med information om hur deras branch predictor fungerade heller. Forskarna lyckades lista ut det för Intel, och kommer säkert att lyckas för AMD också.

Skrivet av Yoshman:

?

Intel gick ut dag 1 (eller heter det dag 0 på "säkerhetsspråk" kanske?) med att man kommer skicka ut uppdatering till mikrokod. Denna mikrokod levererades till OEM:er i samband med uttalandet.

Man har även skrivit ett whitepaper. I kapitel 3.2 går man igenom varför det behövs en mikrokoduppdatering

"The first technique introduces a new interface between the processor and system software. This interface provides mechanisms that allow system software to prevent an attacker from controlling the victim’s indirect branch predictions, such as flushing the indirect branch predictors at the appropriate time to mitigate such attacks."

Detta "new interface" är i Intels fall tre nya instruktioner som numera även fått namn

  • IBRS - "indirect branch restricted speculation", ser till att separera BTB-poster som skapas av kärnan inte kan detekteras av user-space (user-space = miljön "vanliga" applikationer körs i)

  • STIBP - "single thread indirect branch predictors", ser till att BTB-poster som skapas av en CPU-tråd inte kan användas för att "attackera" en annan tråd som kör på samma fysiska kärna (d.v.s. detta är bara relevant på modeller med SMT/HyperThreading)

  • IBPB - "indirect branch prediction barrier", gör det möjligt att rensa innehållet i BTB när man byter mellan applikationer så man inte kan "träna" BTB i applikation för att sedan attackera en annan efter en kontext-switch

IBPB är en enkel instruktion - den används för att rensa branch predictorn manuellt. De andra två är exekveringslägen, om vi uttrycker oss på det viset. Om man slår på IBRS så kommer branch predictorn i kernel-läge inte att använda information som den lärt sig när den är i user mode. Jag vet inte om det var det du menade, men det ser ut som om du skrev tvärtom nu? Detta läge kostar uppenbarligen en hel del prestanda.

Visa signatur

5900X | 6700XT

Permalänk
Avstängd

Nu till en intressant fråga tycker jag! Om nu AMD aktien föll 3,6 procent, Hur mycket föll Intels aktier ???

Visa signatur

•·.·´¯`·.·•ЩIЯЦZ•·.·´¯`·.·•
Threadripper 1950X - Aorus x399 Gaming 7 - G.Skill Trident Z RGB 3200Mhz 4x8gb - EVGA GeForce GTX 1080 Ti FTW3 - 500gb Samsung 960 evo - Noctua NH-U14S TR4 - EVGA SuperNOVA G2, 1300W - Acer X34A

Permalänk
Hjälpsam
Skrivet av mpat:

Nu blandar du in en annan sak som inte riktigt har med saken att göra.

x86 instruktioner avkodas av en dekoder, varav de flesta Intel-baserade har fyra (fast Skylake har fem). Varje x86-instruktion kan omvandlas till en, två, tre eller fyra så kallade micro-ops, vilket sedan är vad som exekveras. Vill man tala nittiotals-språk, så är x86-instruktionerna CISC och micro-ops RISC, men det där är ett lite farligt sätt att uttrycka sig på eftersom ingen riktigt definierat vad RISC är.
Ibland stöter man på en x86-instruktion som kräver fler än fyra micro-ops för att beskriva. Då kan den inte hanteras av de vanliga dekodrarna, utan skickas iväg till en speciell enhet som genererar så kallad mikrokod för det. Detta är långsamt och bör om möjligt undvikas, och är något Intel gör för instruktioner som de inte vill att någon skall använda längre, men som ändå måste fungera.

Detta har ingenting med det här problemet att göra.

Intel kan också styra hur visa av deras inbyggda enheter fungerar genom att programmera om dem. Detta kallas tyvärr också för mikrokod, men det är alltså inte samma sak. I 99% av fallen är detta bara att stänga av funktioner som inte fungerar, men ibland kan de istället lägga till funktioner - som här.

Hängde inte med här riktigt, menar du att detta problem åtgärdas genom att ändra något annat, som också kallas mikrokod?
Det handlar mer om att slå av eller på olika funktioner, inte hur man exekverar "CISC" genom ett antal "RISC""?
Min kunskap är inte purfärsk.

Citat:

Intel programmerar om branch predictorn så att den är försiktigare med vilken information den använder för att förutsäga en branch.

Det är värt att påpeka att Intel inte direkt bidrog med information om hur deras branch predictor fungerade heller. Forskarna lyckades lista ut det för Intel, och kommer säkert att lyckas för AMD också.

IBPB är en enkel instruktion - den används för att rensa branch predictorn manuellt. De andra två är exekveringslägen, om vi uttrycker oss på det viset. Om man slår på IBRS så kommer branch predictorn i kernel-läge inte att använda information som den lärt sig när den är i user mode. Jag vet inte om det var det du menade, men det ser ut som om du skrev tvärtom nu? Detta läge kostar uppenbarligen en hel del prestanda.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |