Ahuleziak Intel prozesadoreen MMIO mekanismoan

Intelek datu-filtrazio klase berri bati buruzko informazioa zabaldu du prozesadoreen mikroarkitektura-egituren bidez, MMIO (Memory Mapped Input Output) mekanismoaren manipulazioaren bidez, PUZaren beste nukleoetan prozesatutako informazioa zehazteko. Adibidez, ahultasunek beste prozesu batzuetatik, Intel SGX enklabeetatik edo makina birtualetatik datuak atera daitezke. Ahultasunak Intel CPUetarako soilik dira; beste fabrikatzaile batzuen prozesadoreek ez dute kaltetzen ahultasunek.

Ahultasunak Intel hainbat CPUtan agertzen dira, besteak beste, Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake eta Rocketlake mikroarkitekturan oinarritutako prozesadoreetan, baita Xeon EP/EX, Scalable eta Atom zerbitzarietako prozesadore batzuetan ere. Eraso bat egiteko, MMIOrako sarbidea behar da, eta, adibidez, erasotzaileak kontrolatzen dituen sistema gonbidatuei MMIOra sartzeko gaitasuna ematen duten birtualizazio sistemetan lor daiteke. Baliteke konponketa bat behar izatea Intel SGX (Software Guard Extensions) enklabe isolatuak erabiltzen dituzten sistemetarako.

Ahultasuna blokeatzeko, mikrokodeen eguneratzea eta VERW instrukzioaren erabileran oinarritutako software babesteko metodo osagarriak erabiltzea beharrezkoa da mikroarkitekturako bufferen edukia garbitzeko nukleotik erabiltzailearen espaziora itzultzean edo kontrola gonbidatu sistemara transferitzean. Antzeko babesa ere erabiltzen da aurretik identifikatutako MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) eta TAA (Transactional Asynchronous Abort) klaseen erasoak blokeatzeko.

Mikrokodearen aldetik, babesa ezartzeko beharrezkoak diren aldaketak proposatu ziren maiatzeko mikrokodeen eguneratzean Intel CPUetarako (IPU 2022.1). Linux nukleoan, eraso-klase berri baten aurkako babesa 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 eta 4.9.319 bertsioetan sartzen da. Sistemak MMIOko ahultasunen aurrean duen esposizioa egiaztatzeko eta babes-mekanismo batzuen jarduera ebaluatzeko, β€œ/sys/devices/system/cpu/vulnerabilities/mmio_stale_data” fitxategia gehitu da Linux nukleoan. Babesa sartzea kontrolatzeko, nukleoaren abiarazte parametroa "mmio_stale_data" inplementatu da, "full" balioak har ditzakeen (buffer-ak garbitzea ahalbidetzen du erabiltzailearen espaziora eta VM-n mugitzean), "full,nosmt" ( "osoa" gisa + SMT/Hyper- Threads) eta "desaktibatuta" (babesa desgaituta) gainera. Xen hipervisorerako eta Qubes sistema eragilerako konponketa bereiziak eskaintzen dira.

Identifikatutako ahultasun-klasearen funtsa da eragiketa batzuek beste CPU-nukleo batzuetan exekutatu ondoren geratzen diren datuak kopiatzea edo mugitzea eragiten dutela mikroarkitektura-buffer batetik bestera. MMIOko ahultasunei esker, hondar-datu hauek mikroarkitektura-buffer isolatuetatik aplikazioen ikusgai dauden erregistroetara edo CPU-bufferetara transferi daitezke. MMIO bidez hondar datuak ateratzeko hiru metodo identifikatu dira:

  • DRPW (Device Register Partial Write, CVE-2022-21166) MMIO erregistro batzuetako idazketak gaizki kudeatzen dituen arazo bat da. Idazten ari diren datuen tamaina erregistroaren tamaina baino txikiagoa bada, betetze-bufferetako hondar informazioa ere erregistroan kopiatzen da. Ondorioz, MMIO erregistroan idazketa-eragiketa osatugabea hasten duen prozesu batek mikroarkitekturako bufferetan geratzen diren datuak lor ditzake PUZaren beste nukleoetan egindako eragiketetatik.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) nukleoan loturiko betetze-buffer baten hondar-datuen ihesa da, nukleo guztietan komunak diren tarteko bufferen mugimenduaren ondorioz.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) - arazoa SBDSren antzekoa da, baina desberdina da hondar-datuak aplikazioek ikusgai dauden PUZaren egituretan amai daitezkeelako. SBDS eta SBDR arazoak bezero-sistemetako prozesadoreetan eta Intel Xeon E3 zerbitzari-familian soilik agertzen dira.

Ahuleziak Intel prozesadoreen MMIO mekanismoan


Iturria: opennet.ru

Gehitu iruzkin berria