Уязвимости в UEFI-прошивките на база фреймворка InsydeH2O, позволяващи изпълнение на код на ниво SMM

Във фреймворка InsydeH2O, който много производители използват за създаване на UEFI-прошивки за своето оборудване (най-разпространената реализация на UEFI BIOS), са открити 23 уязвимости, позволяващи изпълнение на код на ниво SMM (System Management Mode), което е с по-висок приоритет (Ring -2) от режима на хипервизора и нулевото защитно ниво, като предоставя неограничен достъп до цялата памет. Проблемът засяга UEFI-прошивки, използвани от производители като Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel и Bull Atos.

За експлоатация на уязвимостите е необходим локален достъп с администраторски права, което прави проблемите търсени като уязвимости от второ ниво, използвани след експлоатация на други уязвимости в системата или чрез използване на социална инженерия. Достъпът на ниво SMM позволява изпълнение на код на ниво, неподконтролирано от операционната система, което може да се използва за модификация на фърмуера и оставяне на скрит злонамерен код или руткит в SPI Flash, недостъпни за откриване от операционната система, както и за деактивиране на проверка на целостта при зареждане (UEFI Secure Boot, Intel BootGuard) и атаки към хипервизори за заобикаляне на механизми за проверка на целостта на виртуалните среди.

Уязвимости в UEFI-прошивките на база фреймворка InsydeH2O, позволяващи изпълнение на код на ниво SMM

Експлоатацията на уязвимостите може да се осъществи от операционната система с помощта на нелицензирани SMI-обработчици (System Management Interrupt), а също и на етапа преди изпълнението на операционната система по време на началните стадии на зареждане или при възстановяване от спящ режим. Всички уязвимости са свързани с проблеми в управлението на паметта и са разделени на три категории:

  • SMM Callout — изпълнение на собствен код с права SMM чрез пренасочване на изпълнението на обработчиците на прекъсвания SWSMI към код извън SMRAM;
  • Повреждания на паметта, позволяващи на атакуващия да запише свои данни в SMRAM, специализирана изолирана област от памет, в която се изпълнява код с права SMM.
  • Повреждане на паметта в кода, изпълняван на ниво DXE (Driver eXecution Environment).

За демонстрация на принципите на организиране на атака, е публикуван пример на експлоит, позволяващ посредством атака от трето или нулево защитно ниво, да се получи достъп до DXE Runtime UEFI и да се изпълни собствен код. Експлоитът манипулира с преливането на стека (CVE-2021-42059) в драйвера UEFI DXE. По време на атаката, нападателят може да помести своя код в DXE драйвера, запазващ активност след рестартиране на операционната система, или да направи промени в областта NVRAM в SPI Flash. В процеса на изпълнение, кодът на нападателя може да прави промени в привилегировани области на паметта, да модифицира EFI Runtime услуги и да влияе на процеса на зареждане.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster