Rebleed is 'n nuwe aanval op die spekulatiewe uitvoeringsmeganisme van Intel en AMD SVE's

'n Groep navorsers van die ETH Zurich het 'n nuwe aanval op die meganisme van spekulatiewe uitvoering van indirekte spronge in die SVE geïdentifiseer, wat jou toelaat om inligting uit kerngeheue te onttrek of 'n aanval op die gasheerstelsel vanaf virtuele masjiene te organiseer. Die kwesbaarhede was kodenaam Retbleed (CVE-2022-29900, CVE-2022-29901) en is soortgelyk van aard aan Specter-v2-aanvalle. Die verskil kom neer op die organisasie van spekulatiewe uitvoering van arbitrêre kode tydens die verwerking van die "retur" (return) instruksie, wat die adres haal om uit die stapel te spring, in plaas daarvan om indirek te spring met die "jmp" instruksie, laai die adres uit die geheue of 'n SVE-register.

'n Aanvaller kan toestande skep vir verkeerde sprongvoorspelling en 'n doelgerigte spekulatiewe sprong na 'n kodeblok organiseer waarvoor die programuitvoeringslogika nie voorsiening maak nie. Uiteindelik sal die verwerker bepaal dat die takvoorspelling nie geregverdig was nie en die bewerking terugrol na sy oorspronklike toestand, maar die data wat tydens die spekulatiewe uitvoering verwerk word, sal in die kas en mikroargitektoniese buffers vestig. As 'n foutiewelik uitgevoerde blok 'n geheuetoegang uitvoer, sal die spekulatiewe uitvoering daarvan lei tot vestiging in die algemene kas en data wat uit die geheue gelees word.

Om die data wat in die kas agterbly na die spekulatiewe uitvoering van bedrywighede te bepaal, kan die aanvaller metodes gebruik om die oorblywende data deur middel van derdeparty-kanale te bepaal, byvoorbeeld veranderinge in die toegangstyd tot kasgeheue en nie kasdata nie. Vir doelgerigte onttrekking van inligting uit gebiede in 'n ander voorregvlak (byvoorbeeld uit kerngeheue), word "gadgets" gebruik - reekse van opdragte wat in die kern teenwoordig is, geskik vir spekulatiewe lees van data uit geheue, afhangende van eksterne toestande wat kan deur 'n aanvaller beïnvloed word.

Om te beskerm teen klassieke aanvalle van die Spectre-klas, wat voorwaardelike en indirekte takinstruksies gebruik, gebruik die meeste bedryfstelsels die "retpoline"-tegniek, gebaseer op die vervanging van indirekte takbewerkings met die "ret"-instruksie, waarvoor 'n aparte stapeltoestandvoorspellingsblok is wat in verwerkers gebruik word, gebruik nie 'n takvoorspellingsblok nie. By die bekendstelling van retpolien in 2018, is geglo dat Specter-agtige adresmanipulasies nie prakties was vir spekulatiewe vertakking deur die "ret"-instruksie te gebruik nie.

Die navorsers wat die Retbleed-aanvalmetode ontwikkel het, het die moontlikheid gedemonstreer om mikroargitektoniese toestande te skep om 'n spekulatiewe oorgang te begin deur die "ret"-instruksie te gebruik en 'n gereedgemaakte gereedskapstel gepubliseer om instruksiereekse (toerusting) te identifiseer wat geskik is om die kwesbaarheid in die Linux-kern te ontgin, waarin sulke toestande voorkom.

In die loop van die studie is 'n werkende uitbuiting voorberei wat, op stelsels met Intel SVE's, van 'n onbevoorregte proses in gebruikersruimte moontlik maak om arbitrêre data uit kerngeheue te onttrek teen 'n spoed van 219 grepe per sekonde en 98% akkuraatheid. Op AMD-verwerkers is die doeltreffendheid van die uitbuiting baie hoër - die lekkoers is 3.9 KB per sekonde. As 'n praktiese voorbeeld wys dit hoe om die voorgestelde ontginning te gebruik om die inhoud van die /etc/shadow-lêer te bepaal. Op stelsels met Intel-SVE's is 'n aanval om die hash van die root-wagwoord te bepaal binne 28 minute uitgevoer, en op stelsels met AMD-SVE's, in 6 minute.

Die aanval is bevestig vir 6-8 generasies Intel-verwerkers wat voor Q3 2019 vrygestel is (insluitend Skylake), en AMD-verwerkers gebaseer op Zen 1, Zen 1+ en Zen 2 mikroargitekture wat voor Q2021 3 vrygestel is. In nuwer verwerkermodelle, soos AMD ZenXNUMX en Intel Alder Lake, sowel as in ARM-verwerkers, word die probleem deur bestaande beskermingsmeganismes geblokkeer. Byvoorbeeld, die gebruik van IBRS (Indirect Branch Restricted Speculation) instruksies help om teen 'n aanval te beskerm.

'n Stel veranderinge is voorberei vir die Linux-kern en die Xen-hypervisor, wat die probleem programmaties op ouer SVE's blokkeer. Die voorgestelde pleister vir die Linux-kern verander 68 lêers, voeg 1783 reëls by en verwyder 387 reëls. Ongelukkig lei beskerming tot aansienlike oorhoofse koste - in die tekste wat op AMD- en Intel-verwerkers uitgevoer word, word prestasieagteruitgang van 14% tot 39% geraam. Dit is meer verkieslik om beskerming te gebruik gebaseer op IBRS-instruksies, beskikbaar in nuwe generasies Intel-SVE's en ondersteun sedert die Linux 4.19-kern.

Op Intel-verwerkers word adresvervanging vir 'n spekulatiewe indirekte tak uitgevoer as gevolg van 'n kenmerk wat plaasvind wanneer 'n ondervloei in die Return Stack Buffer voorkom. Wanneer sulke toestande voorkom, begin die ret-instruksie adreskeuselogika toepas soortgelyk aan dié wat in konvensionele indirekte spronge gebruik word. Meer as 'n duisend plekke is in die Linux-kern gevind wat die voorwaardes skep om so 'n terugvloei te begin en beskikbaar is deur stelseloproepe.

Op AMD-verwerkers word die spekulatiewe uitvoering van die "ret"-instruksie uitgevoer sonder verwysing na 'n stapelspesifieke buffer (Return Address Stack), en die takvoorspellingsblok beskou die "ret"-instruksie nie as 'n terugkeer van beheer nie, maar as 'n indirekte tak, en gebruik dienooreenkomstig die data vir voorspelling wanneer indirekte oorgange voorspel word. Onder hierdie toestande kan feitlik enige "ret"-operasie wat via 'n stelseloproep bereikbaar is, uitgebuit word.

Boonop het AMD-SVE's ook 'n ander probleem (CVE-2022-23825, Branch Type Confusion) wat verband hou met die implementering van dummy-takke - toestande vir takvoorspelling kan selfs sonder die nodige takinstruksies voorkom, wat jou toelaat om die takvoorspellingsbuffer te beïnvloed sonder 'n instruksie "ret". Hierdie kenmerk bemoeilik die implementering van beskerming aansienlik en vereis meer aktiewe skoonmaak van die takvoorspellingsbuffer. Die byvoeging van volle beskerming by die kern sal na verwagting lei tot 'n 209% bokosteverhoging.

Bron: opennet.ru

Voeg 'n opmerking