Google juri l-isfruttament tal-vulnerabbiltajiet Spectre billi tesegwixxi JavaScript fil-browser

Google ppubblikat diversi prototipi ta' sfruttament li juru l-possibbiltà li jiġu sfruttati l-vulnerabbiltajiet tal-klassi Spectre meta tesegwixxi kodiċi JavaScript fil-browser, billi tevita metodi ta 'protezzjoni miżjuda qabel. L-isfruttamenti jistgħu jintużaw biex jiksbu aċċess għall-memorja tal-proċess tal-ipproċessar tal-kontenut tal-web fit-tab kurrenti. Biex tiġi ttestjata l-operat tal-isfruttament, tnediet il-websajt leaky.page, u l-kodiċi li jiddeskrivi l-loġika tax-xogħol tpoġġa fuq GitHub.

Il-prototip propost huwa ddisinjat biex jattakka sistemi bi proċessuri Intel Core i7-6500U f'ambjent b'Linux u Chrome 88. Biex tuża l-isfruttament għal ambjenti oħra, huma meħtieġa modifiki. Il-metodu ta 'sfruttament mhuwiex speċifiku għall-proċessuri Intel - wara adattament xieraq, l-isfruttament ġie kkonfermat li jaħdem fuq sistemi b'CPUs minn manifatturi oħra, inkluż l-Apple M1 ibbażat fuq arkitettura ARM. Wara aġġustamenti minuri, l-isfruttament jista' jaħdem ukoll f'sistemi operattivi oħra u f'browsers oħra bbażati fuq il-magna Chromium.

F'ambjent ibbażat fuq proċessuri standard Chrome 88 u Intel Skylake, kien possibbli li titnixxi d-dejta mill-proċess responsabbli għall-ipproċessar tal-kontenut tal-web fit-tab attwali tal-Chrome (proċess ta 'renderer) b'veloċità ta' kilobyte kull sekonda. Barra minn hekk, ġew żviluppati prototipi alternattivi, pereżempju, sfruttament li jippermetti, għall-ispiża tat-tnaqqis tal-istabbiltà, li tiżdied ir-rata tat-tnixxija għal 1kB/s meta tuża t-tajmer performance.now() bi preċiżjoni ta’ 8 mikrosekondi (5 millisekondi). ). Ġiet ippreparata wkoll verżjoni li ħadmet b'eżattezza ta 'timer ta' millisekonda, li tista 'tintuża biex torganizza l-aċċess għall-memorja ta' proċess ieħor b'veloċità ta 'madwar 0.005 bytes kull sekonda.

Il-kodiċi demo ppubblikat jikkonsisti fi tliet partijiet. L-ewwel parti tikkalibra t-tajmer biex tistma l-ħin tal-eżekuzzjoni tal-operazzjonijiet meħtieġa biex tiġi restawrata d-dejta li tibqa 'fil-cache tal-proċessur bħala riżultat tal-eżekuzzjoni spekulattiva tal-istruzzjonijiet tas-CPU. It-tieni parti tiddetermina t-tqassim tal-memorja użat meta tiġi allokata l-array JavaScript.

It-tielet parti tisfrutta direttament il-vulnerabbiltà Spectre biex tiddetermina l-kontenut tal-memorja tal-proċess attwali bħala riżultat tal-ħolqien ta 'kundizzjonijiet għall-eżekuzzjoni spekulattiva ta' ċerti operazzjonijiet, li r-riżultat tagħhom jintrema mill-proċessur wara li jiddetermina tbassir bla suċċess, iżda traċċi tal- eżekuzzjoni huma depożitati fil-cache ġenerali u jistgħu jiġu rrestawrati bl-użu ta 'metodi għad-determinazzjoni tal-kontenut tal-cache minn kanali ta' partijiet terzi li janalizzaw bidliet fil-ħin ta 'aċċess għal data cached u mhux cache.

It-teknika ta 'sfruttament proposta tagħmilha possibbli li wieħed jgħaddi mingħajr tajmers ta' preċiżjoni għolja disponibbli permezz tal-API performance.now(), u mingħajr appoġġ għat-tip SharedArrayBuffer, li jippermetti l-ħolqien ta 'arrays f'memorja kondiviża. L-isfruttament jinkludi l-gadget Spectre, li jikkawża eżekuzzjoni spekulattiva kkontrollata tal-kodiċi, u analizzatur ta 'tnixxija tal-kanal laterali, li jiskopri data fil-cache miksuba waqt eżekuzzjoni spekulattiva.

Il-gadget huwa implimentat bl-użu ta 'array JavaScript li fih isir tentattiv biex taċċessa żona barra mill-konfini tal-buffer, li taffettwa l-istat tal-blokk ta' tbassir tal-fergħa minħabba l-preżenza ta 'kontroll tad-daqs tal-buffer miżjud mill-kompilatur (il-proċessur, tħares 'il quddiem, spekulattivament twettaq l-aċċess, iżda rolls lura l-istat wara l-iċċekkjar). Biex tanalizza l-kontenut tal-cache taħt kundizzjonijiet ta’ preċiżjoni insuffiċjenti tal-timer, ġie propost metodu li jqarraq bl-istrateġija ta’ żgumbrament tal-cache Tree-PLRU użata fil-proċessuri u jippermetti, billi jiżdied in-numru ta’ ċikli, li tiżdied b’mod sinifikanti d-differenza fil-ħin meta tirritorna. valur mill-cache u meta ma jkunx hemm valur fil-cache.

Huwa nnutat li Google ppubblikat prototip tal-isfruttament sabiex turi l-fattibilità ta 'attakki li jużaw vulnerabbiltajiet tal-klassi Spectre u biex jinkoraġġixxu lill-iżviluppaturi tal-web biex jużaw tekniki li jimminimizzaw ir-riskji minn attakki bħal dawn. Fl-istess ħin, Google jemmen li mingħajr ħidma mill-ġdid sinifikanti tal-prototip propost, huwa impossibbli li jinħolqu sfruttamenti universali li huma lesti mhux biss għal dimostrazzjoni, iżda wkoll għal użu mifrux.

Biex jitnaqqas ir-riskju, is-sidien tas-siti huma mħeġġa jużaw l-intestaturi implimentati reċentement Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- Għażliet, X -Kontenut-Tip-Għażliet u SameSite Cookie. Dawn il-mekkaniżmi ma jipproteġux direttament kontra attakki, iżda jippermettulek tiżola d-dejta tas-sit minn tnixxija fi proċessi li fihom il-kodiċi JavaScript tal-attakkant jista 'jiġi eżegwit (it-tnixxija sseħħ mill-memorja tal-proċess attwali, li, minbarra l-kodiċi tal-attakkant , jistgħu wkoll jipproċessaw data minn sit ieħor miftuħ f'dik l-istess tab). L-idea ewlenija hija li tissepara l-eżekuzzjoni tal-kodiċi tas-sit fi proċessi differenti minn kodiċi ta 'parti terza riċevuta minn sorsi mhux affidabbli, pereżempju, inklużi permezz ta' iframe.



Sors: opennet.ru

Żid kumment