- Lid geworden
- 2 aug 2016
- Berichten
- 36.567
- Waarderingsscore
- 7.063
- Punten
- 113
- OS
- Windows 11 Professional
- AV
- Microsoft Defender, MBAM & Eset Online
- FW
- Windows Firewall
Intel CPU's kwetsbaar voor nieuwe zijwaartse executie aanval
Door Bill ToulasEr is een nieuwe aanval met zijkanalen ontdekt op meerdere generaties Intel CPU's, waardoor gegevens kunnen worden gelekt via het
EFLAGS-register.
De nieuwe aanval werd ontdekt door onderzoekers van de Tsinghua Universiteit, de Universiteit van Maryland en een computerlab
(BUPT) van het Chinese Ministerie van Onderwijs en verschilt van de meeste andere aanvallen via nevenkanalen.
In plaats van te vertrouwen op het cache-systeem, zoals veel andere side-channel-aanvallen, maakt deze nieuwe aanval gebruik van
een fout in transiënte uitvoering die het mogelijk maakt om geheime gegevens uit het gebruikersgeheugen te halen via timing-analyse.
De aanval werkt als een zijkanaal voor Meltdown, een kritiek beveiligingslek dat in 2018 werd ontdekt en gevolgen heeft voor veel
x86-gebaseerde microprocessoren.
Meltdown maakt gebruik van een prestatie-optimalisatiefunctie genaamd "speculatieve uitvoering" om aanvallers in staat te stellen
geheugenisolatiemechanismen te omzeilen om toegang te krijgen tot geheimen die zijn opgeslagen in het kernelgeheugen, zoals
wachtwoorden, encryptiesleutels en andere privégegevens.
Meltdown is grotendeels beperkt door softwarepatches, microcode-updates en herontwerpen van hardware; geen enkele oplossing heeft
het probleem echter voor 100% opgelost, en de nieuwste aanvalsmethode kan zelfs werken in volledig gepatchte systemen, afhankelijk
van hardware-, software- en patchconfiguraties.
Aanval op timing van transiënte uitvoering
De nieuwe side-channel aanval die in een op Arxiv.org gepubliceerd technisch artikel wordt gepresenteerd, beschrijft een fout in dewijziging van het EFLAGS-register bij transiënte uitvoering, waardoor de timing van JCC-instructies (jump on condition code) wordt
beïnvloed.
Het EFLAGS-register is een CPU-register dat verschillende vlaggen bevat die verband houden met de toestand van de processor,
terwijl de JCC-instructie een CPU-instructie is die voorwaardelijke vertakkingen mogelijk maakt op basis van de inhoud van het EFLAGS-register.
De aanval wordt uitgevoerd in twee fasen: de eerste is het op gang brengen van de transiënte uitvoering en het coderen van geheime
gegevens via het EFLAGS-register, en de tweede is het meten van de uitvoeringstijd van de KCC-instructie om de gegevens te decoderen.
Overzicht van de aanval (arxiv.org)
Uit de experimentele gegevens bleek dat de aanval 100% data retrieval (lek) bereikte voor de Intel i7-6700 en Intel i7-7700 en enig succes had tegen de nieuwere Intel i9-10980XE CPU. Het experiment werd uitgevoerd op Ubuntu 22.04 jammy met Linux kernel versie 5.15.0.
Pseudocode voor timing van de aanval op voorbijgaande uitvoering (arxiv.org)
De onderzoekers merken echter op, dat deze timingaanval niet zo betrouwbaar is als cache-state side-channel methoden en om betere resultaten te krijgen in recente chips, zou de aanval duizenden keren herhaald moeten worden.
"In ons experiment ontdekten we, dat de invloed van het EFLAGS-register op de uitvoeringstijd van de Jcc-instructie niet zo persistent is als de cache-status," leest het deel over de evaluatie van de experimentele gegevens.
"Gedurende ongeveer 6-9 cycli na de voorbijgaande uitvoering, zal de Jcc-uitvoeringstijd niet over zijn om een zijkanaal te construeren. Empirisch gezien moet de aanval duizenden keren herhaald worden voor een hogere nauwkeurigheid."
De onderzoekers geven toe, dat de hoofdoorzaken van de aanval ongrijpbaar blijven en veronderstellen, dat er een buffer is in de uitvoeringseenheid van de Intel CPU, die tijd nodig heeft, om terug te keren als de uitvoering moet worden ingetrokken, een proces dat een stall veroorzaakt, als de daaropvolgende instructie afhankelijk is van het doel van de buffer.
Zij stellen echter nog enkele niet-triviale mitigaties voor, zoals het wijzigen van de implementatie van de JCC-instructie om het meten van adversariële uitvoering onder alle omstandigheden onmogelijk te maken, of het herschrijven van de EFLAGS na transiënte uitvoering om de invloed ervan op de JCC-instructie te verminderen.
Bron: