Spook.js, isang bagong pamamaraan upang pagsamantalahan ang mga kahinaan ng Spectre sa Chrome

Isang pangkat ng mga mananaliksik mula sa American, Australian at Israeli unibersidad iniulat ito inilarawan ang isang bagong diskarte sa pag-atake na nagpapahintulot sa pagsamantalahan ang mga kahinaan Klase ng multo sa mga browser na pinagagana ng Chromium.

Ang pag-atake, codenamed Ang Spook.js, pinapayagan kapag isinasagawa ang JavaScript code na lampas sa mekanismo ng paghihiwalay ng site at pagbabasa ng nilalaman ng buong puwang ng address ng kasalukuyang proseso, iyon ay, pag-access sa data ng mga pahina na naisagawa sa iba pang mga tab, ngunit naproseso sa parehong proseso.

Dahil inilulunsad ng Chrome ang iba't ibang mga site sa iba't ibang mga proseso, ang mga praktikal na pag-atake ay limitado sa mga serbisyo na nagbibigay-daan sa iba't ibang mga gumagamit na mag-host ng kanilang mga pahina. Ginagawang posible ng pamamaraang pag-atake ng Spook.js mula sa isang pahina kung saan maaaring i-embed ng isang umaatake ang kanyang JavaScript code, tukuyin ang pagkakaroon ng iba pang mga pahina na binuksan ng gumagamit ng parehong site at kumuha ng kumpidensyal na impormasyon sa kanila, halimbawa, mga kredensyal o detalye ng bangko na pinalitan ng autocomplete system sa mga web form.

Ang isa pang aplikasyon ng pamamaraan ay isang pag-atake sa mga plugin ng browser, na nagbibigay-daan, kapag na-install ang isang plug-in na kinokontrol ng mang-atake, upang kumuha ng data mula sa iba pang mga plug-in.

Nalalapat ang Spook.js sa anumang browser batay sa Chromium engine, kabilang ang Google Chrome, Microsoft Edge, at Brave. Naniniwala din ang mga mananaliksik na ang pamamaraan ay maaaring iakma upang gumana sa Firefox, ngunit dahil ang Firefox engine ay ibang-iba sa Chrome, ang gawain ng paglikha ng nasabing pagsasamantala ay naiwan sa hinaharap.

Upang maprotektahan laban sa mga pag-atake na nauugnay sa haka-haka na pagpapatupad ng mga tagubilin sa pamamagitan ng browser, ipinapatupad ang paghihiwalay ng puwang ng address sa Chrome: pinapayagan ang paghihiwalay ng sandbox na gumana lamang ang JavaScript sa mga 32-bit pointer at ibinabahagi ang memorya ng controller sa mga di-overlap na 4GB stack.

Upang maisaayos ang pag-access sa buong address space ng proseso at maiwasan ang 32-bit na limitasyon, ginamit ng mga mananaliksik ang diskarteng uri ng pagkalito, na nagpapahintulot sa engine ng JavaScript na iproseso ang isang bagay na may maling uri, na ginagawang posible na bumuo ng isang 64-bit code batay sa isang kumbinasyon ng dalawang mga halagang 32-bit.

Ang kakanyahan ng pag-atake ay sa pamamagitan ng pagproseso ng isang espesyal na ginawa na nakakahamak na bagay sa JavaScript engine, nilikha ang mga kundisyon na humahantong sa haka-haka na pagpapatupad ng mga tagubilin na ma-access ang array. Ang bagay ay pinili sa isang paraan na ang mga patlang na kinokontrol ng mga umaatake ay inilalagay sa lugar kung saan ginagamit ang 64-bit pointer.

Dahil ang uri ng nakakahamak na bagay ay hindi tumutugma sa uri ng pag-proseso ng array, sa ilalim ng normal na mga kundisyon ang mga naturang pagkilos ay hinarangan sa Chrome ng mekanismo ng deoptimization ng code na ginamit upang ma-access ang mga array. Upang malutas ang problemang ito, ang code ng pag-atake ng Type Confusion ay inilalagay sa isang "kung" kondisyon na bloke, na hindi apoy sa ilalim ng normal na mga kundisyon, ngunit tumatakbo sa speculative mode, kung hindi wastong hinuhulaan ng processor ang higit pang mga sangay.

Bilang isang resulta, tiyak na na-access ng processor ang nabuong 64-bit pointer at binabago ang estado pagkatapos matukoy ang nabigo na hula, ngunit ang mga bakas ng pagpapatupad ay nakatakda sa nakabahaging cache at maaaring maibalik gamit ang mga pamamaraan upang matukoy ang mga nilalaman ng cache sa pamamagitan ng pangatlo. mga channel ng partido, pinag-aaralan ang pagbabago sa oras ng pag-access sa naka-cache at hindi naka-cache na data.

Upang pag-aralan ang nilalaman ng cache sa mga kundisyon ng hindi sapat na katumpakan ng timer na magagamit sa JavaScript, ginagamit ang isang pamamaraan na iminungkahi ng Google na niloloko ang diskarte sa pagpapatalsik ng data ng data ng Tree-PLRU na ginamit sa mga processor at pinapayagan, sa pamamagitan ng pagdaragdag ng mga cycle, makabuluhang taasan ang pagkakaiba ng oras sa pagkakaroon at kawalan ng isang halaga sa cache.

Nagpalabas ang mga mananaliksik ng isang prototype na pagsasamantala na gumagana sa Chrome 89 en mga system na may Intel i7-6700K at i7-7600U. Ang pagsasamantala ay nilikha gamit ang mga prototype ng JavaScript code na dating nai-publish ng Google upang isagawa ang mga pag-atake ng Spectre.

Sa wakas binanggit iyon ng mga mananaliksik pinamamahalaang ihanda ang mga gumaganang pagsasamantala para sa mga system batay sa mga processor ng Intel at Apple M1, na binibigyan ng pagkakataon na ayusin ang memorya na nabasa sa bilis na 500 bytes bawat segundo at isang kawastuhan na 96%. Ang pamamaraan ay dapat na mailalapat sa mga nagpoproseso ng AMD, ngunit hindi posible na maghanda ng isang ganap na magagamit na pagsasamantala.

Fuente: https://www.spookjs.com


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.