Kerentanan dalam mekanisme pelaksanaan spekulatif pemproses AMD

Projek Grsecurity telah menerbitkan butiran dan demonstrasi kaedah serangan untuk kelemahan baharu (CVE-2021-26341) dalam pemproses AMD yang berkaitan dengan pelaksanaan arahan spekulatif selepas operasi hadapan tanpa syarat. Jika serangan itu berjaya, kelemahan membolehkan kandungan kawasan ingatan sewenang-wenangnya ditentukan. Sebagai contoh, penyelidik telah menyediakan eksploitasi yang membolehkan mereka menentukan susun atur alamat dan memintas mekanisme perlindungan KASLR (pembacaan memori kernel) dengan melaksanakan kod yang tidak mempunyai keistimewaan dalam subsistem kernel ePBF. Senario serangan lain tidak boleh diketepikan yang boleh menyebabkan kebocoran kandungan memori kernel.

Kerentanan membolehkan anda mencipta keadaan di mana pemproses, semasa pelaksanaan preemptive, secara spekulatif memproses arahan serta-merta selepas arahan lompat dalam ingatan (SLS, Spekulasi Garis Lurus). Selain itu, pengoptimuman sedemikian berfungsi bukan sahaja untuk pengendali lompat bersyarat, tetapi juga untuk arahan yang membayangkan lompatan langsung tanpa syarat, seperti JMP, RET dan CALL. Mengikuti arahan lompat tanpa syarat, data sewenang-wenang yang tidak bertujuan untuk pelaksanaan boleh diletakkan. Selepas menentukan bahawa cawangan tidak melibatkan pelaksanaan arahan seterusnya, pemproses hanya melancarkan keadaan dan mengabaikan pelaksanaan spekulatif, tetapi kesan pelaksanaan arahan kekal dalam cache dikongsi dan tersedia untuk analisis menggunakan teknik pengambilan saluran sisi.

Seperti dengan eksploitasi kelemahan Spectre-v1, serangan memerlukan kehadiran urutan arahan tertentu (alat) dalam kernel yang membawa kepada pelaksanaan spekulatif. Menyekat kelemahan dalam kes ini adalah untuk mengenal pasti alat tersebut dalam kod dan menambahkan arahan tambahan kepada mereka yang menyekat pelaksanaan spekulatif. Syarat untuk pelaksanaan spekulatif juga boleh dibuat oleh program tanpa hak yang dijalankan dalam mesin maya eBPF. Untuk menyekat keupayaan untuk membina alat menggunakan eBPF, adalah disyorkan untuk melumpuhkan akses tanpa hak kepada eBPF dalam sistem (β€œsysctl -w kernel.unprivileged_bpf_disabled=1”).

Kerentanan mempengaruhi pemproses berdasarkan seni bina mikro Zen1 dan Zen2, termasuk generasi pertama dan kedua pemproses AMD EPYC dan AMD Ryzen Threadripper, serta AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper Pemproses siri PRO dan APU A. Untuk menyekat pelaksanaan spekulatif arahan, disyorkan untuk memanggil arahan INT3 atau LFENCE selepas operasi cawangan (RET, JMP, CALL).

Sumber: opennet.ru

Tambah komen