CROSSTalk — en sårbarhet i Intel CPU som leder till dataläckor mellan kärnor

En grupp forskare från Vrije Universiteit Amsterdam har identifierat en ny sårbarhet (CVE-2020-0543) i mikroarkitekturstrukturer hos Intel-processorer, som är anmärkningsvärd eftersom den möjliggör återställande av resultaten från vissa instruktioner som utförs på en annan CPU-kärna. Detta är den första sårbarheten i mekanismen för spekulativ exekvering av instruktioner som medger dataläckage mellan separata CPU-kärnor (tidigare var läckage begränsade till olika trådar inom en kärna). Forskarna gav problemet namnet CROSSTalk, men i Intel-dokumenten omnämns sårbarheten som SRBDS (Special Register Buffer Data Sampling).

Sårbarheten hör till den klass av problem som presenterades för ett år sedan, MDS (Microarchitectural Data Sampling), och bygger på användningen av metoder för analys via sidokanaler för att hantera data i mikroarkitekturstrukturer. Funktionsprincip CROSSTalk är liknande sårbarheten RIDL, men skiljer sig i läckagekällan.
Den nya sårbarheten manipulerar ett läckage från en tidigare odokumenterad buffert som används gemensamt av alla CPU-kärnor.

CROSSTalk - en sårbarhet i Intel CPU som leder till dataläckage mellan kärnor

Problemets kärna I att vissa mikroprocessorinstruktioner, inklusive RDRAND, RDSEED och SGX EGETKEY, implementeras med hjälp av en intern mikroarkitektonisk operation, SRR (Special Register Reads). På sårbara processorer lagras de data som returneras för SRR i en gemensam buffert för alla CPU-kärnor, som senare överförs till en fyllningsbuffert kopplad till en specifik fysisk CPU-kärna där läsningsoperationen initierades. Sedan kopieras värdet från fyllningsbufferten till register som är synliga för applikationerna.

Storleken på den gemensamma bufferten motsvarar cache-linjen, vilket vanligtvis är större än storleken på de lästa uppgifterna, och olika läsningsoperationer påverkar olika förskjutningar i bufferten. Eftersom den gemensamma bufferten kopieras hela vägen till fyllningsbufferten flyttas inte bara den nödvändiga datan för den aktuella operationen, utan även data som är kvar från utförandet av andra operationer, inklusive de som utförts på andra CPU-kärnor.

CROSSTalk - en sårbarhet i Intel CPU som leder till dataläckage mellan kärnor

CROSSTalk - en sårbarhet i Intel CPU som leder till dataläckage mellan kärnor

Vid en framgångsrik attack kan en autentiserad lokal användare i systemet avgöra resultaten av RDRAND, RDSEED och EGETKEY-instruktioner i en annan process eller inom ett Intel SGX-enklav, oavsett vilken CPU-kärna koden körs på.
Forskarna som upptäckte problemet har publicerat En prototyp av en exploiter som demonstrerar möjligheten av läckage av information om slumpmässiga värden som erhållits genom instruktionerna RDRAND och RDSEED, för att återställa ECDSA-hemliga nycklar som behandlas i Intel SGX-enklaven, efter att ha utfört endast en operation med digital signatur i systemet.


Spela video

Problemet utsatt ett brett utbud av Intel-processorserier för stationära datorer, mobila enheter och servrar, inklusive Core i3, i5, i7, i9, m3, Celeron (serierna J, G och N), Atom (serierna C, E och X), Xeon (familjerna E3, E5, E7, W och D), Xeon Scalable osv. Det är värt att notera att Intel informerades om sårbarheten i september 2018, och en prototyp av exploiten som demonstrerade dataläckage mellan CPU-kärnor presenterades i juli 2019, men utvecklingen av en lösning fördröjdes på grund av komplexiteten i implementeringen. I den föreslagna mikroprogramsuppdateringen blockeras problemet genom att ändra beteendet hos instruktionerna RDRAND, RDSEED och EGETKEY för att överdriva omskrivning av data i den delade bufferten för att förhindra kvarvarande information från att stanna kvar. Dessutom har åtkomsten till bufferten pausats tills läsning och omskrivning av innehållet är slutförd.

En bieffekt av denna skyddsmekanism är ökad latens vid körning av RDRAND, RDSEED och EGETKEY samt minskad bandbredd vid försök av samtidig utförande av dessa instruktioner på olika logiska processorer. Utförande av RDRAND, RDSEED och EGETKEY pausar också minnesåtkomst från andra logiska processorer. Dessa egenskaper kan påverka prestandan hos vissa serverprogram negativt, varför en mekanism (RNGDS_MITG_DIS) för att inaktivera skyddet av instruktionerna RDRAND och RDSEED, som utförs utanför Intel SGX-enklaven, finns i firmware.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster