Nije technyk foar it eksploitearjen fan Spectre-kwetsberheden yn Chrome

In groep ûndersikers fan Amerikaanske, Australyske en Israelyske universiteiten hawwe in nije side-kanaal oanfalstechnyk foarsteld om Specter-klasse kwetsberens te eksploitearjen yn browsers basearre op de Chromium-motor. De oanfal, koadenamme Spook.js, lit jo de side-isolaasjemeganisme omgean troch JavaScript-koade út te fieren en de ynhâld fan 'e hiele adresromte fan it aktuele proses te lêzen, d.w.s. tagong ta gegevens fan siden dy't rinne yn oare ljeppers, mar ferwurke yn itselde proses.

Om't Chrome ferskate siden yn ferskate prosessen rint, is de mooglikheid om praktyske oanfallen út te fieren beheind ta tsjinsten wêrmei ferskate brûkers har siden kinne hostje. De metoade lit, fanôf in side wêryn de oanfaller de kâns hat om syn JavaScript-koade yn te foegjen, de oanwêzigens te bepalen fan oare siden iepene troch de brûker fan deselde side en fertroulike ynformaasje derfan út te heljen, bygelyks referinsjes of bankgegevens ferfongen. troch it systeem fan automatysk ynfoljen fan fjilden yn webformulieren. As demonstraasje wurdt it sjen litten hoe't jo it blog fan in oar oanfalle kinne op 'e Tumblr-tsjinst as syn eigner in oanfallersblog iepenet dy't op deselde tsjinst host wurdt yn in oare ljepper.

In oare opsje foar it brûken fan de metoade is in oanfal op browser-tafoegings, wêrtroch, by it ynstallearjen fan in add-on kontrolearre troch de oanfaller, gegevens út oare tafoegings ekstrahearje kinne. As foarbyld litte wy sjen hoe't jo troch it ynstallearjen fan in kweade add-on fertroulike ynformaasje kinne ekstrahearje fan 'e LastPass wachtwurdbehearder.

Undersikers hawwe in prototype publisearre fan in eksploitaasje dy't wurket yn Chrome 89 op systemen mei in CPUIntel i7-6700K en i7-7600U. By it meitsjen fan de eksploitaasje waarden prototypen fan JavaScript-koade earder publisearre troch Google brûkt om Specter-klasse oanfallen út te fieren. It wurdt opmurken dat de ûndersikers wienen by steat om te tarieden wurk exploits foar systemen basearre op Intel en Apple M1 processors, dy't meitsje it mooglik om te organisearjen ûnthâld lêzen mei in snelheid fan 500 bytes per sekonde en in krektens fan 96%. Der wurdt fan útgien dat de metoade is ek fan tapassing op AMD Prozessoren, mar it wie net mooglik om te rieden in folslein funksjoneel eksploitaasje.

De oanfal is fan tapassing op alle browsers basearre op de Chromium-motor, ynklusyf Google Chrome, Microsoft Edge en Brave. De ûndersikers leauwe ek dat de metoade oanpast wurde kin om te wurkjen mei Firefox, mar om't de Firefox-motor hiel oars is fan Chrome, bliuwt it wurk oan it meitsjen fan sa'n eksploitaasje foar de takomst oer.

Om te beskermjen tsjin browser-basearre oanfallen yn ferbân mei spekulative útfiering fan ynstruksjes, implementeart Chrome segmintaasje fan adresromte - sandbox-isolaasje lit JavaSkript allinich wurkje mei 32-bit pointers en dielt it ûnthâld fan handlers yn ûnsjogge 4GB-heapen. Om tagong te jaan ta de folsleine prosesadresromte en om de 32-bit beheining te omgean, brûkten de ûndersikers in technyk neamd Type Confusion, dy't de JavaScript-motor twingt om in objekt te ferwurkjen mei in ferkeard type, wat it mooglik makket om in 64-bit te foarmjen. oanwizer basearre op in kombinaasje fan twa 32-bit wearden.

De essinsje fan 'e oanfal is dat by it ferwurkjen fan in spesjaal ûntwurpen kwea-aardich objekt yn' e JavaScript-motor, betingsten wurde makke dy't liede ta spekulative útfiering fan ynstruksjes dy't tagong krije ta de array. It objekt wurdt selektearre op sa'n wize dat de oanfaller-kontrolearre fjilden wurde pleatst yn it gebiet dêr't de 64-bit pointer wurdt brûkt. Om't it type fan it kweade objekt net oerienkomt mei it type fan 'e array dat wurdt ferwurke, wurde sokke aksjes ûnder normale omstannichheden yn Chrome blokkearre troch in meganisme foar deoptimalisearjen fan de koade dy't brûkt wurdt om tagong te krijen ta arrays. Om dit probleem op te lossen, wurdt de koade foar de Type Confusion oanfal pleatst yn in betingst "as" blok, dat net aktivearre wurdt ûnder normale omstannichheden, mar wurdt útfierd yn spekulative modus, as de prosessor ferkeard foarsizze fierdere branching.

As gefolch, de prosessor spekulatyf tagong ta de oanmakke 64-bit oanwizer en rôlet werom de steat nei it fêststellen fan in mislearre foarsizzing, mar spoaren fan de útfiering bliuwe yn 'e dielde cache en kinne wurde werombrocht mei help fan side-kanaal cache detection metoaden dy't analysearje feroarings yn tagongstiden ta cache en net-cached gegevens. Om de ynhâld fan 'e cache te analysearjen yn betingsten fan ûnfoldwaande krektens fan' e timer beskikber yn JavaSkript, wurdt in metoade foarsteld troch Google brûkt, dy't de Tree-PLRU-cache-eviction-strategy ferrifelet dy't brûkt wurdt yn processors en lit, troch it fergrutsjen fan it oantal syklusen, om fergrutsje it ferskil yn tiid signifikant as in wearde oanwêzich en ôfwêzich is yn 'e cache. .

Boarne: opennet.ru

Add a comment