Kerentanan ing subsistem eBPF sing ngidini nglindhungi pangayoman marang serangan Spectre

Kerentanan wis diidentifikasi ing kernel Linux (CVE-2021-33624) sing ngidini subsistem eBPF digunakake kanggo nglindhungi proteksi marang kerentanan kelas Spectre, sing ndadekake bisa nemtokake isi memori minangka asil nggawe kahanan kanggo eksekusi spekulatif saka operasi tartamtu. Serangan Spectre mbutuhake anane urutan perintah tartamtu ing kode istimewa sing ndadΓ©kakΓ© eksekusi instruksi spekulatif. Kanthi manipulasi program BPF sing ditularake kanggo eksekusi, bisa ngasilake instruksi sing padha ing eBPF lan bocor isi memori kernel lan area memori fisik sing sewenang-wenang liwat saluran sisih.

Kerentanan kasebut disebabake cacat ing verifier, sing digunakake kanggo ndeteksi kesalahan lan kegiatan sing ora bisa ditampa ing program BPF. Verifier nyathet kemungkinan jalur eksekusi kode, nanging nglewati opsi percabangan sing ora bisa ditampa saka sudut pandang semantik arsitektur set instruksi. Nalika nglakokake program BPF, opsi percabangan kasebut sing ora dianggep dening verifier bisa diprediksi kanthi salah dening prosesor lan dieksekusi ing mode spekulatif. Contone, nalika nganalisa operasi "muat", verifier ngarepake instruksi kasebut nggunakake register kanthi alamat sing nilaine tansah ana ing wates sing ditemtokake, nanging panyerang bisa nggawe kahanan ing ngendi prosesor bakal nyoba nindakake operasi kanthi spekulatif. alamat sing ora nyukupi syarat verifikasi.

Masalah kasebut wis muncul wiwit diluncurake kernel 4.15 lan wis diatasi kanthi bentuk patch (1, 2, 3, 4). Kerentanan tetep ora tetep ing distribusi (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Kajaba iku, sampeyan bisa nyathet cathetan babagan pengaruh kinerja alat kanggo nglindhungi saka kerentanan Spectre. Cathetan kasebut ngringkes asil optimalisasi debugger rr (Rekam lan Puter maneh), sing tau digawe ing Mozilla kanggo debug kesalahan sing angel diulang ing Firefox. Caching panggilan sistem sing digunakake kanggo mriksa orane direktori nyuda operasi "sumber rr" kanggo proyek uji coba saka 3 menit 19 detik dadi 36 detik.

Penulis optimasi mutusake kanggo mriksa kepiye kinerja bakal diganti sawise mateni proteksi Spectre. Sawise boot sistem kanthi parameter "mitigasi = mati", wektu eksekusi "sumber rr" tanpa optimasi yaiku 2 menit 5 detik (1.6 kaping luwih cepet), lan kanthi optimalisasi 33 detik (9% luwih cepet). Apike, mateni proteksi Spectre ora mung nyuda wektu eksekusi kode ing level kernel kanthi 1.4 kali (saka 2m9s dadi 1m32s), nanging uga nyuda wektu eksekusi ing ruang pangguna (saka 1m9s dadi 0m33s), bisa uga amarga nyuda efisiensi operasi cache CPU lan TLB. ngreset nalika pangayoman Spectre diaktifake.

Source: opennet.ru

Add a comment