Ang isa pang kahinaan ay natukoy sa mga processor ng AMD na nagpapahintulot sa mga pag-atake ng Meltdown

Ang isang pangkat ng mga mananaliksik mula sa Technical University of Graz (Austria) at ang Helmholtz Center for Information Security (CISPA) ay nagsiwalat ng isang kahinaan (CVE-2021-26318) sa lahat ng mga processor ng AMD na ginagawang posible na isagawa ang Meltdown-class side- pag-atake sa channel (sa una ay ipinapalagay na ang mga processor ng AMD ay hindi apektado ng kahinaan ng Meltdown). Sa praktikal na mga termino, ang pag-atake ay maaaring gamitin upang magtatag ng mga patagong channel ng komunikasyon, subaybayan ang aktibidad sa kernel, o kumuha ng impormasyon tungkol sa mga address sa kernel memory upang i-bypass ang proteksyon ng KASLR habang sinasamantala ang mga kahinaan sa kernel.

Itinuturing ng AMD na hindi nararapat na gumawa ng mga espesyal na hakbang upang harangan ang problema, dahil ang kahinaan, tulad ng isang katulad na pag-atake na natuklasan noong Agosto, ay hindi gaanong nagagamit sa totoong mga kondisyon, ay limitado ng kasalukuyang mga hangganan ng espasyo ng address ng proseso at nangangailangan ng pagkakaroon ng ilang partikular na nakahandang mga pagkakasunod-sunod ng mga tagubilin (gadget) sa kernel. Upang ipakita ang pag-atake, ni-load ng mga mananaliksik ang kanilang sariling kernel module na may artipisyal na idinagdag na gadget. Sa totoong mga kundisyon, maaaring gamitin ng mga umaatake, halimbawa, ang regular na pag-pop up ng mga kahinaan sa subsystem ng eBPF upang palitan ang mga kinakailangang sequence.

Upang maprotektahan laban sa bagong uri ng pag-atake na ito, inirerekomenda ng AMD ang paggamit ng mga secure na diskarte sa coding na tumutulong sa pagharang sa mga pag-atake ng Meltdown, gaya ng paggamit ng mga tagubilin sa LFENCE. Inirerekomenda ng mga mananaliksik na natukoy ang problema na pagpapagana ng mas mahigpit na memory page table isolation (KPTI), na dati ay ginagamit lamang para sa mga processor ng Intel.

Sa panahon ng eksperimento, ang mga mananaliksik ay pinamamahalaang mag-leak ng impormasyon mula sa kernel patungo sa isang proseso sa espasyo ng gumagamit sa bilis na 52 bytes bawat segundo, dahil sa pagkakaroon ng isang gadget sa kernel na nagsasagawa ng operasyon "kung (offset < data_len) tmp = LUT[data[offset] * 4096];” . Ilang paraan ang iminungkahi para sa pagkuha ng impormasyon sa pamamagitan ng mga side channel na napupunta sa cache sa panahon ng speculative execution. Ang unang paraan ay batay sa pagsusuri ng mga paglihis sa oras ng pagpapatupad ng pagtuturo ng processor na "PREFETCH" (Prefetch+Time), at ang pangalawa sa pagbabago ng pagbabago sa pagkonsumo ng enerhiya kapag isinasagawa ang "PREFETCH" (Prefetch+Power).

Alalahanin na ang klasikong kahinaan ng Meltdown ay batay sa katotohanan na sa panahon ng haka-haka na pagpapatupad ng mga tagubilin, maaaring ma-access ng processor ang isang pribadong lugar ng data at pagkatapos ay itapon ang resulta, dahil ipinagbabawal ng mga nakatakdang pribilehiyo ang naturang pag-access mula sa proseso ng user. Sa programa, ang speculatively executed block ay pinaghihiwalay mula sa pangunahing code ng isang conditional branch, na sa totoong mga kondisyon ay palaging nagpapaputok, ngunit dahil sa ang katunayan na ang conditional statement ay gumagamit ng isang kinakalkula na halaga na hindi alam ng processor sa panahon ng preemptive execution ng ang code, ang lahat ng mga pagpipilian sa sangay ay isinasagawa sa haka-haka.

Dahil ang mga speculatively executed operations ay gumagamit ng parehong cache gaya ng normal na executed na mga tagubilin, posible sa panahon ng speculative execution na magtakda ng mga marker sa cache na sumasalamin sa mga content ng indibidwal na bits sa isang private memory area, at pagkatapos ay sa normal na executed code upang matukoy ang kanilang halaga sa pamamagitan ng timing pag-access ng pagsusuri sa naka-cache at hindi naka-cache na data.

Pinagmulan: opennet.ru

Magdagdag ng komento