Retbleed: Isang Bagong Speculative Execution Attack na Tumatama sa Intel at AMD

Kamakailan ay sinira iyon ng balitae isang pangkat ng mga mananaliksik mula sa ETH Zurich ay nakilala ang isang bagong pag-atake sa speculative execution mechanism ng indirect jumps sa CPU, na nagpapahintulot sa pagkuha ng impormasyon mula sa kernel memory o pag-oorganisa ng pag-atake sa host system mula sa mga virtual machine.

Ang mga kahinaan ay pinangalanang Retbleed (naka-catalog na sa ilalim ng CVE-2022-29900, CVE-2022-29901) at ay katulad sa likas na katangian sa mga pag-atake ng Spectre-v2.

Ang pagkakaiba ay nagmumula sa pag-aayos ng speculative execution ng arbitrary code sa pamamagitan ng pagproseso ng "ret" (return) instruction, na kinukuha ang address para tumalon mula sa stack, sa halip na hindi direktang tumalon gamit ang "jmp" instruction, nilo-load ang address mula sa memorya o isang rehistro ng CPU.

Tungkol sa bagong pag-atake ay nabanggit na ang isang attacker ay maaaring lumikha ng mga kundisyon para sa isang fork prediction hindi tama at ayusin ang isang intensyonal na speculative jump sa isang bloke ng code na hindi nilayon ng execution logic ng program.

Sa huli, matutukoy ng processor na ang hula ng sangay ay hindi makatwiran at ibabalik ang operasyon sa orihinal nitong estado, ngunit ang naprosesong data Sa panahon ng haka-haka na pagpapatupad uupo sila sa cache at microarchitectural buffer. Kung ang isang maling naisakatuparan na bloke ay nagsasagawa ng pag-access sa memorya, kung gayon ang speculative execution nito ay hahantong sa pag-install sa pangkalahatang cache at ang pagbabasa ng data mula sa memorya.

Upang matukoy ang data na natitira sa cache pagkatapos ng haka-haka na pagpapatupad ng mga operasyon, ang umaatake ay maaaring gumamit ng mga pamamaraan upang matukoy ang natitirang data sa pamamagitan ng mga third-party na channel, halimbawa, pagsusuri ng mga pagbabago sa naka-cache na oras ng pag-access ng data at hindi naka-cache.

Para sa intensyonal na pagkuha ng impormasyon mula sa mga lugar sa ibang antas ng pribilehiyo (halimbawa, mula sa memorya ng kernel), ginagamit ang "mga device": mga script na nasa kernel, na angkop para sa speculative na pagbabasa ng data mula sa memorya, depende sa mga panlabas na kondisyon na maaari itong maimpluwensyahan ng isang umaatake.

Upang maprotektahan laban sa mga klasikong pag-atake ng klase ng Spectre, na gumagamit ng hindi direkta at may kondisyong mga tagubilin sa sangay, karamihan sa mga operating system ay gumagamit ng "retpoline" na pamamaraan, na batay sa pagpapalit ng mga hindi direktang operasyon ng sangay ng "ret" na pagtuturo, kung saan ang isang hiwalay na stack state prediction ay kinakailangan ang unit ay ginagamit sa mga processor, hindi gumagamit ng block ng hula sa sangay.

Sa pagpapakilala ng retpoline noong 2018, pinaniniwalaan na hindi praktikal ang pagmamanipula sa address na tulad ng Spectre para sa speculative forking na may "ret" na pagtuturo.

Ang mga mananaliksik na bumuo ng paraan ng pag-atake Ipinakita ni Retbleed ang posibilidad na lumikha ng mga kondisyon ng microarchitectural upang simulan ang isang speculative transition gamit ang "ret" na pagtuturo at naglabas ng isang handa na toolkit upang matukoy ang angkop na mga sequence ng pagtuturo (gadgets) upang samantalahin ang kahinaan sa Linux kernel kung saan lumalabas ang mga ganitong kondisyon.

Sa kabuuan ng pag-aaral, isang working exploit ang inihanda na nagbibigay-daan, sa mga system na may mga Intel CPU, mula sa isang unprivileged na proseso sa user space na kumuha ng arbitrary na data mula sa kernel memory sa bilis na 219 bytes bawat segundo at may 98% na katumpakan.

En ang mga nagpoproseso AMD, ang kahusayan ng pagsasamantala ay mas mataas, dahil ang leak rate ay 3,9 KB bawat segundo. Bilang isang praktikal na halimbawa, ipinapakita kung paano gamitin ang iminungkahing pagsasamantala upang matukoy ang mga nilalaman ng /etc/shadow file. Sa mga system na may mga Intel CPU, isang pag-atake upang matukoy ang root password hash ay isinagawa sa loob ng 28 minuto, at sa mga system na may mga AMD CPU, sa loob ng 6 na minuto.

Ang pag-atake ay nakumpirma para sa 6-8 na henerasyon ng mga processor ng Intel na inilabas bago ang Q2019 1 (kabilang ang Skylake), at mga processor ng AMD batay sa Zen 1, Zen 2+, at Zen 2021 microarchitecture na inilabas bago ang QXNUMX XNUMX. Sa mga mas bagong modelo ng processor, tulad ng AMD Zen3 at Intel Alder Lake, pati na rin ang mga ARM processor, ang problema ay hinarangan ng mga umiiral na mekanismo ng proteksyon. Halimbawa, ang paggamit ng mga tagubilin ng IBRS (Indirect Branch Restricted Speculation) ay nakakatulong na maprotektahan laban sa isang pag-atake.

Naghanda ng isang hanay ng mga pagbabago para sa Linux kernel at Xen hypervisor, na humaharang sa problema sa programmatically sa mas lumang mga CPU. Ang iminungkahing Linux kernel patch ay nagbabago ng 68 file, nagdagdag ng 1783 na linya, at nag-aalis ng 387 na linya.

Sa kasamaang palad, ang proteksyon ay nagkakaroon ng malalaking gastos sa overhead: sa mga text na ginawa sa AMD at Intel processors, ang pagkasira ng pagganap ay tinatantya sa pagitan ng 14% at 39%. Mas mainam na gumamit ng proteksyon batay sa mga tagubilin ng IBRS, na magagamit sa mga mas bagong henerasyon ng mga Intel CPU at suportado mula noong Linux kernel 4.19.

Panghuli, kung interesado kang malaman ang tungkol dito, maaari kang kumunsulta sa mga detalye sa sumusunod na link.


Iwanan ang iyong puna

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

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  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.