Sårbarheter i UEFI-fastvare basert på InsydeH2O-rammeverket, som tillater kodekjøring på SMM-nivå

I InsydeH2O-rammeverket, brukt av mange produsenter for å lage UEFI-fastvare for utstyret deres (den vanligste implementeringen av UEFI BIOS), er det identifisert 23 sårbarheter som gjør at kode kan kjøres på SMM-nivå (System Management Mode), som har en høyere prioritet (Ring -2) enn hypervisormodus og en nullring av beskyttelse, og har ubegrenset tilgang til alt minne. Problemet påvirker UEFI-fastvare som brukes av produsenter som Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel og Bull Atos.

Utnyttelse av sårbarheter krever lokal tilgang med administratorrettigheter, noe som gjør problemene populære som andrelagssårbarheter, brukt etter utnyttelse av andre sårbarheter i systemet eller bruk av sosiale ingeniørmetoder. Tilgang på SMM-nivå lar deg kjøre kode på et nivå som ikke er kontrollert av operativsystemet, som kan brukes til å modifisere fastvare og legge igjen skjult ondsinnet kode eller rootkits i SPI Flash som ikke oppdages av operativsystemet, samt å deaktivere verifisering på oppstartsstadiet (UEFI Secure Boot , Intel BootGuard) og angrep på hypervisorer for å omgå mekanismer for å sjekke integriteten til virtuelle miljøer.

Sårbarheter i UEFI-fastvare basert på InsydeH2O-rammeverket, som tillater kodekjøring på SMM-nivå

Utnyttelse av sårbarheter kan utføres fra operativsystemet ved å bruke ubekreftede SMI-behandlere (System Management Interrupt), så vel som på forhåndsutførelsesstadiet av operativsystemet under de innledende stadiene av oppstart eller retur fra hvilemodus. Alle sårbarheter er forårsaket av minneproblemer og er delt inn i tre kategorier:

  • SMM Callout - kjøring av koden din med SMM-rettigheter ved å omdirigere kjøringen av SWSMI-avbruddsbehandlere til kode utenfor SMRAM;
  • Minnekorrupsjon som gjør at en angriper kan skrive dataene sine til SMRAM, et spesielt isolert minneområde der kode kjøres med SMM-rettigheter.
  • Minnekorrupsjon i kode som kjører på DXE-nivå (Driver eXecution Environment).

For å demonstrere prinsippene for å organisere et angrep, har et eksempel på en utnyttelse blitt publisert, som gjør det mulig, gjennom et angrep fra den tredje eller null beskyttelsesringen, å få tilgang til DXE Runtime UEFI og utføre koden din. Utnyttelsen manipulerer en stackoverflyt (CVE-2021-42059) i UEFI DXE-driveren. Under angrepet kan angriperen plassere koden sin i DXE-driveren, som forblir aktiv etter at operativsystemet er startet på nytt, eller gjøre endringer i NVRAM-området til SPI Flash. Under kjøring kan angriperkode gjøre endringer i privilegerte minneområder, endre EFI Runtime-tjenester og påvirke oppstartsprosessen.

Kilde: opennet.ru

Legg til en kommentar