AMD prozesadoreen exekuzio mekanismo espekulatiboan ahultasuna

Grsecurity proiektuak xehetasunak eta eraso metodoaren erakustaldia argitaratu ditu AMD prozesadoreetako ahultasun berri baten (CVE-2021-26341) argibideen exekuzio espekulatiboarekin lotutako baldintzarik gabeko aurrera eragiketen ondoren. Erasoa arrakastatsua bada, ahultasunak memoria-eremu arbitrarioen edukia zehaztea ahalbidetzen du. Esaterako, ikertzaileek ustiapen bat prestatu dute, helbide-diseinua zehazteko eta KASLR (kernel memoria ausazko banaketa) babeserako mekanismoa saihestu ahal izateko pribilegiorik gabeko kodea exekutatuz ePBF nukleoaren azpisisteman. Ezin dira baztertu kernel-memoriaren edukien ihesa ekar dezaketen beste eraso-egoera batzuk.

Zaurgarritasunari esker, prozesadoreak, prebentziozko exekuzioan, instrukzioa espekulatiboki prozesatzen du memoriako jauzi-aginduaren ondoren (SLS, Straight Line Speculation). Gainera, optimizazio horiek baldintzapeko jauzi-operadoreentzat ez ezik, baldintzarik gabeko jauzi zuzena dakarten argibideetarako ere funtzionatzen dute, hala nola JMP, RET eta CALL. Baldintzarik gabeko jauzi jarraibideei jarraituz, exekutatzeko pentsatuta ez dauden datu arbitrarioak jar daitezke. Adar batek hurrengo instrukzioa exekutatzen ez duela zehaztu ondoren, prozesadoreak egoera atzera botatzen du eta exekuzio espekulatiboa alde batera uzten du, baina instrukzioen exekuzioaren arrastoa partekatutako cachean geratzen da eta albo-kanalak berreskuratzeko teknikak erabiliz aztertzeko dago.

Spectre-v1 ahultasunaren ustiapenarekin gertatzen den bezala, erasoak exekuzio espekulatiboa dakarten zenbait instrukzio-sekuentzia (gadget) egotea eskatzen du nukleoan. Kasu honetan ahultasun bat blokeatzea gailu horiek kodean identifikatzea eta exekuzio espekulatiboa blokeatzen duten argibide gehigarriak gehitzea da. Exekuzio espekulatiborako baldintzak eBPF makina birtualean exekutatzen diren pribilegiorik gabeko programek ere sor ditzakete. eBPF erabiliz gadgetak eraikitzeko gaitasuna blokeatzeko, sisteman eBPFrako pribilegiorik gabeko sarbidea desgaitzea gomendatzen da ("sysctl -w kernel.unprivileged_bpf_disabled=1").

Ahultasunak Zen1 eta Zen2 mikroarkitekturan oinarritutako prozesadoreei eragiten die, AMD EPYC eta AMD Ryzen Threadripper prozesadoreen lehen eta bigarren belaunaldiak barne, baita AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper ere. PRO eta APU serieko prozesadoreak A. Aginduen exekuzio espekulatiboa blokeatzeko, INT3 edo LFENCE argibide deitzea gomendatzen da adar-eragiketen ondoren (RET, JMP, CALL).

Iturria: opennet.ru

Gehitu iruzkin berria