Luka w oprogramowaniu kontrolera BMC wpływająca na serwery wielu producentów

Firma Elipsium ujawnił dwie luki w oprogramowaniu kontrolera BMC dostarczanego w serwerach Lenovo ThinkServer, umożliwiające lokalnemu użytkownikowi zmianę oprogramowania lub wykonanie dowolnego kodu po stronie chipa BMC.

Dalsza analiza wykazała, że ​​problemy te dotyczą także oprogramowania kontrolerów BMC stosowanych w platformach serwerowych Gigabyte Enterprise Servers, które stosowane są także w serwerach takich firm jak Acer, AMAX, Bigtera, Ciara, Penguin Computing czy sysGen. Problematyczne kontrolery BMC wykorzystywały podatne na ataki oprogramowanie układowe MergePoint EMS opracowane przez zewnętrznego dostawcę Avocent (obecnie oddział firmy Vertiv).

Pierwsza podatność spowodowana jest brakiem kryptograficznej weryfikacji pobranych aktualizacji oprogramowania (stosowana jest jedynie weryfikacja sumy kontrolnej CRC32, w przeciwieństwie do zalecenia NIST używa podpisów cyfrowych), co pozwala osobie atakującej z lokalnym dostępem do systemu sfałszować oprogramowanie układowe BMC. Problem można na przykład wykorzystać do głębokiej integracji rootkita, który pozostaje aktywny po ponownej instalacji systemu operacyjnego i blokuje dalsze aktualizacje oprogramowania sprzętowego (aby wyeliminować rootkita, konieczne będzie użycie programisty w celu przepisania flasha SPI).

Druga podatność występuje w kodzie aktualizacji oprogramowania i pozwala na podstawienie własnych poleceń, które będą wykonywane w BMC z najwyższym poziomem uprawnień. Do ataku wystarczy zmienić wartość parametru RemoteFirmwareImageFilePath w pliku konfiguracyjnym bmcfwu.cfg, za pomocą którego ustalana jest ścieżka do obrazu zaktualizowanego oprogramowania. Podczas następnej aktualizacji, którą można zainicjować poleceniem w IPMI, parametr ten zostanie przetworzony przez BMC i użyty jako część wywołania popen() jako część linii dla /bin/sh. Ponieważ wiersz do generowania polecenia powłoki jest tworzony przy użyciu wywołania snprintf() bez odpowiedniego czyszczenia znaków specjalnych, atakujący mogą zastąpić swój kod wykonaniem. Aby wykorzystać lukę, musisz posiadać uprawnienia umożliwiające wysłanie polecenia do kontrolera BMC poprzez IPMI (jeśli posiadasz uprawnienia administratora na serwerze, możesz wysłać polecenie IPMI bez dodatkowego uwierzytelniania).

Gigabyte i Lenovo zostały powiadomione o problemach w lipcu 2018 roku i zdołały opublikować aktualizacje, zanim informacje zostały upublicznione. Firma Lenovo wydany aktualizacje oprogramowania sprzętowego w dniu 15 listopada 2018 r. dla serwerów Think Server RD340, TD340, RD440, RD540 i RD640, ale jedynie wyeliminowały w nich lukę umożliwiającą podmianę poleceń, ponieważ podczas tworzenia linii serwerów opartych na MergePoint EMS w 2014 r. oprogramowanie sprzętowe weryfikacja odbywała się przy użyciu podpisu cyfrowego nie była jeszcze powszechna i nie była początkowo zapowiadana.

8 maja tego roku Gigabyte wypuścił aktualizacje oprogramowania sprzętowego dla płyt głównych z kontrolerem ASPEED AST2500, ale podobnie jak Lenovo naprawił jedynie lukę polegającą na podstawieniu poleceń. Wrażliwe płyty oparte na ASPEED AST2400 pozostają na razie bez aktualizacji. Gigabajt też powiedział o przejściu na używanie oprogramowania MegaRAC SP-X firmy AMI. Nowe oprogramowanie sprzętowe oparte na MegaRAC SP-X będzie oferowane dla systemów dostarczonych wcześniej z oprogramowaniem MergePoint EMS. Decyzja ta została podjęta po ogłoszeniu przez Vertiv, że nie będzie już wspierać platformy MergePoint EMS. Jednocześnie nie ma jeszcze żadnych doniesień o aktualizacjach oprogramowania sprzętowego na serwerach firm Acer, AMAX, Bigtera, Ciara, Penguin Computing i sysGen opartych na płytach Gigabyte i wyposażonych w podatny na ataki firmware MergePoint EMS.

Przypomnijmy, że BMC to wyspecjalizowany kontroler instalowany w serwerach, posiadający własne interfejsy CPU, pamięci, Storage i Sensor Polling, co stanowi interfejs niskiego poziomu do monitorowania i zarządzania sprzętem serwerowym. Za pomocą BMC, niezależnie od systemu operacyjnego działającego na serwerze, można monitorować stan czujników, zarządzać zasilaniem, oprogramowaniem i dyskami, organizować zdalne uruchamianie przez sieć, zapewniać działanie konsoli zdalnego dostępu itp.

Źródło: opennet.ru

Dodaj komentarz