Bagong pag-atake sa mga istrukturang microarchitectural ng mga processor ng Intel at AMD

Isang pangkat ng mga mananaliksik mula sa Unibersidad ng Virginia at Unibersidad ng California ang nagpakita ng bagong uri ng pag-atake sa mga istrukturang microarchitectural ng mga processor ng Intel at AMD, na natukoy sa panahon ng reverse engineering ng mga hindi dokumentadong kakayahan ng CPU. Ang iminungkahing paraan ng pag-atake ay nagsasangkot ng paggamit ng isang intermediate micro-op cache sa mga processor, na maaaring magamit upang makuha ang impormasyong naipon sa panahon ng haka-haka na pagpapatupad ng mga tagubilin.

Para sa mga layunin ng pag-optimize, ang processor ay magsisimulang magsagawa ng ilang mga tagubilin sa speculative mode, nang hindi naghihintay na makumpleto ang mga nakaraang kalkulasyon, at kung pagkatapos ay matukoy nito na ang hula ay hindi makatwiran, ito ay ibabalik ang operasyon sa orihinal nitong estado, ngunit ang data na naproseso habang ang speculative execution ay idineposito sa isang cache, ang mga nilalaman nito ay maaaring matukoy.

Napansin na ang bagong paraan ay higit na nahihigitan ang pagganap sa pag-atake ng Spectre v1, ginagawang mahirap matukoy ang pag-atake at hindi na-block ng mga umiiral na paraan ng proteksyon laban sa mga pag-atake sa side-channel na idinisenyo upang harangan ang mga kahinaan na dulot ng haka-haka na pagpapatupad ng mga tagubilin (halimbawa, ang paggamit Ang mga bloke ng pagtuturo ng LFENCE ay tumutulo sa mga huling yugto ng haka-haka na pagpapatupad, ngunit hindi nagpoprotekta laban sa pagtagas sa pamamagitan ng mga istrukturang microarchitectural).

Ang pamamaraan ay nakakaapekto sa mga modelo ng processor ng Intel at AMD na inilabas mula noong 2011, kabilang ang serye ng Intel Skylake at AMD Zen. Hinahati ng mga modernong CPU ang mga kumplikadong tagubilin ng processor sa mas simpleng RISC-like micro-operations, na naka-cache sa isang hiwalay na cache. Ang cache na ito ay sa panimula ay naiiba sa mas mataas na antas ng mga cache, ay hindi direktang naa-access at gumaganap bilang isang stream buffer para sa mabilis na pag-access sa mga resulta ng pag-decode ng mga tagubilin ng CISC sa RISC microinstructions. Gayunpaman, nakahanap ang mga mananaliksik ng isang paraan upang lumikha ng mga kundisyon na lumitaw kapag sumasalungat ang pag-access sa cache at pinapayagan ang isa na hatulan ang mga nilalaman ng micro-operation cache sa pamamagitan ng pagsusuri ng mga pagkakaiba sa oras ng pagpapatupad ng ilang mga aksyon.

Bagong pag-atake sa mga istrukturang microarchitectural ng mga processor ng Intel at AMD

Ang cache ng micro-operation sa mga processor ng Intel ay naka-segment na may kaugnayan sa mga thread ng CPU (Hyper-Threading), habang ang mga processor ng AMD Zen ay gumagamit ng shared cache, na lumilikha ng mga kondisyon para sa pagtagas ng data hindi lamang sa loob ng isang execution thread, kundi pati na rin sa pagitan ng iba't ibang mga thread sa SMT (posibleng pagtagas ng data sa pagitan ng code na tumatakbo sa iba't ibang lohikal na mga core ng CPU).

Ang mga mananaliksik ay nagmungkahi ng isang pangunahing paraan para sa pag-detect ng mga pagbabago sa micro-operation cache at ilang mga scenario ng pag-atake na nagbibigay-daan sa paglikha ng mga nakatagong channel ng paghahatid ng data at paggamit ng vulnerableng code upang mag-leak ng kumpidensyal na data, parehong sa loob ng iisang proseso (halimbawa, upang i-leak ang proseso ng data kapag nag-execute third-party code sa mga engine na may JIT at sa mga virtual machine), at sa pagitan ng kernel at mga proseso sa espasyo ng user.

Kapag nag-organisa ng isang variant ng pag-atake ng Spectre gamit ang isang micro-operation cache, nagawa ng mga mananaliksik na makamit ang pagganap na 965.59 Kbps na may error rate na 0.22% at 785.56 Kbps kapag gumagamit ng error correction, sa kaso ng pag-aayos ng isang leak sa loob ng parehong address espasyo at antas ng pribilehiyo. Sa isang pagtagas na sumasaklaw sa iba't ibang antas ng pribilehiyo (sa pagitan ng kernel at userspace), ang pagganap ay 85.2 Kbps na may idinagdag na pagwawasto ng error at 110.96 Kbps na may rate ng error na 4%. Kapag umaatake sa mga processor ng AMD Zen, na lumilikha ng pagtagas sa pagitan ng iba't ibang lohikal na mga core ng CPU, ang pagganap ay 250 Kbps na may error rate na 5.59% at 168.58 Kbps na may error correction. Kung ikukumpara sa klasikong paraan ng Spectre v1, ang bagong pag-atake ay 2.6 beses na mas mabilis.

Inaasahan na ang pagprotekta laban sa pag-atake ng micro-op cache ay mangangailangan ng mga pagbabago na magpapababa ng pagganap nang higit pa kaysa kung pinagana mo ang proteksyon ng pag-atake ng Spectre. Bilang pinakamainam na kompromiso, iminungkahi na harangan ang mga naturang pag-atake hindi sa pamamagitan ng hindi pagpapagana ng pag-cache, ngunit sa antas ng pagsubaybay sa mga anomalya at pagtukoy ng mga estado ng cache na karaniwan para sa mga pag-atake.

Tulad ng mga pag-atake ng Spectre, ang pag-aayos ng isang pagtagas mula sa kernel o iba pang mga proseso ay nangangailangan ng pagpapatupad ng isang tiyak na pagkakasunud-sunod ng mga utos (mga gadget) sa gilid ng mga proseso ng biktima, na humahantong sa speculative execution ng mga tagubilin. Humigit-kumulang 100 katulad na mga gadget ang natagpuan sa Linux kernel, na aalisin, ngunit ang mga workaround para sa kanilang henerasyon ay pana-panahong matatagpuan, halimbawa, na may kaugnayan sa pagpapatakbo ng mga espesyal na idinisenyong BPF program sa kernel.

Pinagmulan: opennet.ru

Magdagdag ng komento