Ang kahinaan sa mga processor ng Intel na humahantong sa pagtagas ng data sa pamamagitan ng mga third-party na channel

Natukoy ng isang pangkat ng mga mananaliksik mula sa mga unibersidad ng Tsino at Amerika ang isang bagong kahinaan sa mga processor ng Intel na humahantong sa pagtagas ng impormasyon ng third-party tungkol sa resulta ng mga haka-haka na operasyon, na maaaring magamit, halimbawa, upang ayusin ang isang nakatagong channel ng komunikasyon sa pagitan ng mga proseso o tukuyin ang mga pagtagas sa panahon ng pag-atake ng Meltdown.

Ang kakanyahan ng kahinaan ay ang pagbabago sa rehistro ng processor ng EFLAGS na nangyayari bilang resulta ng haka-haka na pagpapatupad ng mga tagubilin ay nakakaapekto sa kasunod na oras ng pagpapatupad ng mga tagubilin ng JCC (tumalon kapag natugunan ang mga tinukoy na kundisyon). Ang mga haka-haka na operasyon ay hindi kumpleto at ang resulta ay itinapon, ngunit ang itinapon na pagbabago sa EFLAGS ay maaaring matukoy sa pamamagitan ng pagsusuri sa oras ng pagpapatupad ng mga tagubilin ng JCC. Ang mga operasyon sa paghahambing na ginawa sa speculative mode bago ang paglipat, kung matagumpay, ay magreresulta sa isang maliit na pagkaantala na maaaring masukat at magamit bilang isang tanda para sa pagpili ng nilalaman.

Ang kahinaan sa mga processor ng Intel na humahantong sa pagtagas ng data sa pamamagitan ng mga third-party na channel

Hindi tulad ng iba pang katulad na pag-atake sa side-channel, hindi sinusuri ng bagong paraan ang mga pagbabago sa oras ng pag-access sa naka-cache at hindi naka-cache na data at hindi nangangailangan ng yugto upang i-reset ang rehistro ng EFLAGS sa paunang estado nito, na nagpapahirap sa pagtukoy at pagharang sa pag-atake. Bilang isang demonstrasyon, ipinatupad ng mga mananaliksik ang isang variant ng Meltdown attack, gamit ang isang bagong paraan upang makakuha ng impormasyon tungkol sa resulta ng isang speculative operation. Ang operasyon ng pamamaraan para sa pag-aayos ng pagtagas ng impormasyon sa panahon ng pag-atake ng Meltdown ay matagumpay na ipinakita sa mga system na may Intel Core i7-6700 at i7-7700 na CPU sa isang kapaligiran na may Ubuntu 22.04 at ang Linux kernel 5.15. Sa isang system na may Intel i9-10980XE CPU, ang pag-atake ay bahagyang naisagawa lamang.

Ang 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 opsyon sa sangay ay isinasagawa sa haka-haka.

Sa klasikong bersyon ng Meltdown, dahil ang parehong cache ay ginagamit para sa speculatively executed operations tulad ng para sa normal na executed instructions, posible sa panahon ng speculative execution na magtakda ng mga marker sa cache na sumasalamin sa mga content ng indibidwal na bits sa closed memory area, at pagkatapos tukuyin sa karaniwang nai-execute na code ang kanilang kahulugan sa pamamagitan ng pagsusuri sa oras ng pag-access sa naka-cache at hindi naka-cache na data. Gumagamit ang bagong variant ng pagbabago sa rehistro ng EFLAGS bilang isang leak marker. Sa pagpapakita ng tagong channel, isang proseso ang nagmodulate sa data na ipinadala upang lumikha ng mga kundisyon para sa pagbabago ng mga nilalaman ng rehistro ng EFLAGS, at isa pang proseso ang nagsuri sa pagbabago sa oras ng pagpapatupad ng pagtuturo ng JCC upang muling likhain ang data na ipinadala ng unang proseso.

Pinagmulan: opennet.ru

Magdagdag ng komento