Element płyty głównej komputera z jednostką centralną CPU oświetloną czerwonymi i pomarańczowymi światłami, podkreślającymi obwody i komponenty elektroniczne.
·

Krytyczna luka w oprogramowaniu UEFI

Firma Eclypsium, specjalizująca się w zabezpieczeniach sprzętowych, wykryła usterkę w oprogramowaniu UEFI od Phoenix SecureCore. Dzięki zautomatyzowanemu systemowi analizy binarnej Eclypsium Automata udało się zidentyfikować podatność, oznaczaną jako CVE-2024-0762. Phoenix Technologies przyznała, że problem ten występuje w wielu wersjach oprogramowania SecureCore które działa na procesorach Intel, m.in. z rodzin: AlderLake, CoffeeLake, CometLake, IceLake, JasperLake, KabyLake, MeteorLake, RaptorLake, RocketLake, TigerLake. 

UEFI: wzmocnienie bezpieczeństwa

UEFI (Unified Extensible Firmware Interface), następca BIOS-u w komputerach osobistych, to oprogramowanie kontrolujące sposób uruchamiania urządzenia – jest pierwszym uruchamianym kodem i najbardziej uprzywilejowanym w większości systemów. Oferuje m.in. mechanizm Secure Boot, który weryfikuje, czy kod uruchamiany przez oprogramowanie sprzętowe UEFI komputera jest zaufany. Zabezpieczenie zostało zaprojektowane z myślą o ochronie systemu przed wykonaniem złośliwego kodu na wczesnym etapie procesu rozruchu, zanim dojdzie do załadowania systemu operacyjnego. 

Przepełnienie bufora i eskalacja uprawnień

Problemem okazuje się niebezpieczna zmienna w konfiguracji TPM, która może prowadzić do przepełnienia bufora, w sytuacji, gdy program próbuje zapisać więcej danych, niż został do tego zaprojektowany. Tego rodzaju luka przyczynia się do eskalacji uprawnień i wykonania kodu w oprogramowaniu UEFI podczas jego działania – to typowy zabieg dla backdoorów firmware’u. Samo wykorzystanie luki zależy od konfiguracji i uprawnień nadanych zmiennej TCG2_CONFIGURATION, które różnią się w zależności od platformy. 

Detale podatności

Podatność wykryta przez Eclypsium jest powiązana z niebezpiecznym wywołaniem GetVariable (szczegółowy kod można znaleźć na blogu firmy). Rozmiar bufora pozostaje niezmienny (8 bajtów), ale rozmiar zmiennej UEFI „TCG2_CONFIGURATION” nie jest sprawdzany przed zapisaniem danych do bufora. Jeśli atakujący modyfikuje wartość zmiennej UEFI „TCG2_CONFIGURATION” w czasie działania systemu, może ustawić ją na wartość wystarczająco długą, aby pierwsze wywołanie GetVariable zwróciło EFI_BUFFER_TOO_SMALL, a rozmiar danych równał się długości zmiennej UEFI. Jednak nawet jeśli data_size zostanie zaktualizowany, rozmiar bufora nie ulegnie zmianie. W sytuacji, gdy „TCG2_CONFIGURATION” jest nadal większe niż bufor, doprowadzi to do przepełnienia bufora po ponownym wywołaniu GetVariable. 

Zagrożenia związane z naruszeniami kodu UEFI

Każde naruszenie kodu lub luki w oprogramowaniu UEFI mogą dać atakującym pełną kontrolę, a w konsekwencji pozwolić na wyrządzenie szkód oraz utrzymanie dostępu do skompromitowanego systemu. Co więcej, w związku z tym, że podatny kod pochodzi od głównego partnera w łańcuchu dostaw, który licencjonuje go wielu producentom OEM, wykryty problem stanowi potencjalne zagrożenie dla wykorzystujących ten kod produktów, nadając podatności status niezwykle niebezpiecznej. 

 

Podobne wpisy