PACMAN attack - "patchelhetetlen" hardverbugot találtak az Apple M1 chipjeiben

Címkék

MIT kutatók egy a Spectre-hez és Meltdown-hoz hasonló, "patchelhetetlen" hibát találtak az Apple M1 chipjében. A hardverhiba önmagában nem elég a sikeres támadáshoz, ahhoz szükség van szoftveres bug kihasználására is.

As long as you keep your software up to date, no. PACMAN is an exploitation technique- on its own it cannot compromise your system. While the hardware mechanisms used by PACMAN cannot be patched with software features, memory corruption bugs can be.

A PACMAN attack weboldala itt, technikai írás itt.

Hozzászólások

Nincs. Max. csak ha valami jelentéktelen szar, amit úgyse használ senki se. Ezt nem értették a Spectre/Meltdown topikban, hogy ez védhetetlen, és nem gyártófüggő, mindegy, hogy Intel, AMD, ARM, mindegyikben találnak. Kiengedték a szellemet a palackból, ezek a hardveres procisérülékenységek már sorra lesznek felfedezve, mivel egyre többen ráállnak, tudva, hogy ez is már bevett dolog. Nem adok sok időt, és alternatív platformokon is találnak ilyet, RiscV, Loongson, stb..

A MS érvelése is pont ezen a ponton vicces. Azzal indokolták, hogy sok jó hardver ki lett zárva a Win11-támogatásból, hogy azok prociügyileg nem biztonságosak a Spectre/Meltdown jóvoltából, és nem támogatják a virtualizációs MS-os hekkeket, közben meg azok sem fognak semmit érni, hogy fedezik fel sorra ezeket az újabb biztonsági lyukakat.

Szoftveres oldalról is egyre reménytelenebb ezeket foltozni, lásd OpenBSD esete, ahol a fejlesztők kifejezetten biztonsági paranoiára gyúrnak, és még ők sem foltozták a Spectre-sebezhetőségeket, a Meltdown-t, meg a többit igen, a Hyper Threadinget letiltották default, de ezzel még a Spectre nincs náluk megoldva. Most képzeld el, hogy mi lesz a MS-nál, ahol eleve nagy ívben szarnak a biztonságra, meg hogy a felhasználó védhesse a privát szféráját.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

As long as you keep your software up to date, no
 

persze, a memóriabugok úgy keletkeznek, hogy rohad a szoftver, mert nem frissítetted, de sosincsenek addig ott, amíg a szoftverből nem készült új, friss változat (vagy mondjuk csak telepítés után hetekkel jelennek meg, mint a kenyéren a penész)

tldr

Az ARM architektúrában (ARMv8.3) pár éve megjelent egy autentikált pointer nevű feature. Ez azt jelenti, hogy a 64 bites pointerek - amiknek eddig is csak kb 40-48 értékes bitje volt - kihasználatlan bitjei helyére egy checksum került. A checksum 3 paraméterből állt elő valamilyen secure hash számítással: a program futási kontextusához tartozó private key, a pointer saját címe és a pointer értéke (hivatkozott cím).

Ez sosem számított elsődleges védelmi mechanizmusnak, inkább egyfajta kiegészítő defense-in-depth megoldás, hogy a programban esetleg előforduló puffer/stack túlcsordulásos és hasonló memóriafelülírási bugok esetén legyen még egy extra védvonal ami megfogja a támadást.

Az elgondolás az volt, hogy hiába kevés a checksum bitjeinek száma (M1-en 16 bit), a támadó nem tudja brute-force módszerrel próbálgatni, mert már az első hibás kísérletnél valamilyen protection fault-ot vált ki, és az adott process leáll. A mostani cikk arról szól, hogy spekulatív végrehajtás kihasználásával mégis meg tudják oldani a próbálgatást anélkül, hogy az kilőné a folyamatot. A most publikált módszer kihasználták az Apple M1 TLB-jének felépítését, de feltételezik, hogy a többi ARM implementációban (*) is lehet majd találni megfelelő side-channelt, amivel a támadás kivitelezhető. (* itt csak a "big" core-ok jönnek számításba, a little core-ok in-order architektúrájuk miatt eleve nem támadhatóak spekulatív módszerekkel)

Vagyis a legrosszabb, ami most történt az annyi, hogy az ARMv8-as pointer autentikációt használó processzorok is pontosan annyira lettek biztonságosak, mint minden más x86, power stb.

Régóta vágyok én, az androidok mezonkincsére már!