Teknîkî nû ji bo îstismarkirina qelsiyên Specter li Chrome

Komek lêkolînerên ji zanîngehên Amerîkî, Avusturalya û Israelisraîlî teknîkek nû ya êrişê ya kanala alî pêşnîyar kirin da ku qelsiyên çîna Specter-ê di gerokên li ser bingeha motora Chromium de bikar bînin. Êrîşa, bi navê kod Spook.js, dihêle hûn bi xebitandina koda JavaScriptê mekanîzmaya veqetandina malperê derbas bikin û naveroka tevahiya cîhê navnîşana pêvajoya heyî bixwînin, yanî. bigihîjin daneyan ji rûpelên ku di tabloyên din de dixebitin, lê di heman pêvajoyê de têne kirin.

Ji ber ku Chrome di pêvajoyên cihêreng de malperên cihêreng dimeşîne, şiyana pêkanîna êrîşên pratîkî bi karûbarên ku destûrê dide bikarhênerên cûda ku rûpelên xwe mêvandar bikin sînordar e. Rêbaz dihêle, ji rûpelek ku êrîşkar tê de fersend heye ku koda xweya JavaScript-ê bi cih bike, hebûna rûpelên din ên ku bikarhêner ji heman malperê vekiriye diyar bike û agahdariya nepenî ji wan derxîne, mînakî, pêbawerî an hûrguliyên bankê yên li şûna ji hêla pergala dagirtina zeviyên xweser ên di formên malperê de. Wekî xwenîşandanek, tê destnîşan kirin ku hûn çawa dikarin êrîşî bloga kesek din li ser karûbarê Tumblr bikin ger xwediyê wê blogek êrîşkaran ku li ser heman karûbarê mêvandar di tabloyek din de vedike.

Vebijarkek din a karanîna rêbazê êrîşek li ser pêvekên gerokê ye, ku dihêle, dema ku pêvekek ku ji hêla êrîşkar ve hatî kontrol kirin saz dike, daneyan ji pêvekên din derxîne. Wekî mînakek, em destnîşan dikin ka hûn çawa bi sazkirina pêvekek xirabkar hûn dikarin agahdariya nepenî ji rêveberê şîfreya LastPass derxînin.

Lekolînwanan prototîpek îstîsmarek ku di Chrome 89 de li ser pergalên bi CPUIntel i7-6700K û i7-7600U dixebite weşand. Dema afirandina îstîsmarê, prototîpên koda JavaScriptê ku berê ji hêla Google ve hatî weşandin, ji bo pêkanîna êrîşên çîna Specter hatin bikar anîn. Tê zanîn ku lêkolîneran karîbûn ji bo pergalên ku li ser bingeha pêvajoyên Intel û Apple M1-ê têne xebitandin, ku îmkana organîzekirina xwendina bîranînê bi leza 500 byte di çirkeyek û rastbûna 96% de amade bikin. Tê texmîn kirin ku rêbaz ji bo pêvajoyên AMD-ê jî tê sepandin, lê ne gengaz bû ku karûbarek bi tevahî fonksiyonel were amadekirin.

Êrîş li ser her gerokên ku li ser motora Chromium-ê têne çêkirin, di nav de Google Chrome, Microsoft Edge û Brave tê sepandin. Lêkolîner her weha di wê baweriyê de ne ku rêbaz dikare ji bo xebitandina Firefox-ê were adaptekirin, lê ji ber ku motora Firefox-ê ji Chrome-ê pir cûda ye, xebata li ser çêkirina îstismarek wusa ji bo pêşerojê tê hiştin.

Ji bo parastina li dijî êrişên gerok-based ên têkildarî înfazkirina talîmatan a spekulatîf, Chrome dabeşkirina cîhê navnîşan dike - veqetandina sandbox dihêle ku JavaScript tenê bi nîşankerên 32-bit bixebite û bîranîna destanan di nav 4 GB-ê de ji hev veqetîne. Ji bo peydakirina gihîştina tevahiya cîhê navnîşana pêvajoyê û derbaskirina sînorkirina 32-bit, lêkolîner teknîkek bi navê Tîpa Tevlihevî bikar anîn, ku motora JavaScriptê neçar dike ku tiştek bi celebek xelet bişopîne, ku ev yek dihêle ku meriv 64-bit çêbike. nîşanker li ser bingeha yekbûna du nirxên 32-bit.

Esasê êrîşê ev e ku dema ku di motora JavaScript-ê de malzemeyek taybetî hatî sêwirandin têne hilberandin, şert û mercên ku rê li darvekirina spekulatîf a rêwerzên ku digihîje rêzê têne afirandin têne afirandin. Tişt bi vî rengî tê hilbijartin ku zeviyên êrîşkar-kontrolkirî li devera ku nîşankera 64-bit tê bikar anîn têne danîn. Ji ber ku celebê tiştê xirab bi celebê rêzika ku tê hilanîn hev nagire, di şert û mercên normal de kiryarên weha di Chrome-ê de ji hêla mekanîzmayek ji bo nebaşkirina koda ku ji bo gihîştina rêzan tê bikar anîn têne asteng kirin. Ji bo çareserkirina vê pirsgirêkê, koda ji bo êrîşa Type Confusion di bloka "heke" ya şertî de tête danîn, ku di bin şert û mercên normal de nayê aktîf kirin, lê di moda spekulatîf de tête darve kirin, heke pêvajoker bi xeletî şaxek din pêşbîn bike.

Wekî encamek, pêvajoker bi spekulatîf xwe digihîne nîşana 64-bitê ya hatî çêkirin û piştî ku pêşbîniyek têkçûyî destnîşan dike, dewletê paşde vedigerîne, lê şopên darvekirinê di cache-ya hevpar de dimînin û dikarin bi karanîna rêbazên vedîtina cache-kanala alî-kanala ku guheztinên di analîzê de têne vegerandin vegerînin. demên gihîştina daneyên cached û necached. Ji bo analîzkirina naveroka cacheyê di şert û mercên nerastiya demjimêra ku di JavaScript-ê de peyda dibe, rêbazek ku ji hêla Google ve hatî pêşniyar kirin tê bikar anîn, ku stratejiya derxistina cache Tree-PLRU ya ku di pêvajoyê de tê bikar anîn dixapîne û dihêle, bi zêdekirina hejmara dewreyan, Dema ku nirxek di cache de hebe û tune be cûdahiya wextê bi girîngî zêde bike. .

Source: opennet.ru

Add a comment