Kerentanan ing mekanisme eksekusi instruksi spekulatif prosesor AMD

Proyek Grsecurity wis nerbitake rincian lan demonstrasi cara serangan kanggo kerentanan anyar (CVE-2021-26341) ing prosesor AMD sing ana gandhengane karo eksekusi spekulatif instruksi sawise operasi maju tanpa syarat. Yen serangan kasebut sukses, kerentanan kasebut ngidini isi area memori sing sewenang-wenang bisa ditemtokake. Contone, peneliti wis nyiapake eksploitasi sing ngidini wong nemtokake tata letak alamat lan ngliwati mekanisme proteksi KASLR (kernel memory randomization) kanthi ngeksekusi kode sing ora duwe hak istimewa ing subsistem kernel ePBF. Skenario serangan liyane ora bisa ditolak sing bisa nyebabake bocor isi memori kernel.

Kerentanan ngidini sampeyan nggawe kahanan ing ngendi prosesor, sajrone eksekusi preemptive, kanthi spekulatif ngolah instruksi kasebut langsung sawise instruksi lompat ing memori (SLS, Spekulasi Garis Lurus). Kajaba iku, optimasi kasebut ora mung dianggo kanggo operator lompat kondisional, nanging uga kanggo instruksi sing nuduhake lompat tanpa syarat langsung, kayata JMP, RET lan CALL. Sawise instruksi lompat tanpa syarat, data sewenang-wenang sing ora dimaksudake kanggo eksekusi bisa diselehake. Sawise nemtokake manawa cabang ora melu eksekusi instruksi sabanjure, prosesor mung mbalekake negara lan ora nggatekake eksekusi spekulatif, nanging jejak eksekusi instruksi tetep ana ing cache sing dienggo bareng lan kasedhiya kanggo analisis nggunakake teknik pengambilan saluran sisih.

Kaya karo eksploitasi kerentanan Spectre-v1, serangan kasebut mbutuhake urutan instruksi tartamtu (gadget) ing kernel sing nyebabake eksekusi spekulatif. Pamblokiran kerentanan ing kasus iki teka kanggo ngenali gadget kasebut ing kode lan nambah instruksi tambahan kanggo wong-wong mau sing ngalangi eksekusi spekulatif. Kahanan kanggo eksekusi spekulatif uga bisa digawe dening program unprivileged mlaku ing mesin virtual eBPF. Kanggo mblokir kemampuan kanggo mbangun gadget nggunakake eBPF, dianjurake kanggo mateni akses unprivileged kanggo eBPF ing sistem ("sysctl -w kernel.unprivileged_bpf_disabled = 1").

Kerentanan mengaruhi prosesor adhedhasar mikroarsitektur Zen1 lan Zen2, kalebu generasi pertama lan kaloro prosesor AMD EPYC lan AMD Ryzen Threadripper, uga AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper Prosesor seri PRO lan APU A. Kanggo mblokir eksekusi spekulatif instruksi, disaranake nelpon instruksi INT3 utawa LFENCE sawise operasi cabang (RET, JMP, CALL).

Source: opennet.ru

Add a comment