Zenbleed: Minden, amit erről az AMD biztonsági hibáról tudni kell

click fraud protection

A CPU-k biztonsági hibáinak hosszú sorozatának legújabb tagja, a Zenbleed egy újabb olyan dolog, amelyet javítani kell. Íme, amit tudnod kell.

Miután 2018-ban nyilvánosságra hozták a Spectre és a Meltdown CPU exploitokat, a számítástechnika világa meglehetősen éber volt. biztonsági hibák és kiskapuk felkutatásáról a processzorokban, és az elmúlt öt évben a kutatók rengeteget találtak. Július 24-én egy újabb visszaélést hoztak nyilvánosságra, miután májusban jelentették be először. Ezúttal kifejezetten a Zen 2 architektúrára épülő AMD processzorokra vonatkozik, és a neve "Zenbleed". Itt van minden, amit tudnia kell a Zenbleedről és arról, hogy mit jelent a világ számára.

Hogyan működik a Zenbleed?

A Zenbleed nagyon hasonlít más hardver alapú biztonsági hibákhoz, mint például a Spectre, mivel kihasználja a CPU-k spekulatív képességét. A teljesítmény javítása érdekében a CPU-k spekulálni vagy megjósolni, hogy mit kell tenniük, és mióta a Spectre először nyilvánosságra került, a világ megtanulta, hogy a spekuláció nagyon bizonytalan lehet, ha megtörténik. helytelenül.

Forrás: Tavis Ormandy

A CPU-ban lévő regiszterek kis mennyiségű adatot, jellemzően utasítást, tárolási címet vagy bármilyen más kis adatot tárolhatnak. Az x86_64 architektúra XMM-regiszterei (tehát az érintett Zen 2 processzorok bármelyike) csak adatszámításra használhatók, memóriacímzésre nem. Ez az YMM regiszterek esetében 256 bitre, a ZMM regisztereknél pedig 512 bitre bővül. Ebben az esetben az XMM az alsó 128 bitre utal teljes 512 bit a ZMM regiszterekből.

Ezek a regiszterek hihetetlenül hasznosak sok különböző dologhoz, beleértve a szabványos C függvényeket is. A biztonsági rés a spekulatív végrehajtással és az elágazás téves előrejelzéseivel él vissza, hogy lényegében véletlenszerű adatot köpjen ki a memóriából, de ezek az adatok származhatnak bármi. A szabványos C könyvtári funkciók, mint például a strlen, amely egy karakterlánc hosszát méri, használhatja ezeket a regisztereket az adatok mozgatására körül, és előfordulhat, hogy véletlenül egy Ön által használt jelszó szerencsétlenül beleesett ezek valamelyikébe regisztereket.

Az elágazás előrejelzése és a spekulatív végrehajtás általában arra utal, amikor a számítógép olyan műveleteket hajt végre, amelyekre még nincs szükség, de valószínűleg szükség lesz a következő ciklusokban. Ezt gyakran olyan időkben teszik meg, amikor a rendszernek szabad erőforrásai vannak, mivel felgyorsítja az általános feldolgozást, amikor az utasítások vagy adatok egyébként még nem lennének készen a CPU számára. Ha az elvégzett munkára nincs szükség, azt általában eldobják, és a processzor visszaugorhat oda, ahol kell, hogy végrehajtsa a következő, helyes utasítást. Amikor ezt megteszi, ezt elágazási téves előrejelzésnek nevezik.

Probléma merül fel a vzeroupper utasításban, amely nullázza az YMM és ZMM regiszterek 128. és magasabb pozíciójában lévő biteket. Ez különösen az AVX és a régi SSE kód közötti váltáskor történik, mivel ez kiküszöböli a teljesítményt hamis függőségek által okozott büntetések, miközben elkerüli az egész számok előléptetéséhez hasonló hatást C.

Ha a processzor spekulatívan végrehajt egy vzeroupper utasítást, akkor nincs megfelelő visszaállítás. Az érintett Ryzen processzorok azonban rákényszeríthetők, hogy helyreálljanak belőle, bár helytelenül. Miután ebben az állapotban van, az éppen futó program valós időben kémkedhet ezek után a regiszterek után, és bármikor megtekintheti a rendszerben folyó adatokat.

Milyen CPU-kat érint a Zenbleed, és mikor lesznek elérhetők a javítások?

Mint korábban említettük, csak a Zen 2 architektúrán alapuló AMD CPU-król ismert, hogy sebezhetőek a Zenbleed biztonsági hibával szemben, de a Zen 2 architektúra három sorozatban hajtja meg a CPU-kat, így nehéz kitalálni, hogy mely CPU-k sérülékenyek és melyek nem azok. Íme egy táblázat, amelyből mindent világossá kell tenni:

Érintett CPU-k

Ryzen 3000 sorozat

Minden, kivéve az APU-kat (pl. Ryzen 3 3200G)

Epyc Róma

Minden

Ryzen 4000 sorozat

Minden

Ryzen 5000 sorozat

Csak az 5300U, 5500U és 5700U

Ryzen 7000 sorozat

Csak 7020 APU (pl. Ryzen 3 7320U)

Ez elég nagy mennyiségű AMD processzor, és ezek csak azok, amelyeket eddig megerősítettek. A Zen 2-t a Steam Decket, az Xbox Series S and X-et és a PS5-öt tápláló APU-kban is használják. Egyik esetben sem hallottunk arról, hogy ezek a CPU-k is érintettek-e, de az exploit működéséből ítélve meglepődnék, ha nem lennének érintettek. Valószínűtlennek tűnik, hogy az AMD befoltozta volna az Xboxon és a PS5-ön, mivel a 7020-as sorozatú chipek, amelyek újabbak, szintén érintettek.

Az írás idején mikrokódot küldtek a Linux kernelbe amely kijavítja ezt a biztonsági rést, és lehet, hogy az operációs rendszer vagy a BIOS már rendelkezik frissítéssel, amely kijavítja ezt a problémát.

Mit jelent ez a sebezhető CPU-t használó számítógépeknél?

Ezt nehéz megválaszolni, mert nem minden számítógép egyenlő. Azoknak a normál embereknek, akik csak játékasztali számítógépeket és laptopokat használnak, valószínűleg nem kell ennyire aggódniuk. Ez egy meglehetősen kifinomult kihasználás, és bár ma már köztudott, még nincs ismert példa arra, hogy egy támadó a Zenbleed segítségével bármit is feltört volna.

A tét azonban sokkal nagyobb az adatközpontok és a saját számítógépükön érzékeny információkat kezelő fontos személyek számára. Megvan az oka annak, hogy az AMD nagyon világosan kijelentette, hogy az Epyc Rome-ot a sebezhetőség nyilvánosságra hozatala előtt javították: sok érzékeny az információkat Epyc CPU-k kezelik, és katasztrófa lenne, ha a nagyméretű szervereket tápláló CPU sikeresen működne. megtámadták. A 6.4.6-os Linux kernel már megjelent és kijavítja ezt a biztonsági rést a hivatalos mikrokód javítás az AMD-től. Valószínűnek tűnik, hogy a Microsoft valami hasonlót fog beépíteni a Windowsba.

Aggasztóan, Előfordulhat, hogy az AMD hivatalos BIOS-javításai hónapokig nem jelennek meg, ebben az esetben van egy "csirke bit", amelyet beállíthat, ha Linux vagy FreeBSD gépet használ. Linuxos gépeken használhatja az msr-tools-t, és végrehajthatja a következő parancsot.

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

FreeBSD-n a következőket is használhatod.

cpucontrol(8)

Az SMT letiltása nem elegendő a sebezhetőség csökkentéséhez.

Az egyik dolog, ami különösen rosszá teszi a Zenbleedet, az az, hogy a Zen 2 volt az AMD egyik legnépszerűbb CPU architektúrája. Ez indította el az AMD visszatérését 2019-ben és 2020-ban, és sok ember, vállalat és szervezet még 2023-ban is használ Zen 2 processzoros számítógépeket, különösen az Epyc Rome-ot. CPU-k. Ez nem olyan rossz, mint a Specter (amely nagyjából az összes 2019 előtti CPU-t érinti) és a Meltdown (ami szinte az összes 2019 előtti Intel CPU-t érinti), de még mindig meglehetősen széles körben elterjedt.

Az ehhez hasonló sebezhetőségekre vonatkozó biztonsági javítások gyakran teljesítménybüntetést is eredményeznek, de Az AMD elmondta Tom hardvere hogy ez a büntetés a CPU-tól és a terheléstől függ. A találgatások és az előrejelzések nagyon fontosak voltak a CPU teljesítménye szempontjából, így nem világos, hogy a lehetséges javítások jelentős mértékben csökkentik-e a teljesítményt.