Vulnerabilități în firmware-ul UEFI bazat pe cadrul InsydeH2O, permițând executarea codului la nivel SMM

În cadrul InsydeH2O, folosit de mulți producători pentru a crea firmware UEFI pentru echipamentele lor (cea mai comună implementare a UEFI BIOS), au fost identificate 23 de vulnerabilități care permit executarea codului la nivel SMM (System Management Mode), care are un prioritate mai mare (Ring -2) decât modul hypervisor și un inel zero de protecție și având acces nelimitat la toată memoria. Problema afectează firmware-ul UEFI utilizat de producători precum Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel și Bull Atos.

Exploatarea vulnerabilităților necesită acces local cu drepturi de administrator, ceea ce face ca problemele să fie populare ca vulnerabilități de nivel al doilea, utilizate după exploatarea altor vulnerabilități din sistem sau utilizarea metodelor de inginerie socială. Accesul la nivel SMM vă permite să executați cod la un nivel care nu este controlat de sistemul de operare, care poate fi folosit pentru a modifica firmware-ul și a lăsa ascunse cod rău intenționat sau rootkit-uri în SPI Flash care nu sunt detectate de sistemul de operare, precum și pentru a dezactiva verificarea în faza de pornire (UEFI Secure Boot, Intel BootGuard) și atacurile asupra hipervizoarelor pentru a ocoli mecanismele de verificare a integrității mediilor virtuale.

Vulnerabilități în firmware-ul UEFI bazat pe cadrul InsydeH2O, permițând executarea codului la nivel SMM

Exploatarea vulnerabilităților poate fi efectuată din sistemul de operare folosind handlere SMI (System Management Interrupt) neverificate, precum și în etapa de pre-execuție a sistemului de operare în fazele inițiale de pornire sau revenire din modul de repaus. Toate vulnerabilitățile sunt cauzate de probleme de memorie și sunt împărțite în trei categorii:

  • SMM Callout - execuția codului dvs. cu drepturi SMM prin redirecționarea execuției gestionarilor de întreruperi SWSMI către codul din afara SMRAM;
  • Coruperea memoriei care permite unui atacator să-și scrie datele pe SMRAM, o zonă specială de memorie izolată în care codul este executat cu drepturi SMM.
  • Coruperea memoriei în codul care rulează la nivel DXE (Driver eXecution Environment).

Pentru a demonstra principiile organizării unui atac, a fost publicat un exemplu de exploit, care permite, printr-un atac din al treilea sau zero inel de protecție, să obțineți acces la DXE Runtime UEFI și să vă executați codul. Exploita-ul manipulează o depășire a stivei (CVE-2021-42059) în driverul UEFI DXE. În timpul atacului, atacatorul își poate plasa codul în driverul DXE, care rămâne activ după ce sistemul de operare este repornit, sau poate face modificări în zona NVRAM a SPI Flash. În timpul execuției, codul atacatorului poate face modificări în zonele privilegiate de memorie, poate modifica serviciile EFI Runtime și poate afecta procesul de pornire.

Sursa: opennet.ru

Adauga un comentariu