Mae Google yn dangos ecsbloetio gwendidau Specter trwy weithredu JavaScript yn y porwr

Mae Google wedi cyhoeddi sawl prototeip ecsbloetio sy'n dangos y posibilrwydd o fanteisio ar wendidau dosbarth Specter wrth weithredu cod JavaScript yn y porwr, gan osgoi dulliau amddiffyn a ychwanegwyd yn flaenorol. Gellir defnyddio ymelwadau i gael mynediad i gof y broses prosesu cynnwys gwe yn y tab cyfredol. I brofi gweithrediad y camfanteisio, lansiwyd y wefan leaky.page, a chafodd y cod sy'n disgrifio rhesymeg y gwaith ei bostio ar GitHub.

Mae'r prototeip arfaethedig wedi'i gynllunio i ymosod ar systemau gyda phroseswyr Intel Core i7-6500U mewn amgylchedd gyda Linux a Chrome 88. Er mwyn defnyddio'r ecsbloetio ar gyfer amgylcheddau eraill, mae angen addasiadau. Nid yw'r dull ecsbloetio yn benodol i broseswyr Intel - ar ôl addasu'n briodol, cadarnhawyd bod y camfanteisio yn gweithio ar systemau gyda CPUs gan weithgynhyrchwyr eraill, gan gynnwys yr Apple M1 yn seiliedig ar bensaernïaeth ARM. Ar ôl mân addasiadau, mae'r camfanteisio hefyd yn ymarferol mewn systemau gweithredu eraill ac mewn porwyr eraill yn seiliedig ar yr injan Chromium.

Mewn amgylchedd sy'n seiliedig ar broseswyr safonol Chrome 88 ac Intel Skylake, roedd yn bosibl gollwng data o'r broses sy'n gyfrifol am brosesu cynnwys gwe yn y tab Chrome cyfredol (proses rendr) ar gyflymder o 1 kilobyte yr eiliad. Yn ogystal, mae prototeipiau amgen wedi'u datblygu, er enghraifft, camfanteisio sy'n caniatáu, ar gost lleihau sefydlogrwydd, i gynyddu'r gyfradd gollwng i 8kB/s wrth ddefnyddio'r amserydd performance.now() gyda chywirdeb o 5 microsecond (0.005 milieiliad ). Paratowyd fersiwn hefyd a oedd yn gweithio gyda chywirdeb amserydd o un milieiliad, y gellid ei ddefnyddio i drefnu mynediad i gof proses arall ar gyflymder o tua 60 beit yr eiliad.

Mae'r cod demo cyhoeddedig yn cynnwys tair rhan. Mae'r rhan gyntaf yn graddnodi'r amserydd i amcangyfrif amser gweithredu'r gweithrediadau sydd eu hangen i adfer data sy'n weddill yn storfa'r prosesydd o ganlyniad i weithredu cyfarwyddiadau CPU ar hap. Mae'r ail ran yn pennu'r cynllun cof a ddefnyddir wrth ddyrannu'r arae JavaScript.

Mae'r drydedd ran yn manteisio'n uniongyrchol ar fregusrwydd Specter i bennu cynnwys cof y broses gyfredol o ganlyniad i greu amodau ar gyfer cyflawni rhai gweithrediadau ar hap, y mae'r canlyniad yn cael ei daflu gan y prosesydd ar ôl pennu rhagfynegiad aflwyddiannus, ond mae olion y cyflawni yn cael eu hadneuo yn y storfa gyffredinol a gellir eu hadfer gan ddefnyddio dulliau ar gyfer pennu cynnwys y storfa gan sianeli trydydd parti sy'n dadansoddi newidiadau mewn amser mynediad i ddata cached a heb eu storio.

Mae'r dechneg ecsbloetio arfaethedig yn ei gwneud hi'n bosibl gwneud heb amseryddion manwl uchel sydd ar gael trwy'r API performance.now (), a heb gefnogaeth i'r math SharedArrayBuffer, sy'n caniatáu creu araeau mewn cof a rennir. Mae'r camfanteisio yn cynnwys y teclyn Specter, sy'n achosi gweithrediad hapfasnachol o god, a dadansoddwr gollyngiadau sianel ochr, sy'n canfod data wedi'i storio a gafwyd yn ystod gweithredu hapfasnachol.

Mae'r teclyn yn cael ei weithredu gan ddefnyddio arae JavaScript lle gwneir ymgais i gael mynediad i ardal y tu allan i'r ffiniau byffer, gan effeithio ar gyflwr y bloc rhagfynegi cangen oherwydd presenoldeb gwiriad maint byffer a ychwanegir gan y casglwr (mae'r prosesydd yn perfformio'r hapfasnachwr mynediad o flaen amser, ond yn treiglo'n ôl y cyflwr ar ôl gwirio). Er mwyn dadansoddi cynnwys y storfa o dan amodau cywirdeb amserydd annigonol, cynigiwyd dull sy'n twyllo'r strategaeth troi allan cache Tree-PLRU a ddefnyddir mewn proseswyr ac sy'n caniatáu, trwy gynyddu nifer y cylchoedd, gynyddu'n sylweddol y gwahaniaeth mewn amser wrth ddychwelyd. gwerth o'r storfa a phan nad oes gwerth yn y celc.

Nodir bod Google wedi cyhoeddi prototeip o'r camfanteisio er mwyn dangos dichonoldeb ymosodiadau gan ddefnyddio gwendidau dosbarth Specter ac i annog datblygwyr gwe i ddefnyddio technegau sy'n lleihau'r risgiau o ymosodiadau o'r fath. Ar yr un pryd, mae Google yn credu, heb ail-weithio'r prototeip arfaethedig yn sylweddol, ei bod yn amhosibl creu campau cyffredinol sy'n barod nid yn unig i'w harddangos, ond hefyd i'w defnyddio'n eang.

Er mwyn lleihau'r risg, anogir perchnogion safleoedd i ddefnyddio'r penawdau a weithredwyd yn ddiweddar Polisi Agorwr Traws-Origin (COOP), Polisi Plannwr Traws-darddiad (COEP), Polisi Adnoddau Traws-darddiad (CORP), Cais Metadata Fetch, X-Frame- Opsiynau, X -Content-Type-Options a SameSite Cookie. Nid yw'r mecanweithiau hyn yn amddiffyn yn uniongyrchol rhag ymosodiadau, ond maent yn caniatáu ichi ynysu data safle rhag gollyngiadau i brosesau lle gellir gweithredu cod JavaScript yr ymosodwr (mae'r gollyngiad yn digwydd o gof y broses gyfredol, sydd, yn ychwanegol at god yr ymosodwr , hefyd yn gallu prosesu data o wefan arall a agorwyd yn yr un tab). Y prif syniad yw gwahanu gweithrediad cod y wefan mewn gwahanol brosesau oddi wrth god trydydd parti a dderbyniwyd o ffynonellau annibynadwy, er enghraifft, wedi'i gynnwys trwy iframe.



Ffynhonnell: opennet.ru

Ychwanegu sylw