Ipinapakita ng Google ang pagsasamantala sa mga kahinaan ng Spectre gamit ang JavaScript sa isang browser

Inilantad ng Google maraming araw na ang nakakalipas iba't ibang mga nagsasamantalang mga prototype na nagpapakita ng posibilidad ng pagsasamantala sa mga kahinaan ng klase ng Spectre kapag nagpapatupad ng JavaScript code sa isang browser, nang hindi dumaan sa mga pamamaraan ng seguridad na idinagdag sa itaas.

Maaaring magamit ang mga eksploit upang ma-access ang memorya ng isang proseso na pinoproseso ang nilalaman ng web sa kasalukuyang tab. Upang subukan ang pagpapatakbo ng pagsasamantala, ang website para sa leaky page ay inilunsad at ang code na naglalarawan sa lohika ng operasyon ay nai-post sa GitHub.

Ang iminungkahing prototype ay idinisenyo upang atake system na may Mga processor ng Intel Core i7-6500U sa isang Linux at Chrome 88 na kapaligiran, bagaman hindi nito ibinubukod na ang mga pagbabago ay maaaring gawin upang magamit ang pagsasamantala sa iba pang mga kapaligiran.

Ang pamamaraan ng pagpapatakbo ay hindi tiyak sa ang mga nagpoproseso Intel: pagkatapos ng wastong pagbagay, Ang pagsasamantala ay nakumpirma na gumana sa mga system na may mga third-party na CPU, kasama ang Apple M1 batay sa arkitekturang ARM. Pagkatapos ng mga menor de edad na pag-aayos, gumagana rin ang pagsasamantala sa iba pang mga operating system at iba pang mga browser batay sa engine ng Chromium.

Sa isang kapaligiran batay sa karaniwang mga processor ng Chrome 88 at Intel Skylake, nakamit namin ang isang pagtagas ng data mula sa proseso na responsable para sa pag-render ng nilalaman ng web sa kasalukuyang tab na Chrome (proseso ng pag-render) sa bilis na 1 kilobyte bawat segundo. Bilang karagdagan, ang mga alternatibong prototype ay binuo, halimbawa, isang pagsasamantala na nagbibigay-daan, sa halagang nabawasan ang katatagan, upang madagdagan ang rate ng tagas sa 8kB / s kapag ginagamit ang pagganap. Ngayon () timer na may katumpakan na 5 microseconds (0.005 milliseconds ). Inihanda rin ang isang pagkakaiba-iba na nagpapatakbo ng isang timer na katumpakan ng isang millisecond, na maaaring magamit upang ayusin ang pag-access sa memorya ng isa pang proseso sa rate na halos 60 bytes bawat segundo.

Ang nai-publish na demo code ay binubuo ng tatlong bahagi:

  • Ang unang bahagi i-calibrate ang timer upang tantyahin ang oras ng pagtakbo ng mga operasyon na kinakailangan upang makuha ang data na nananatili sa cache ng processor bilang isang resulta ng haka-haka na pagpapatupad ng mga tagubilin sa CPU.
  • Ang pangalawang bahagi Tinutukoy ang layout ng memorya na ginamit kapag naglalaan ng JavaScript array.
  • Ang pangatlong bahagi direktang pinagsamantalahan ang kahinaan ng Spectre upang matukoy ang nilalaman ng memorya ng kasalukuyang proseso bilang isang resulta ng paglikha ng mga kundisyon para sa haka-haka na pagpapatupad ng ilang mga operasyon, na ang resulta ay itinapon ng processor matapos matukoy ang isang nabigong pagtataya, ngunit ang mga trace ng pagpapatupad ay naayos sa nakabahaging cache at maaaring maibalik gamit mga pamamaraan upang Tukuyin ang mga nilalaman ng cache gamit ang mga third-party na channel na pinag-aaralan ang pagbabago sa oras ng pag-access sa naka-cache at hindi naka-cache na data.

Ang ipinanukalang diskarteng pagsasamantala inaalis ang mga timer na mataas ang katumpakan magagamit sa pamamagitan ng performance.now () API at walang suporta para sa uri ng SharedArrayBuffer, na nagbibigay-daan sa iyo upang lumikha ng mga array sa nakabahaging memorya.

Kasama sa pagsasamantala ang aparatong Spectre, na nagiging sanhi ng kontroladong pagpapatupad ng haka-haka na code, at isang tagasuri ng tagas ng channel sa gilid, na tumutukoy kung anong data ang na-cache sa panahon ng ispekulatibong pagpapatupad.

Ipinapatupad ang gadget gamit ang isang JavaScript array, kung saan isang pagtatangka ay ginawang i-access ang isang lugar sa labas ng mga limitasyon ng buffer, na nakakaapekto sa estado ng sangay ng hula ng sangay dahil sa pagkakaroon ng isang tseke ng laki ng buffer na idinagdag ng tagatala (ang processor ay spekulatibong gumagawa ng isang pag-access nang maaga, ngunit binabago ang estado pagkatapos suriin).

Upang pag-aralan ang mga nilalaman ng cache sa ilalim ng mga kundisyon ng hindi sapat na katumpakan ng timer, isang pamamaraan ang iminungkahi na trick ang diskarte sa pagpapatalsik ng data ng data ng Tree-PLRU na ginamit sa mga processor at pinapayagan, sa pamamagitan ng pagtaas ng bilang ng mga cycle, upang makabuluhang taasan ang oras ng pagkakaiba kapag ang halaga ay ibinalik mula sa cache at sa kawalan ng isang halaga sa cache.

Nag-publish ang Google ng isang prototype ng pagsasamantala upang maipakita ang pagiging posible ng mga pag-atake gamit ang kahinaan ng klase ng Spectre at hikayatin ang mga developer ng web na gumamit ng mga diskarte na nagpapaliit ng mga panganib ng naturang pag-atake.

Sa parehong oras, naniniwala ang Google na walang isang makabuluhang rebisyon ng ipinanukalang prototype, imposibleng lumikha ng unibersal na pagsasamantala na handa hindi lamang para sa demonstrasyon, ngunit din para sa malawakang paggamit.

Fuente: https://security.googleblog.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.