Google bi pêkanîna JavaScript-ê di gerokê de îstismarkirina qelsiyên Specter nîşan dide

Google çend prototîpên îstismarkirinê weşandine ku îhtîmala îstismarkirina qelsiyên çîna Specter dema ku koda JavaScript-ê di gerokê de bicîh dike nîşan dide, rêgezên parastinê yên ku berê hatine zêdekirin derbas dike. Karûbar dikare were bikar anîn da ku meriv bigihîje bîranîna pêvajoya hilberandina naveroka malperê ya di tabloya heyî de. Ji bo ceribandina operasyona îstîsmarê, malpera leaky.page hate vekirin, û koda ku mantiqa xebatê diyar dike li ser GitHub hate şandin.

Prototîpa pêşniyarkirî ji bo êrîşkirina pergalên bi pêvajoyên Intel Core i7-6500U di hawîrdorek bi Linux û Chrome 88 de hatî çêkirin. Rêbaza îstismarkirinê ji bo pêvajoyên Intel-ê ne taybetî ye - piştî adaptasyona guncan, îstismar hate pejirandin ku li ser pergalên bi CPU-yên ji hilberînerên din re bixebite, di nav de Apple M1-a ku li ser bingeha mîmariya ARM-ê ye. Piştî verastkirinên piçûk, îstîsmar di pergalên xebitandinê yên din de û di gerokên din ên ku li ser motora Chromium-ê de ne jî kar dike.

Li hawîrdorek ku li ser bingeha pêvajoyên standard Chrome 88 û Intel Skylake ye, gengaz bû ku daneyên ji pêvajoya ku berpirsiyarê hilberandina naveroka malperê di tabloya heyî ya Chrome (pêvajoya renderer) de bi leza 1 kilobyte serê saniyeyê derxe. Wekî din, prototîpên alternatîf hatine pêşve xistin, wek nimûne, îstîsmarek ku dihêle, bi bihayê kêmkirina aramiyê, dema ku performansê bikar tîne rêjeya lehiyê bigihîne 8 kB/s. ). Di heman demê de guhertoyek hate amadekirin ku bi rastbûna demjimêrek yek milîsaniyeyê dixebitî, ku dikare were bikar anîn da ku gihîştina bîranîna pêvajoyek din bi leza 5 byte di çirkeyê de were organîze kirin.

Koda demo ya hatî weşandin ji sê beşan pêk tê. Beşa yekem demjimêrê kalibr dike da ku dema pêkanîna operasyonên ku ji bo vegerandina daneyên ku di cacheya pêvajoyê de mayî wekî encama darvekirina spekulatîf a rêwerzên CPU-yê hewce ne, texmîn bike. Beşa duyemîn rêzika bîranînê ya ku dema veqetandina rêzika JavaScript-ê tê bikar anîn destnîşan dike.

Beşa sêyemîn rasterast qelsiya Specter bikar tîne da ku naveroka bîranînê ya pêvajoya heyî diyar bike wekî encama afirandina şert û mercên ji bo pêkanîna spekulatîf a hin operasyonan, ku encama wê ji hêla pêvajoyê ve piştî destnîşankirina pêşbîniyek neserkeftî ji holê tê rakirin, lê şopên darvekirin di cache-ya gelemperî de têne razandin û bi karanîna rêbazên ji bo destnîşankirina naveroka cache-ê ji hêla kanalên sêyemîn-sêyem ve ku guheztinên di dema gihîştina daneya cache û necachkirî de analîz dikin têne vegerandin.

Teknolojiya îstîsmarê ya pêşniyarkirî dihêle ku meriv bêyî demjimêrên rast-bilind ên ku ji hêla performansa.now() API-yê ve têne peyda kirin, û bêyî piştgirî ji celebê SharedArrayBuffer, ku destûrê dide çêkirina rêzikên di bîranîna hevpar de, were kirin. Di îstîsmarê de amûra Specter, ku dibe sedema înfaza spekulatîf a kontrolkirî ya kodê, û analîzatorek levkirinê ya kanala alîgir, ku daneyên cache yên ku di dema darvekirina spekulatîf de hatine bidestxistin vedihewîne.

Gadget bi karanîna rêzek JavaScript-ê tête bicîh kirin ku tê de hewl tê dayin ku meriv bigihîje deverek li derveyî sînorên tamponê, bandorê li rewşa bloka pêşbîniya şaxê dike ji ber hebûna kontrolek mezinahiya tamponê ku ji hêla berhevker ve hatî zêdekirin (prosesor bi spekulatîf pêk tîne gihîştina pêşwext, lê piştî kontrolê dewletê paşde vedigerîne). Ji bo analîzkirina naveroka cacheyê di bin şert û mercên nerastiya demjimêrê de, rêbazek hatiye pêşniyar kirin ku stratejiya derxistina cache Tree-PLRU ya ku di pêvajoyan de tê bikar anîn dixapîne û dihêle, bi zêdekirina hejmara dewreyan, di dema vegerê de cûdahiya demê bi girîngî zêde bike. nirxek ji cache û dema ku tu nirxa di cache.

Tê destnîşan kirin ku Google prototîpa îstîsmarê weşand da ku gengaziya êrîşan bi karanîna qelsiyên pola Specter nîşan bide û pêşdebirên malperê teşwîq bike ku teknîkên ku xetereyên ji van êrîşan kêm dikin bikar bînin. Di heman demê de, Google bawer dike ku bêyî nûvekirina girîng a prototîpa pêşniyarkirî, ne gengaz e ku meriv kelûmelên gerdûnî biafirîne ku ne tenê ji bo xwenîşandanê, lê ji bo karanîna berfireh jî amade ne.

Ji bo kêmkirina metirsiyê, xwediyên malperê têne teşwîq kirin ku sernivîsên ku vê dawiyê hatine bicîh kirin Siyaseta Vekirina Cross-Origin (COOP), Siyaseta Embedder Cross-Origin (COEP), Siyaseta Çavkaniyê ya Cross-Origin (CORP), Daxwaza Metadata Fetch, X-Frame- bikar bînin. Vebijêrk, X -Content-Type-Vebijarkên û SameSite Cookie. Van mekanîzmayan rasterast li hember êrîşan naparêzin, lê ew dihêlin ku hûn daneyên malperê ji derbirîna pêvajoyên ku tê de koda JavaScript-ê ya êrîşkar dikare were darve kirin veqetînin (derçûn ji bîranîna pêvajoya heyî pêk tê, ku ji bilî koda êrişker , di heman demê de dikare daneyên ji malperek din a ku di heman tabloyê de hatî vekirin jî pêvajoyê bike). Fikra sereke ev e ku meriv pêkanîna koda malperê di pêvajoyên cihêreng de ji koda sêyemîn a ku ji çavkaniyên nebawer hatî wergirtin veqetîne, mînakî, bi navgîniya iframe ve tê veqetandin.



Source: opennet.ru

Add a comment