Ang kahinaan sa speculative execution mechanism ng AMD processors

Ang proyekto ng Grsecurity ay nag-publish ng mga detalye at isang pagpapakita ng paraan ng pag-atake para sa isang bagong kahinaan (CVE-2021-26341) sa mga processor ng AMD na may kaugnayan sa speculative execution ng mga tagubilin pagkatapos ng walang kundisyong forward operations. Kung matagumpay ang pag-atake, pinapayagan ng kahinaan na matukoy ang mga nilalaman ng mga lugar ng arbitrary na memorya. Halimbawa, naghanda ang mga mananaliksik ng pagsasamantala na nagpapahintulot sa kanila na matukoy ang layout ng address at i-bypass ang mekanismo ng proteksyon ng KASLR (kernel memory randomization) sa pamamagitan ng pag-execute ng unprivileged code sa ePBF kernel subsystem. Ang iba pang mga senaryo ng pag-atake ay hindi maitatapon na maaaring humantong sa pagtagas ng mga nilalaman ng memorya ng kernel.

Ang kahinaan ay nagbibigay-daan sa iyo na lumikha ng mga kundisyon kung saan ang processor, sa panahon ng preemptive execution, ispekulatibong nagpoproseso ng pagtuturo kaagad kasunod ng jump instruction sa memorya (SLS, Straight Line Speculation). Bukod dito, gumagana ang naturang pag-optimize hindi lamang para sa mga operator ng conditional jump, kundi pati na rin para sa mga tagubilin na nagpapahiwatig ng direktang unconditional jump, tulad ng JMP, RET at CALL. Kasunod ng walang kundisyong mga tagubilin sa pagtalon, maaaring ilagay ang di-makatwirang data na hindi nilayon para sa pagpapatupad. Matapos matukoy na ang isang sangay ay hindi nagsasangkot ng pagpapatupad ng susunod na pagtuturo, ang processor ay ibabalik lamang ang estado at binabalewala ang speculative execution, ngunit ang bakas ng pagpapatupad ng pagtuturo ay nananatili sa nakabahaging cache at magagamit para sa pagsusuri gamit ang mga diskarte sa pagkuha ng side-channel.

Tulad ng pagsasamantala sa kahinaan ng Spectre-v1, ang pag-atake ay nangangailangan ng pagkakaroon ng ilang mga sequence ng mga tagubilin (mga gadget) sa kernel na humahantong sa speculative execution. Ang pagharang sa isang kahinaan sa kasong ito ay bumababa sa pagtukoy sa mga naturang gadget sa code at pagdaragdag ng mga karagdagang tagubilin sa mga ito na humaharang sa speculative execution. Ang mga kundisyon para sa speculative execution ay maaari ding gawin ng mga unprivileged program na tumatakbo sa eBPF virtual machine. Upang harangan ang kakayahang gumawa ng mga gadget gamit ang eBPF, inirerekumenda na huwag paganahin ang unprivileged access sa eBPF sa system (β€œsysctl -w kernel.unprivileged_bpf_disabled=1”).

Ang kahinaan ay nakakaapekto sa mga processor batay sa Zen1 at Zen2 microarchitecture, kabilang ang una at ikalawang henerasyon ng mga processor ng AMD EPYC at AMD Ryzen Threadripper, pati na rin ang AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper PRO at APU series processors A. Upang harangan ang speculative execution ng mga tagubilin, inirerekumenda na tumawag sa INT3 o LFENCE na mga tagubilin pagkatapos ng branch operations (RET, JMP, CALL).

Pinagmulan: opennet.ru

Magdagdag ng komento