GhostRace – Nieuwe kwetsbaarheid voor datalekken treft moderne CPU’s

Een groep onderzoekers heeft een nieuwe datalekaanval ontdekt die van invloed is op moderne CPU-architecturen die speculatieve uitvoering ondersteunen.

Nagesynchroniseerd SpookRace (CVE-2024-2193), het is een variatie op de tijdelijke CPU-kwetsbaarheid die bekend staat als Spectre v1 (CVE-2017-5753). De aanpak combineert speculatieve uitvoering en racecondities.

“Alle gemeenschappelijke synchronisatieprimitieven die zijn geïmplementeerd met behulp van voorwaardelijke vertakkingen kunnen microarchitectonisch worden omzeild op speculatieve paden met behulp van een aanval met verkeerde voorspellingen van vertakkingen, waardoor alle architectonisch racevrije kritieke regio’s worden omgezet in Speculative Race Condities (SRC’s), waardoor aanvallers informatie van het doelwit kunnen lekken”, aldus de auteur. zeiden onderzoekers.

De bevindingen van de Systems Security Research Group van IBM Research Europe en VUSec, waarvan de laatste in december 2023 een nieuwe zijkanaalaanval onthulde, SLAM genaamd, gericht op moderne processors.

Spectre verwijst naar een klasse van zijkanaalaanvallen die gebruikmaken van branch-voorspelling en speculatieve uitvoering op moderne CPU’s om geprivilegieerde gegevens in het geheugen te lezen, waarbij isolatiebescherming tussen applicaties wordt omzeild.

Hoewel speculatieve uitvoering een prestatie-optimalisatietechniek is die door de meeste CPU’s wordt gebruikt, profiteren Spectre-aanvallen van het feit dat foutieve voorspellingen sporen van geheugentoegang of berekeningen achterlaten in de caches van de processor.

“Spectre-aanvallen zetten een slachtoffer ertoe aan om speculatief operaties uit te voeren die niet zouden plaatsvinden tijdens strikt geserialiseerde, in-order verwerking van de instructies van het programma, en die vertrouwelijke informatie van het slachtoffer via een geheim kanaal naar de tegenstander lekken”, merkten de onderzoekers achter de Spectre-aanval in januari op. 2018.

Wat GhostRace opmerkelijk maakt, is dat het een niet-geverifieerde aanvaller in staat stelt willekeurige gegevens uit de processor te extraheren met behulp van race-omstandigheden om toegang te krijgen tot de speculatieve uitvoerbare codepaden door gebruik te maken van een zogenaamde Speculative Concurrent Use-After-Free (SCUAF)-aanval.

Een race condition is een ongewenste situatie die optreedt wanneer twee of meer processen proberen toegang te krijgen tot dezelfde, gedeelde bron zonder de juiste synchronisatie, wat leidt tot inconsistente resultaten en een kans opent voor een aanvaller om kwaadaardige acties uit te voeren.

“Wat betreft kenmerken en exploitatiestrategie is een SRC-kwetsbaarheid vergelijkbaar met een klassieke raceconditie”, legt het CERT Coördinatiecentrum (CERT/CC) uit in een advies.

“Het is echter anders omdat de aanvaller de genoemde raceconditie exploiteert op een tijdelijk uitgevoerd pad dat afkomstig is van een verkeerd gespeculeerde branch (vergelijkbaar met Spectre v1), waarbij hij zich richt op een pikant codefragment of gadget dat uiteindelijk informatie aan de aanvaller vrijgeeft.”

Het netto resultaat is dat een aanvaller met toegang tot CPU-bronnen toegang krijgt tot willekeurig gevoelige gegevens uit het hostgeheugen.

“Elke software, bijvoorbeeld een besturingssysteem, hypervisor, enz., die synchronisatieprimitieven implementeert via voorwaardelijke vertakkingen zonder enige serialisatie-instructie op dat pad en draait op elke microarchitectuur (bijv. x86, ARM, RISC-V, enz.), die voorwaardelijke takken die speculatief moeten worden geëxecuteerd, zijn kwetsbaar voor SRC’s’, aldus VUSec.

Na verantwoorde openbaarmaking zei AMD dat de bestaande richtlijnen voor Spectre “van toepassing blijven om deze kwetsbaarheid te beperken.” De beheerders van de Xen open-source hypervisor erkenden dat alle versies getroffen zijn, hoewel ze zeiden dat het onwaarschijnlijk is dat dit een ernstige bedreiging voor de veiligheid zal vormen.

“Uit voorzichtigheid heeft het Xen Security Team verhardingspatches geleverd, waaronder de toevoeging van een nieuw LOCK_HARDEN-mechanisme op x86, vergelijkbaar met het bestaande BRANCH_HARDEN,” zei Xen.

“LOCK_HARDEN is standaard uitgeschakeld vanwege de onzekerheid dat er een kwetsbaarheid is onder Xen en de onzekerheid over de impact op de prestaties. We verwachten echter dat er meer onderzoek zal plaatsvinden op dit gebied en vinden het verstandig om een ​​oplossing te treffen. “

Thijs Van der Does