Awọn ailagbara ninu ẹrọ MMIO ti awọn ilana Intel

Intel ti ṣafihan alaye nipa kilasi tuntun ti n jo data nipasẹ awọn ẹya microarchitectural ti awọn ilana, eyiti o gba laaye, nipasẹ ifọwọyi ti ẹrọ MMIO (Memory Mapped Input Output), lati pinnu alaye ti a ṣe ilana lori awọn ohun kohun Sipiyu miiran. Fun apẹẹrẹ, awọn ailagbara gba data laaye lati fa jade lati awọn ilana miiran, awọn enclaves Intel SGX, tabi awọn ẹrọ foju. Awọn ailagbara naa jẹ pato si awọn CPUs Intel nikan; awọn iṣelọpọ lati awọn aṣelọpọ miiran ko ni ipa nipasẹ awọn ailagbara naa.

Awọn ailagbara han ni ọpọlọpọ awọn CPUs Intel, pẹlu awọn ilana ti o da lori Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake ati Rocketlake microarchitectures, ati Xeon EP / EX, Scalable ati diẹ ninu awọn ilana olupin Atom. Lati gbe ikọlu kan, iraye si MMIO nilo, eyiti, fun apẹẹrẹ, le gba ni awọn ọna ṣiṣe agbara ti o pese agbara lati wọle si MMIO fun awọn ọna ṣiṣe alejo ti o dari nipasẹ ikọlu. Atunṣe le tun nilo fun awọn eto lilo Intel SGX (Awọn amugbooro Ṣọ Software) awọn enclaves ti o ya sọtọ.

Dinamọ ailagbara nilo imudojuiwọn microcode mejeeji ati lilo awọn ọna aabo sọfitiwia afikun ti o da lori lilo ilana VERW lati ko awọn akoonu ti awọn buffer microarchitectural kuro nigbati o ba pada lati ekuro si aaye olumulo tabi nigba gbigbe iṣakoso si eto alejo. Aabo ti o jọra ni a tun lo lati ṣe idiwọ awọn ikọlu ti a ti mọ tẹlẹ ti MDS (Sampling Data Microarchitectural), SRBDS (Apejuwe Iforukọsilẹ Data Buffer Data Iforukọsilẹ pataki) ati awọn kilasi TAA (Asynchronous Abort Transactional).

Ni ẹgbẹ microcode, awọn ayipada pataki lati ṣe aabo ni a daba ni imudojuiwọn May microcode fun Intel CPUs (IPU 2022.1). Ninu ekuro Linux, aabo lodi si kilasi tuntun ti awọn ikọlu wa ninu awọn idasilẹ 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284, ati 4.9.319. Lati ṣayẹwo ifihan ti eto si awọn ailagbara ni MMIO ati ṣe iṣiro iṣẹ ṣiṣe ti awọn ọna aabo kan, faili “/ sys/ẹrọ/system/cpu/vulnerabilities/mmio_stale_data” ti ṣafikun si ekuro Linux. Lati ṣakoso ifisi aabo, paramita bata kernel “mmio_stale_data” ti ni imuse, eyiti o le gba awọn iye “kikun” (ṣe ni ṣiṣe mimọ ti awọn buffer nigbati gbigbe si aaye olumulo ati ni VM), “kikun, nosmt” ( bi "kikun" + afikun ohun ti a pa SMT/Hyper- Threads) ati "pa" (alaabo aabo). Awọn atunṣe lọtọ ni a funni fun hypervisor Xen ati ẹrọ ṣiṣe Qubes.

Ohun pataki ti kilasi idanimọ ti awọn ailagbara ni pe diẹ ninu awọn iṣẹ yori si didakọ tabi gbigbe data ti o ku lẹhin ipaniyan lori awọn ohun kohun Sipiyu miiran lati ifipamọ microarchitectural kan si omiiran. Awọn ailagbara ni MMIO gba data to ku lati gbe lati awọn buffer microarchitectural ti o ya sọtọ si awọn iforukọsilẹ ohun elo ti o han tabi awọn buffers Sipiyu. Awọn ọna mẹta ni a ti ṣe idanimọ fun yiyọ data to ku nipasẹ MMIO:

  • DRPW (Iforukọsilẹ Ẹrọ apakan Kọ, CVE-2022-21166) jẹ ariyanjiyan pẹlu mimu aiṣedeede ti kikọ si awọn iforukọsilẹ MMIO kan. Ti iwọn data ti a kọ ba kere ju iwọn iforukọsilẹ lọ, lẹhinna alaye to ku lati awọn buffers ti o kun ni a tun daakọ sinu iforukọsilẹ. Bi abajade, ilana ti o bẹrẹ iṣẹ kikọ ti ko pe si iforukọsilẹ MMIO le gba data ti o ku ninu awọn buffer microarchitectural lati awọn iṣẹ ṣiṣe ti a ṣe lori awọn ohun kohun Sipiyu miiran.
  • SBDS (Aṣayẹwo Data Awọn Buffers Pipin, CVE-2022-21125) jẹ jijo ti data to ku lati inu ifipamọ kikun ti ekuro ti o jẹ abajade lati gbigbe lati awọn buffer agbedemeji ti o wọpọ si gbogbo awọn kernels.
  • SBDR (Pin Buffers Data Read, CVE-2022-21123) - iṣoro naa jọra si SBDS, ṣugbọn o yatọ si ni pe data to ku le pari ni awọn ẹya Sipiyu ti o han si awọn ohun elo. Awọn iṣoro SBDS ati SBDR han nikan lori awọn ilana fun awọn eto alabara ati lori idile olupin Intel Xeon E3.

Awọn ailagbara ninu ẹrọ MMIO ti awọn ilana Intel


orisun: opennet.ru

Fi ọrọìwòye kun