CROSSTalk — en sårbarhed i Intel CPU, der fører til datalækage mellem kerner

En gruppe forskere fra det Frie Universitet i Amsterdam har identificeret en ny ASLR i programmer med setuid-flaget og bestemme adressefordelingen i de indlæste biblioteker gennem manipulation af miljøvariablen LD_PREFER_MAP_32BIT_EXEC. (CVE-2020-0543) i mikroarkitekturstrukturerne af Intel-processorer, bemærkelsesværdig ved at den gør det muligt at genoprette resultaterne af udførelsen af visse instruktioner, der udføres på en anden CPU-kerne. Dette er den første sårbarhed i mekanismen for spekulativ udførelse af instruktioner, der muliggør datalækager mellem separate CPU-kerner (tidligere var lækager begrænset til forskellige tråde på den samme kerne). Forskerne har givet problemet navnet CROSSTalk, men i Intel-dokumenterne nævnes sårbarheden som SRBDS (Special Register Buffer Data Sampling).

Sårbarheden relaterer sig til en klasse problemer MDS (Microarchitectural Data Sampling), der blev præsenteret for et år siden og er baseret på anvendelse af metoder til angreb via sidekanaler på data i mikroarkitekturstrukturer. Funktionsprincippet CROSSTalk er tæt på sårbarheden RIDL, men adskiller sig i kilden til lækagen.
Den nye sårbarhed manipulerer en lækage fra en tidligere ikke-dokumenteret midlertidig buffer, som bruges af alle CPU-kerner.

CROSSTalk - en sårbarhed i Intel CPU, der fører til datalækage mellem kerner

Kernen i problemet er, at nogle mikroprocessor instruktioner, inklusive RDRAND, RDSEED og SGX EGETKEY, er implementeret ved hjælp af en intern mikroarkitektonisk operation SRR (Special Register Reads). På de sårbare processorer, bliver de data, der returneres til SRR, fastgjort i en midlertidig buffer, der er fælles for alle CPU-kerner, hvorefter de sendes til en udfyldningsbuffer bundet til den specifikke fysiske CPU-kerne, hvor læseoperationen blev initieret. Derefter bliver værdien kopieret fra udfyldningsbufferen til registrene, synlige for applikationer.

Størrelsen af den fælles midlertidige buffer svarer til cache-linjen, hvilket normalt er større end størrelsen af de læste data, og forskellige læseoperationer påvirker forskellige offset i bufferen. Da den fælles buffer kopieres til udfyldningsbufferen i sin helhed, flyttes ikke kun den nødvendige portion til den nuværende operation, men også de data, der er tilbage fra udførelsen af andre operationer, herunder dem, der er udført på andre CPU-kerner.

CROSSTalk - en sårbarhed i Intel CPU, der fører til datalækage mellem kerner

CROSSTalk - en sårbarhed i Intel CPU, der fører til datalækage mellem kerner

I tilfælde af en vellykket angrebsorganisation kan en autentificeret lokal bruger i systemet bestemme resultatet af udførelsen af instruktionerne RDRAND, RDSEED og EGETKEY i en anden proces eller i Intel SGX-enklaven, uafhængigt af den CPU-kerne, hvor koden udføres.
Forskere, der har identificeret problemet har offentliggjort en prototype af et exploit, der demonstrerer muligheden for lækage af oplysninger om tilfældige værdier, der opnås via RDRAND- og RDSEED-instruktioner, til gendannelse af ECDSA-private nøgler, der behandles i Intel SGX-enklaven, efter én enkelt digital underskriftoperation i systemet.


Afspil video

Problemet er underlagt et bredt spektrum af Intel-desktop-, mobil- og serverprocessorer, herunder Core i3, i5, i7, i9, m3, Celeron (serierne J, G og N), Atom (serierne C, E og X), Xeon (familierne E3, E5, E7, W og D), Xeon Scalable osv. Det er bemærkelsesværdigt, at Intel blev underrettet om sårbarheden i september 2018, og i juli 2019 blev der præsenteret en prototype af et exploit, der demonstrerede datalækage mellem CPU-kerner, men udviklingen af en rettelse blev forsinket på grund af kompleksiteten i implementeringen. I den mikroprogrammeringsopdatering, der blev præsenteret i dag, er problemet blokeret ved at ændre adfærden af RDRAND-, RDSEED- og EGETKEY-instruktioner, så de overskriver data i den delte buffer for at forhindre, at resterende oplysninger bliver tilbage i den. Desuden er adgangen til bufferen blevet sat på pause, indtil læse- og overskriveoperationer er afsluttet.

En bivirkning af denne beskyttelse er en øget forsinkelse ved udførelse af RDRAND, RDSEED og EGETKEY samt nedsat båndbredde ved forsøg på samtidig udførelse af disse instruktioner på forskellige logiske processorer. Udførelse af RDRAND, RDSEED og EGETKEY suspenderer også hukommelsesadgang fra andre logiske processorer. Disse træk kan negativt påvirke ydeevnen for nogle serverapplikationer, så firmwaren indeholder en mekanisme (RNGDS_MITG_DIS) til at deaktivere beskyttelsen af RDRAND- og RDSEED-instruktioner, der udføres uden for Intel SGX-enklaven.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster