در چارچوب InsydeH2O، که توسط بسیاری از سازندگان برای ایجاد سفتافزار UEFI برای تجهیزات خود استفاده میشود (متداولترین پیادهسازی UEFI BIOS)، 23 آسیبپذیری شناسایی شده است که اجازه میدهد کد در سطح SMM (حالت مدیریت سیستم) اجرا شود، که دارای یک اولویت بالاتر (Ring -2) نسبت به حالت Hypervisor و یک حلقه حفاظتی صفر و دسترسی نامحدود به تمام حافظه. این مشکل بر سیستمافزار UEFI مورد استفاده سازندگانی مانند فوجیتسو، زیمنس، دل، اچپی، اچپیای، لنوو، مایکروسافت، اینتل و بول آتوس تأثیر میگذارد.
بهرهبرداری از آسیبپذیریها مستلزم دسترسی محلی با حقوق مدیر است، که باعث میشود مسائل به عنوان آسیبپذیریهای سطح دوم، پس از بهرهبرداری از آسیبپذیریهای دیگر در سیستم یا استفاده از روشهای مهندسی اجتماعی مورد استفاده قرار گیرند. دسترسی در سطح SMM به شما امکان می دهد کد را در سطحی اجرا کنید که توسط سیستم عامل کنترل نمی شود، که می تواند برای اصلاح سیستم عامل و باقی گذاشتن کد مخرب یا روت کیت های مخفی در SPI Flash که توسط سیستم عامل شناسایی نمی شوند و همچنین استفاده شود. غیرفعال کردن تأیید در مرحله بوت (UEFI Secure Boot، Intel BootGuard) و حمله به هایپروایزرها برای دور زدن مکانیسم های بررسی یکپارچگی محیط های مجازی.
بهره برداری از آسیب پذیری ها را می توان از سیستم عامل با استفاده از کنترل کننده های تایید نشده SMI (System Management Interrupt) و همچنین در مرحله قبل از اجرای سیستم عامل در مراحل اولیه بوت یا بازگشت از حالت خواب انجام داد. همه آسیبپذیریها ناشی از مشکلات حافظه هستند و به سه دسته تقسیم میشوند:
- SMM Callout - اجرای کد شما با حقوق SMM با هدایت مجدد اجرای کنترل کننده های وقفه SWSMI به کد خارج از SMRAM.
- خرابی حافظه که به مهاجم اجازه می دهد تا داده های خود را در SMRAM بنویسد، یک ناحیه حافظه جدا شده ویژه که در آن کد با حقوق SMM اجرا می شود.
- خرابی حافظه در کدهای در حال اجرا در سطح DXE (محیط اجرای درایور).
برای نشان دادن اصول سازماندهی یک حمله، نمونهای از یک اکسپلویت منتشر شده است که از طریق حمله از حلقه سوم یا صفر حفاظت، به DXE Runtime UEFI دسترسی پیدا کرده و کد خود را اجرا میکند. این اکسپلویت یک سرریز پشته (CVE-2021-42059) را در درایور UEFI DXE دستکاری می کند. در طول حمله، مهاجم میتواند کد خود را در درایور DXE که پس از راهاندازی مجدد سیستمعامل فعال باقی میماند، قرار دهد یا تغییراتی در ناحیه NVRAM SPI Flash ایجاد کند. در حین اجرا، کد مهاجم می تواند تغییراتی را در مناطق ممتاز حافظه ایجاد کند، خدمات EFI Runtime را تغییر دهد و بر فرآیند بوت تأثیر بگذارد.
منبع: opennet.ru