AMD процессоруудын таамаглалын гүйцэтгэлийн механизмын эмзэг байдал

Grsecurity төсөл нь болзолгүй урагшлуулах үйлдлүүдийн дараа зааврыг таамаглаж гүйцэтгэхтэй холбоотой AMD процессорууд дахь шинэ эмзэг байдлын (CVE-2021-26341) халдлагын аргын дэлгэрэнгүй мэдээлэл болон үзүүлэнг нийтэлсэн. Хэрэв халдлага амжилттай бол эмзэг байдал нь дурын санах ойн хэсгүүдийн агуулгыг тодорхойлох боломжийг олгодог. Жишээлбэл, судлаачид ePBF цөмийн дэд системд давуу эрхгүй кодыг ажиллуулснаар хаягийн байршлыг тодорхойлж, KASLR (цөм санах ой санамсаргүй байдлаар) хамгаалах механизмыг тойрч гарах боломжийг олгодог эксплойт бэлтгэсэн. Цөмийн санах ойн контент алдагдахад хүргэж болзошгүй бусад халдлагын хувилбаруудыг үгүйсгэх аргагүй.

Энэ эмзэг байдал нь санах ой дахь үсрэлтийн зааврын (SLS, Straight Line Speculation) дараа процессорыг урьдчилан гүйцэтгэх явцад шууд зааварчилгааг боловсруулах нөхцөлийг бүрдүүлэх боломжийг танд олгоно. Түүнчлэн, ийм оновчлол нь зөвхөн нөхцөлт үсрэлт операторуудад төдийгүй JMP, RET, CALL гэх мэт болзолгүй шууд үсрэлтийг илэрхийлдэг зааварчилгаанд ажилладаг. Нөхцөлгүй үсрэх зааврын дагуу гүйцэтгэхэд зориулагдаагүй дурын өгөгдлийг байрлуулж болно. Салбар нь дараагийн зааврын гүйцэтгэлтэй холбоотой биш гэдгийг тодорхойлсны дараа процессор зүгээр л төлөвийг буцаах ба таамаглалын гүйцэтгэлийг үл тоомсорлодог боловч зааврын гүйцэтгэлийн ул мөр нь хуваалцсан кэшэд үлдэж, хажуугийн сувгийн хайлтыг ашиглан шинжилгээ хийх боломжтой.

Spectre-v1-ийн эмзэг байдлыг ашиглахтай адил халдлага нь цөмд тодорхой дарааллын заавар (гаджет) байхыг шаарддаг бөгөөд энэ нь таамаглалаар гүйцэтгэхэд хүргэдэг. Энэ тохиолдолд эмзэг байдлыг хаах нь код доторх ийм хэрэгслүүдийг тодорхойлж, тэдгээрт таамаглалын гүйцэтгэлийг хориглодог нэмэлт зааварчилгааг нэмэхэд хүргэдэг. Түүнчлэн eBPF виртуал машин дээр ажиллаж байгаа давуу эрхгүй програмууд нь таамаглалаар гүйцэтгэх нөхцөлийг үүсгэж болно. eBPF ашиглан гаджет бүтээх боломжийг хаахын тулд систем дэх eBPF-д зөвшөөрөлгүй хандалтыг идэвхгүй болгохыг зөвлөж байна (“sysctl -w kernel.unprivileged_bpf_disabled=1”).

Энэ эмзэг байдал нь AMD EPYC болон AMD Ryzen Threadripper процессоруудын эхний болон хоёр дахь үеийн, түүнчлэн AMD Ryzen 1/2/2000/3000, AMD Athlon, AMD Athlon X, AMD Athlon Threadreadre зэрэг Zen4000 ба Zen5000 бичил архитектурт суурилсан процессоруудад нөлөөлдөг. PRO болон APU цувралын процессорууд A. Зааврын таамаглалтай гүйцэтгэлийг хаахын тулд салбар үйлдлүүдийн дараа (RET, JMP, CALL) INT3 эсвэл LFENCE командуудыг дуудахыг зөвлөж байна.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх