Sårbarheter i UEFI-firmware baserad på InsydeH2O-ramverket, vilket möjliggör kodexekvering på SMM-nivå

I ramverket InsydeH2O, som används av många tillverkare för att skapa UEFI-firmware för sin utrustning (den vanligaste implementeringen av UEFI BIOS), har 23 sårbarheter identifierats som gör att kod kan exekveras på SMM-nivå (System Management Mode), som har en högre prioritet (Ring -2) än hypervisorläget och en nollring av skydd, och har obegränsad tillgång till allt minne. Problemet påverkar UEFI-firmware som används av tillverkare som Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel och Bull Atos.

Utnyttjande av sårbarheter kräver lokal åtkomst med administratörsrättigheter, vilket gör frågorna populära som sårbarheter på andra nivån, som används efter utnyttjande av andra sårbarheter i systemet eller användning av sociala ingenjörsmetoder. Åtkomst på SMM-nivå låter dig exekvera kod på en nivå som inte kontrolleras av operativsystemet, vilket kan användas för att modifiera firmware och lämna dold skadlig kod eller rootkits i SPI Flash som inte upptäcks av operativsystemet, samt att inaktivera verifiering vid uppstart (UEFI Secure Boot , Intel BootGuard) och attacker på hypervisorer för att kringgå mekanismer för att kontrollera integriteten hos virtuella miljöer.

Sårbarheter i UEFI-firmware baserad på InsydeH2O-ramverket, vilket möjliggör kodexekvering på SMM-nivå

Utnyttjande av sårbarheter kan utföras från operativsystemet med hjälp av overifierade SMI-hanterare (System Management Interrupt), såväl som i förexekveringsstadiet av operativsystemet under de inledande stadierna av uppstart eller återgång från viloläge. Alla sårbarheter orsakas av minnesproblem och är indelade i tre kategorier:

  • SMM Callout - exekvering av din kod med SMM-rättigheter genom att omdirigera exekveringen av SWSMI-avbrottshanterare till kod utanför SMRAM;
  • Minneskorruption som gör att en angripare kan skriva sina data till SMRAM, ett speciellt isolerat minnesområde där kod exekveras med SMM-rättigheter.
  • Minneskorruption i kod som körs på DXE-nivå (Driver eXecution Environment).

För att demonstrera principerna för att organisera en attack har ett exempel på en exploatering publicerats, som gör det möjligt att, genom en attack från den tredje eller nollringen av skydd, få tillgång till DXE Runtime UEFI och exekvera din kod. Exploateringen manipulerar ett stackspill (CVE-2021-42059) i UEFI DXE-drivrutinen. Under attacken kan angriparen placera sin kod i DXE-drivrutinen, som förblir aktiv efter att operativsystemet har startat om, eller göra ändringar i NVRAM-området i SPI Flash. Under körning kan angriparkod göra ändringar i privilegierade minnesområden, modifiera EFI Runtime-tjänster och påverka uppstartsprocessen.

Källa: opennet.ru

Lägg en kommentar