UEFI programmaparatūras ievainojamības, kuru pamatā ir InsydeH2O sistēma, kas ļauj izpildīt kodu SMM līmenī

InsydeH2O ietvarā, ko daudzi ražotāji izmanto, lai izveidotu UEFI programmaparatūru savam aprīkojumam (visbiežāk sastopamā UEFI BIOS ieviešana), ir identificētas 23 ievainojamības, kas ļauj izpildīt kodu SMM (System Management Mode) līmenī, kam ir augstāka prioritāte (Ring -2) nekā hipervizora režīms un nulles aizsardzības gredzens, kā arī neierobežota piekļuve visai atmiņai. Problēma skar UEFI programmaparatūru, ko izmanto tādi ražotāji kā Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel un Bull Atos.

Ievainojamību izmantošanai ir nepieciešama lokāla piekļuve ar administratora tiesībām, kas padara problēmas populāras kā otrā līmeņa ievainojamības, ko izmanto pēc citu sistēmas ievainojamību izmantošanas vai sociālās inženierijas metožu izmantošanas. Piekļuve SMM līmenī ļauj izpildīt kodu operētājsistēmas nekontrolētā līmenī, ko var izmantot, lai modificētu programmaparatūru un atstātu SPI Flash slēptos kaitīgos kodus vai sakņu komplektus, kurus operētājsistēma neatklāj, kā arī lai atspējotu verifikāciju sāknēšanas stadijā (UEFI Secure Boot , Intel BootGuard) un uzbrukumus hipervizoriem, lai apietu virtuālās vides integritātes pārbaudes mehānismus.

UEFI programmaparatūras ievainojamības, kuru pamatā ir InsydeH2O sistēma, kas ļauj izpildīt kodu SMM līmenī

Ievainojamību izmantošanu var veikt no operētājsistēmas, izmantojot nepārbaudītus SMI (System Management Interrupt) apdarinātājus, kā arī operētājsistēmas pirmsizpildes posmā sāknēšanas vai atgriešanās no miega režīma sākuma stadijā. Visas ievainojamības izraisa atmiņas problēmas, un tās ir iedalītas trīs kategorijās:

  • SMM izsaukums - jūsu koda izpilde ar SMM tiesībām, novirzot SWSMI pārtraukumu apstrādātāju izpildi uz kodu ārpus SMRAM;
  • Atmiņas bojājums, kas ļauj uzbrucējam ierakstīt savus datus SMRAM — īpašā izolētā atmiņas apgabalā, kurā tiek izpildīts kods ar SMM tiesībām.
  • Atmiņas bojājumi kodā, kas darbojas DXE (Driver eXecution Environment) līmenī.

Lai demonstrētu uzbrukuma organizēšanas principus, ir publicēts ekspluatācijas piemērs, kas ļauj, izmantojot uzbrukumu no trešā jeb nulles aizsardzības gredzena, piekļūt DXE Runtime UEFI un izpildīt savu kodu. Ekspluatācija manipulē ar steka pārplūdi (CVE-2021-42059) UEFI DXE draiverī. Uzbrukuma laikā uzbrucējs var ievietot savu kodu DXE draiverī, kas paliek aktīvs pēc operētājsistēmas restartēšanas, vai veikt izmaiņas SPI Flash NVRAM apgabalā. Izpildes laikā uzbrucēja kods var veikt izmaiņas priviliģētajos atmiņas apgabalos, modificēt EFI Runtime pakalpojumus un ietekmēt sāknēšanas procesu.

Avots: opennet.ru

Pievieno komentāru