Używanie białych list w celu poprawy bezpieczeństwa oprogramowania sprzętowego

oprogramowanie sprzętowe stało się bardziej popularne w świecie badań nad bezpieczeństwem komputerowym. Ataki działające na poziomie oprogramowania układowego mogą być trudne do wykrycia i mogą utrzymywać się nawet w scenariuszach odzyskiwania gołych metali. Ten rodzaj włamania został dobrze udokumentowany przez badania exploitów HackingTeam i Vault7.

na szczęście istnieją metody wykrywania i obrony przed takimi atakami. Ataki oparte na oprogramowaniu układowym zazwyczaj próbują dodać lub zmodyfikować moduły oprogramowania układowego systemu przechowywane w pamięci NVRAM. Narzędzia dostarczane przez projekt open source CHIPSEC mogą być używane do generowania i weryfikacji skrótów tych modułów, dzięki czemu użytkownicy mogą wykryć nieautoryzowane zmiany.

CHIPSEC chispec, wprowadzony w marcu 2014 roku, jest ramą do analizy bezpieczeństwa na poziomie platformy sprzętu, urządzeń, oprogramowania układowego systemu, mechanizmów ochrony niskiego poziomu i konfiguracji różnych komponentów platformy. Zawiera zestaw modułów, w tym proste testy zabezpieczeń sprzętowych i poprawnej konfiguracji, testy luk w oprogramowaniu układowym i komponentach platformy, narzędzia do oceny bezpieczeństwa i fuzzingu dla różnych urządzeń i interfejsów platformy oraz narzędzia do pozyskiwania newralgicznych artefaktów oprogramowania układowego i urządzeń.

moduł białej listy (narzędzia.uefi.whitelist) używa CHIPSEC do wyodrębnienia listy plików wykonywalnych EFI z binarnego obrazu oprogramowania układowego i buduje listę “oczekiwanych” plików wykonywalnych i odpowiadających im skrótów (.Plik JSON), który zostanie użyty później do porównania. Dokumentacja jest dostępna jako część kodu źródłowego modułu na GitHubie oraz w podręczniku CHIPSEC.

proces zakłada, że zaczynasz od “znanego dobrego obrazu oprogramowania”, najlepiej wersji produkcyjnej oprogramowania dostarczonego przez producenta, i że użyłeś CHIPSEC do skanowania znanych problemów, zanim przypadkowo umieściłeś coś paskudnego na białej liście. Ten przykład wykorzystuje oprogramowanie układowe open source UEFI dla MinnowBoard Turbot (wersja 0.97), dla lepszego wglądu w proces.

następujący wiersz poleceń CHIPSEC tworzy białą listę o nazwie efilist.json oparty na “znanym dobrym obrazie” (platform_fw.bin):

python chipsec_main.py -i -n -m tools.uefi.whitelist -a generate,efilist.json,platform_fw.bin

CHIPSEC w Ubuntu Linux

zastosowanie tego procesu do obrazów “release” i “debug” oprogramowania sprzętowego MinnowBoard Turbot 0.97 tworzy następujące białe listy:

  • MNW2MAX1X64.0097D01.1709211100bin (UEFI x64 firmware, tryb debugowania) – X64D97_whitelist.JSON
  • MNW2MAX1.X64.0097R01.1709211052bin (UEFI x64 firmware, release mode) – X64R97_whitelist.json

(ćwiczenia dla czytelnika: Pobierz obrazy oprogramowania układowego, Uruchom CHIPSEC, sprawdź, czy twoja biała lista pasuje)

ważne jest, aby pamiętać, że wynikowy plik JSON whitelist nie jest tylko skrótem pliku binarnego, zawiera skróty modułów wykonywalnych obrazu oprogramowania układowego. CHIPSEC ma możliwość skanowania i katalogowania poszczególnych komponentów oprogramowania układowego, które mogą być używane do tworzenia białej lub czarnej listy konkretnych plików wykonywalnych.

publikowanie białych list

jeśli jesteś producentem systemu, możesz opublikować te białe listy w celu weryfikacji klienta. Najlepiej jednak podpisać pliki w celu weryfikacji. Aby zapewnić, że biała lista otrzymana przez użytkownika końcowego jest oficjalną białą listą, można ją podpisać za pomocą GPG przy użyciu podpisu oddzielonego:

gpg –detach-sign <file>

Ponadto użytkownicy powinni uwierzytelniać certyfikaty dla dobrze znanej nazwy domeny producenta systemu, gdy są dostarczane przez HTTPS. Wskazane jest również, aby organizacje IT podpisywały wewnętrznie generowane białe listy, aby zapobiec użyciu nieautoryzowanych list w audytach.

sprawdzanie białych list

jeśli dostępny jest oddzielny podpis, można użyć GPG do weryfikacji pliku białej listy:

gpg –verify <file>

po zweryfikowaniu autentyczności białej listy użytkownik musi zrobić zdjęcie oprogramowania sprzętowego platformy za pomocą CHIPSEC. Ta linia poleceń użyła polecenia ‘dump’do wygenerowania user_fw.bin:

python chipsec_util.py spi dump user_fw.bin

teraz CHIPSEC może być używany do weryfikacji obrazu oprogramowania sprzętowego platformy z powiązaną białą listą. Ten przykład sprawdziłby obraz “release” x64 Dla Turbota Minnowboard 0.97:

python chipsec_main.py -i -n -m tools.uefi.whitelist -a check,X64REL_whitelist.json,user_fw.bin

w tym momencie CHIPSEC zwróci status” PASSED “lub” WARNING”. Jeśli test zwraca “PASSED”, wszystkie skróty zostały znalezione na białej liście i pasują do oczekiwanych wartości. Jeśli test zwraca “Ostrzeżenie”, było to coś jest innego. Należy pamiętać, że” ostrzeżenie ” przed nie oznacza natychmiast zagrożenia bezpieczeństwa (np. użytkownik mógł zaktualizować oprogramowanie sprzętowe do najnowszej wersji producenta), ale wymaga zbadania, czy zmieniony obraz oprogramowania sprzętowego nie jest spowodowany próbą ataku.

ograniczenia

używanie narzędzi takich jak CHIPSEC może poprawić bezpieczeństwo, ale żaden system nie może być całkowicie bezpieczny, a procedury te nie mogą bronić się przed wszystkimi możliwymi atakami. Przy interpretacji wyników białej listy należy wziąć pod uwagę szereg ograniczeń:

  • mogą istnieć niestandardowe lub zastrzeżone metody pakowania obrazów, których CHIPSEC nie rozumie. Może to spowodować wykluczenie niektórych modułów, więc odpowiednie zmiany mogą zostać pominięte podczas porównywania na białej liście.
  • oprogramowanie działające na już skompromitowanym systemie można oszukać. Jeśli system jest już zagrożony, CHIPSEC i podobne oprogramowanie mogą nie generować wiarygodnych wskaźników.

podsumowanie

zdolność CHIPSEC do generowania białych list zapewnia metodę walidacji łańcucha dostaw oprogramowania układowego. Producenci mogą wykorzystać te narzędzia, aby pomóc użytkownikom w weryfikacji oficjalnych wersji oprogramowania układowego, a administratorzy IT mogą generować białe listy dla audytów wewnętrznych na podstawie zaufanych obrazów.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.