CROSSTalk - een kwetsbaarheid in Intel CPU's die leidt tot gegevenslekken tussen cores

Een team van onderzoekers van de Vrije Universiteit Amsterdam heeft een nieuwe gevonden kwetsbaarheid (CVE-2020-0543) in de microarchitecturale structuren van Intel-processors, opmerkelijk omdat u hiermee de resultaten kunt herstellen van de uitvoering van sommige instructies die op een andere CPU-kern zijn uitgevoerd. Dit is de eerste kwetsbaarheid in het speculatieve instructie-uitvoeringsmechanisme dat gegevenslekken tussen individuele CPU-kernen mogelijk maakt (voorheen waren lekken beperkt tot verschillende threads van dezelfde kern). De onderzoekers noemden het probleem CROSSTalk, maar Intel-documenten De kwetsbaarheid wordt SRBDS (Special Register Buffer Data Sampling) genoemd.

De kwetsbaarheid heeft betrekking op gepresenteerd een jaar geleden tot de klasse van MDS-problemen (Microarchitectural Data Sampling) en is gebaseerd op de toepassing van zijkanaalanalysemethoden op gegevens in microarchitecturale structuren. Werkingsprincipe CROSSTalk is bijna kwetsbaar Rýdl, maar verschilt in de bron van het lek.
De nieuwe kwetsbaarheid manipuleert het lek van een voorheen ongedocumenteerde tussenbuffer die door alle CPU-kernen wordt gedeeld.

CROSSTalk - een kwetsbaarheid in Intel CPU's die leidt tot gegevenslekken tussen cores

De essentie van het probleem is dat sommige microprocessorinstructies, waaronder RDRAND, RDSEED en SGX EGETKEY, worden geïmplementeerd met behulp van de interne microarchitecturale SRR-bewerking (Special Register Reads). Op getroffen processors worden de gegevens die voor SRR worden geretourneerd, gedeponeerd in een tussenbuffer die gemeenschappelijk is voor alle CPU-kernen, waarna deze worden overgebracht naar een vulbuffer die is gekoppeld aan de specifieke fysieke CPU-kern waarop de leesbewerking is gestart. Vervolgens wordt de waarde uit de vulbuffer gekopieerd naar registers die zichtbaar zijn voor toepassingen.

De grootte van de tussenliggende gedeelde buffer komt overeen met de cacheregel, die doorgaans groter is dan de grootte van de gegevens die worden gelezen, en verschillende leesbewerkingen beïnvloeden verschillende offsets in de buffer. Omdat de gedeelde buffer volledig naar de vulbuffer wordt gekopieerd, wordt niet alleen het gedeelte dat nodig is voor de huidige bewerking verplaatst, maar ook de gegevens die overblijven van andere bewerkingen, inclusief die welke op andere CPU-kernen worden uitgevoerd.

CROSSTalk - een kwetsbaarheid in Intel CPU's die leidt tot gegevenslekken tussen cores

CROSSTalk - een kwetsbaarheid in Intel CPU's die leidt tot gegevenslekken tussen cores

Als de aanval succesvol is, kan een in het systeem geverifieerde lokale gebruiker het resultaat bepalen van het uitvoeren van de RDRAND-, RDSEED- en EGETKEY-instructies in een vreemd proces of binnen een Intel SGX-enclave, ongeacht de CPU-kern waarop de code wordt uitgevoerd.
Onderzoekers die het probleem hebben geïdentificeerd gepubliceerd Een prototype-exploit die de mogelijkheid aantoont om informatie te lekken over willekeurige waarden verkregen via de RDRAND- en RDSEED-instructies om een ​​ECDSA-privésleutel te herstellen die is verwerkt in de Intel SGX-enclave na het uitvoeren van slechts één digitale handtekeningbewerking op het systeem.


probleem gevoelig een breed scala aan desktop-, mobiele en server Intel-processors, waaronder Core i3, i5, i7, i9, m3, Celeron (J-, G- en N-serie), Atom (C-, E- en X-serie), Xeon (E3, E5, E7-families, W en D), Xeon schaalbaar, enz. Het is opmerkelijk dat Intel in september 2018 op de hoogte werd gesteld van de kwetsbaarheid en dat in juli 2019 een exploit-prototype werd geleverd dat gegevenslekken tussen CPU-kernen aantoonde, maar de ontwikkeling van een oplossing werd uitgesteld vanwege de complexiteit van de implementatie ervan. De vandaag voorgestelde microcode-update lost dit probleem op door het gedrag van de RDRAND-, RDSEED- en EGETKEY-instructies te veranderen om gegevens in de gedeelde buffer te overschrijven om te voorkomen dat resterende informatie zich daar nestelt. Bovendien wordt de buffertoegang gepauzeerd totdat de inhoud is gelezen en herschreven.

Een neveneffect van dit type bescherming is een verhoogde latentie bij het uitvoeren van RDRAND, RDSEED en EGETKEY, en een verminderde doorvoer bij pogingen om deze instructies gelijktijdig uit te voeren op verschillende logische processors. Het uitvoeren van RDRAND, RDSEED en EGETKEY schort ook de geheugentoegang van andere logische processors op. Deze functies kunnen de prestaties van sommige servertoepassingen negatief beïnvloeden. Daarom biedt de firmware een mechanisme (RNGDS_MITG_DIS) om de bescherming uit te schakelen voor RDRAND- en RDSEED-instructies die buiten de Intel SGX-enclave worden uitgevoerd.

Bron: opennet.ru

Voeg een reactie