Spectre халдлагын эсрэг хамгаалалтыг тойрч гарах боломжийг олгодог eBPF дэд системийн эмзэг байдал

Линукс цөмд (CVE-2021-33624) эмзэг байдал илэрсэн бөгөөд энэ нь eBPF дэд системийг Spectre ангиллын эмзэг байдлаас хамгаалах хамгаалалтыг тойрч гарах боломжийг олгодог бөгөөд энэ нь санах ойн агуулгыг тодорхойлох боломжийг олгодог. тодорхой үйл ажиллагааны таамаглалын гүйцэтгэл. Spectre халдлага нь давуу эрх бүхий кодонд тодорхой дараалсан тушаалуудыг шаарддаг бөгөөд энэ нь зааврыг таамаглаж гүйцэтгэхэд хүргэдэг. Ажиллуулахаар дамжуулсан BPF программуудыг өөрчилснөөр eBPF-д ижил төстэй заавруудыг үүсгэж, цөмийн санах ой болон физик санах ойн дурын хэсгүүдийн агуулгыг хажуугийн сувгуудаар дамжуулан гадагшлуулах боломжтой.

Энэ эмзэг байдал нь BPF программ дахь алдаа, хүлээн зөвшөөрөгдөөгүй үйл ажиллагааг илрүүлэхэд ашигладаг баталгаажуулагчийн алдаанаас үүдэлтэй юм. Баталгаажуулагч нь кодыг гүйцэтгэх боломжит замыг тоочдог боловч зааврын багц архитектурын семантикийн үүднээс авч үзэх боломжгүй салбарлах сонголтуудыг алгасдаг. BPF програмыг ажиллуулахдаа баталгаажуулагчийн анхааралдаа аваагүй ийм салаалсан сонголтуудыг процессор буруу таамаглаж, таамаглалын горимд ажиллуулж болно. Жишээлбэл, "ачаалах" үйлдлийг шинжлэхдээ шалгагч нь заавар нь утга нь заасан хязгаарт үргэлж байдаг хаягтай регистрийг ашигладаг гэж найдаж байгаа боловч халдагч нь процессорыг таамаглалаар үйлдлүүдийг хийхийг оролдох нөхцлийг бүрдүүлж чадна. баталгаажуулах нөхцөлийг хангаагүй хаяг.

Асуудал нь kernel 4.15 гарснаас хойш гарч ирсэн бөгөөд засварууд (1, 2, 3, 4) хэлбэрээр зассан. Энэхүү эмзэг байдал нь түгээлтийн (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch) дээр тогтоогдоогүй хэвээр байна.

Нэмж дурдахад та Specter-ийн эмзэг байдлаас хамгаалах хэрэгслийн гүйцэтгэлд үзүүлэх нөлөөллийн талаархи тэмдэглэлийг тэмдэглэж болно. Тэмдэглэлд Firefox дээр давтахад хэцүү алдааг засах зорилгоор Mozilla-д нэг удаа бүтээгдсэн rr (Бичлэг ба Дахин тоглуулах) дибаглагчийн оновчлолын үр дүнг нэгтгэн харуулав. Лавлахуудыг шалгахад ашигладаг системийн дуудлагуудыг кэш хийснээр туршилтын төслийн "rr sources" ажиллагааг 3 минут 19 секундээс 36 секунд болгон бууруулсан.

Оновчлолын зохиогч Specter хамгаалалтыг идэвхгүй болгосны дараа гүйцэтгэл хэрхэн өөрчлөгдөхийг шалгахаар шийджээ. Системийг "mitigations=off" параметрээр ачаалсны дараа "rr sources" -ийг оновчлолгүйгээр гүйцэтгэх хугацаа 2 минут 5 секунд (1.6 дахин хурдан), оновчлолын үед 33 секунд (9% хурдан) болсон. Сонирхолтой нь Specter хамгаалалтыг идэвхгүй болгосноор цөмийн түвшинд код гүйцэтгэх хугацааг 1.4 дахин (2м9с-аас 1м32сек хүртэл) бууруулаад зогсохгүй хэрэглэгчийн орон зайд гүйцэтгэх хугацааг хоёр дахин (1м9с-аас 0м33с хүртэл) багасгасан нь CPU-ийн кэш болон TLB-ийн үр ашиг буурсантай холбоотой байж магадгүй юм. Specter хамгаалалт идэвхжсэн үед дахин тохируулагдана.

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

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