Vundeblecoj en la MMIO-mekanismo de Intel-procesoroj

Intel malkaŝis informojn pri nova klaso de datumfluoj tra mikroarkitekturaj strukturoj de procesoroj, kiuj permesas, per manipulado de la mekanismo MMIO (Memory Mapped Input Output), determini informojn prilaboritajn sur aliaj CPU-kernoj. Ekzemple, vundeblecoj permesas eltiri datumojn de aliaj procezoj, Intel SGX-enklavoj aŭ virtualaj maŝinoj. La vundeblecoj estas specifaj nur por Intel-CPUoj; procesoroj de aliaj produktantoj ne estas tuŝitaj de la vundeblecoj.

La vundeblecoj aperas en diversaj Intel-CPUoj, inkluzive de procesoroj bazitaj sur Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake kaj Rocketlake mikroarkitekturoj, same kiel Xeon EP/EX, Scalable kaj kelkaj Atom-servilprocesoroj. Por fari atakon, aliro al MMIO estas postulata, kiu, ekzemple, povas esti akirita en virtualigsistemoj kiuj disponigas la kapablon aliri MMIO por gastsistemoj kontrolitaj fare de la atakanto. Riparo ankaŭ povas esti postulata por sistemoj uzantaj Intel SGX (Software Guard Extensions) izolitajn enklavojn.

Bloki la vundeblecon postulas kaj mikrokodan ĝisdatigon kaj la uzon de kromaj programaraj protektaj metodoj bazitaj sur la uzo de la VERW-instrukcio por malbari la enhavon de mikroarkitekturaj bufroj revenante de la kerno al uzantspaco aŭ dum transdono de kontrolo al la gastsistemo. Simila protekto ankaŭ estas uzata por bloki antaŭe identigitajn atakojn de la klasoj MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) kaj TAA (Transactional Asynchronous Abort).

Sur la mikrokoda flanko, la ŝanĝoj necesaj por efektivigi protekton estis proponitaj en la maja mikrokoda ĝisdatigo por Intel-CPUoj (IPU 2022.1). En la Linukso-kerno, protekto kontraŭ nova klaso de atakoj estas inkluzivita en eldonoj 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284, kaj 4.9.319. Por kontroli la eksponiĝon de la sistemo al vundeblecoj en MMIO kaj taksi la agadon de certaj protektaj mekanismoj, la dosiero "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data" estis aldonita al la Linukso-kerno. Por kontroli la inkludon de protekto, la kerna lanĉa parametro "mmio_stale_data" estis efektivigita, kiu povas preni la valorojn "plena" (ebligas purigadon de bufroj dum moviĝado al uzantspaco kaj en la VM), "full,nosmt" ( kiel "plena" + aldone malŝaltas SMT/Hyper- Threads) kaj "off" (protekto malebligita). Apartaj korektoj estas ofertitaj por la hiperviziero Xen kaj la operaciumo Qubes.

La esenco de la identigita klaso de vundeblecoj estas, ke iuj operacioj kondukas al kopiado aŭ movo de datumoj restantaj post ekzekuto sur aliaj CPU-kernoj de unu mikroarkitektura bufro al alia. Vundeblecoj en MMIO permesas al ĉi tiuj restaj datenoj esti transdonitaj de izolitaj mikroarkitekturaj bufroj ĝis aplikiĝ-videblaj registroj aŭ CPU-bufroj. Tri metodoj estis identigitaj por ekstraktado de restaj datenoj tra MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) estas problemo kun malĝusta uzado de skriboj al iuj MMIO-registroj. Se la grandeco de la datenoj estantaj skribita estas malpli ol la grandeco de la registro, tiam la restaj informoj de la plenigbufroj ankaŭ estas kopiitaj en la registron. Kiel rezulto, procezo kiu iniciatas nekompletan skriboperacion al la MMIO-registro povas akiri datenojn restantajn en la mikroarkitekturaj bufroj de operacioj faritaj sur aliaj CPU-kernoj.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) estas liko de restaj datenoj de kern-ligita plenigbufro rezultiĝanta el movado de mezaj bufroj komunaj al ĉiuj kernoj.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) - la problemo estas simila al SBDS, sed diferencas en tio, ke restaj datumoj povas finiĝi en CPU-strukturoj videblaj al aplikoj. SBDS kaj SBDR-problemoj aperas nur sur procesoroj por klientsistemoj kaj sur la Intel Xeon E3-servila familio.

Vundeblecoj en la MMIO-mekanismo de Intel-procesoroj


fonto: opennet.ru

Aldoni komenton