Уразлівасці ў механізме MMIO працэсараў Intel

Кампанія Intel раскрыла інфармацыю аб новым класе ўцечак дадзеных праз мікраархітэктурныя структуры працэсараў, якія дазваляюць праз маніпуляцыю з механізмам MMIO (Memory Mapped Input Output) вызначыць інфармацыю, якая апрацоўваецца на іншых ядрах CPU. Напрыклад, уразлівасці дазваляюць здабываць дадзеныя з іншых працэсаў, анклаваў Intel SGX ці віртуальных машын. Уразлівасці спецыфічныя толькі для CPU кампаніі Intel, працэсары іншых вытворцаў уразлівасці не закранаюць.

Уразлівасці выяўляюцца ў розных CPU Intel, уключаючы працэсары на базе мікраархітэктур Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake і Rocketlake, а таксама серверныя працэсары Xeon EP/EX, Scalable і некаторыя Atom. Для здзяйснення нападу патрабуецца доступ да MMIO, які, напрыклад, можа быць атрыманы ў сістэмах віртуалізацыі, якія прадстаўляюць магчымасць звароту да MMIO для гасцявых сістэм, падкантрольных атакаваламу. Выпраўленне таксама можа запатрабавацца для сістэм, якія выкарыстоўваюць ізаляваныя анклавы Intel SGX (Software Guard Extensions).

Для блакавання ўразлівасці патрабуецца як абнаўленне мікракода, так і ўжыванне дадатковых праграмных метадаў абароны, заснаваных на ўжыванні інструкцыі VERW для ачысткі змесціва мікраархітэктурных буфераў у момант вяртання з ядра ў прастору карыстача ці пры перадачы кіравання гасцявой сістэме. Падобная абарона таксама ўжываецца для блакавання раней выяўленых нападаў класа MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) і TAA (Transactional Asynchronous Abort).

На баку мікракода неабходныя для рэалізацыі абароны змены прапанаваны ў травеньскім абнаўленні мікракода для CPU Intel (IPU 2022.1). У ядры Linux абарона ад новага класа нападаў уключаная ў склад выпускаў 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 і 4.9.319. Для праверкі схільнасці сістэмы ўразлівасцям у MMIO і адзнакі актыўнасці тых ці іншых механізмаў абароны ў ядро ​​Linux дададзены файл "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data". Для кіравання уключэннем абароны рэалізаваны загрузны параметр ядра "mmio_stale_data", які можа прымаць значэнні "full" (уключэнне чысткі буфераў пры пераходзе ў прастору карыстача і ў VM), "full,nosmt" (як "full" + дадаткова адключаецца SMT/Hyper- Threads) і "off" (абарона адключаная). Асобныя выпраўленні прапанаваны для гіпервізара Xen і аперацыйнай сістэмы Qubes.

Сутнасць выяўленага класа ўразлівасцяў у тым, што некаторыя аперацыі прыводзяць да капіявання ці перасоўванні дадзеных, якія засталіся пасля выканання на іншых ядрах CPU, з аднаго мікраархітэктурнага буфера ў іншы. Уразлівасці ў MMIO дазваляюць перанесці гэтыя рэшткавыя дадзеныя з ізаляваных мікраархітэктурных буфераў у бачныя прыкладанням рэгістры ці буферы CPU. Выяўлены тры метады вымання рэшткавых дадзеных праз MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) – праблема з некарэктнай апрацоўкай аперацый запісу ў некаторыя рэгістры MMIO. Калі памер якія запісваюцца дадзеных менш памеру рэгістра, то ў рэгістр капіюецца і рэшткавая інфармацыя з буфераў запаўнення (fill buffer). У выніку, працэс, які ініцыяваў няпоўную аперацыю запісу ў рэгістр MMIO, можа атрымаць дадзеныя, якія засталіся ў мікраархітэктурных буферах пасля аперацый, выкананых на іншых ядрах CPU.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) - уцечка рэшткавых дадзеных з прывязанага да ядра буфера запаўнення, якія трапілі ў выніку перамяшчэння з агульных для ўсіх ядраў прамежкавых буфераў.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) – праблема паходзіць на SBDS, але адрозніваецца тым, што рэшткавыя дадзеныя могуць патрапіць у бачныя прыкладанням структуры CPU. Праблемы SBDS і SBDR выяўляюцца толькі на працэсарах для кліенцкіх сістэм і на сервернай сямействе Intel Xeon E3.

Уразлівасці ў механізме MMIO працэсараў Intel


Крыніца: opennet.ru

Дадаць каментар