Bezpieczny rozruch

Bezpieczny rozruch to funkcja ujednoliconego interfejsu UEFI ( Unified Extensible Firmware Interface ), który wymaga zweryfikowania wszystkich składników oprogramowania układowego niskiego poziomu przed załadowaniem. Podczas rozruchu system UEFI Secure Boot sprawdza podpis każdego elementu oprogramowania rozruchowego, w tym sterowniki oprogramowania układowego UEFI (znane również jako opcje ROM), aplikacje extensible Firmware Interface (EFI) oraz sterowniki systemu operacyjnego i pliki binarne. Jeśli podpisy są prawidłowe lub zaufane przez producenta oryginalnego sprzętu (OEM), rozruch maszyny i oprogramowanie układowe daje kontrolę nad systemem operacyjnym.

Składniki i proces

Bezpieczny rozruch opiera się na następujących krytycznych składnikach:

  • Klucz platformy (PK) — ustanawia zaufanie między właścicielem platformy (Microsoft) i oprogramowaniem układowym. Publiczna połowa to PKpub, a prywatna połowa to PKpriv.
  • Baza danych kluczy rejestracji kluczy (KEK) — ustanawia relację zaufania między systemem operacyjnym a oprogramowaniem układowym platformy. Publiczna połowa to KEKpub, a prywatna połowa to KEKpriv.
  • Baza danych sygnatur (db) — przechowuje skróty dla zaufanych osób podpisujących (klucze publiczne i certyfikaty) modułów oprogramowania układowego i oprogramowania autoryzowanego do interakcji z oprogramowaniem układowym platformy.
  • Odwołana baza danych sygnatur (dbx) — przechowuje odwołane skróty modułów kodu, które zostały zidentyfikowane jako złośliwe, podatne na zagrożenia, naruszone lub niezaufane. Jeśli skrót znajduje się w bazie danych podpisów i odwołanej bazie danych podpisów, odwołana baza danych podpisów ma precedens.

Na poniższej ilustracji i w procesie wyjaśniono, jak są aktualizowane następujące składniki:

Diagram przedstawiający składniki bezpiecznego rozruchu.

OEM przechowuje skróty bezpiecznego rozruchu na maszynie bezvolatile RAM (NV-RAM) w czasie produkcji.

  1. Baza danych sygnatur (db) jest wypełniana skrótami podpisujących lub obrazami aplikacji UEFI, modułów ładujących system operacyjny (takich jak moduł ładujący systemu operacyjnego firmy Microsoft lub Menedżera rozruchu) oraz zaufanych sterowników UEFI.
  2. Odwołana baza danych sygnatur (dbx) jest wypełniana skrótami modułów, które nie są już zaufane.
  3. Baza danych klucza rejestracji kluczy (KEK) jest wypełniana kluczami podpisywania, których można użyć do zaktualizowania bazy danych podpisów i odwołanych baz danych podpisów. Bazy danych można edytować za pośrednictwem aktualizacji podpisanych przy użyciu odpowiedniego klucza lub aktualizacji przez fizycznie autoryzowanego użytkownika przy użyciu menu oprogramowania układowego.
  4. Po dodaniu bazy danych db, dbx i bazy danych KEK oraz zakończeniu ostatecznej weryfikacji i testowania oprogramowania układowego OEM blokuje oprogramowanie układowe przed edycją i generuje klucz platformy (PK). Klucz PK może służyć do podpisywania aktualizacji klucza KEK lub wyłączania bezpiecznego rozruchu.

Podczas każdego etapu procesu rozruchu są obliczane skróty oprogramowania układowego, modułu ładującego, systemu operacyjnego, sterowników jądra i innych artefaktów łańcucha rozruchu oraz w porównaniu z akceptowalnymi wartościami. Oprogramowanie układowe i oprogramowanie wykryte jako niezaufane nie mogą być ładowane. W związku z tym wstrzyknięcie złośliwego oprogramowania niskiego poziomu lub ataki przed uruchomieniem złośliwego oprogramowania można zablokować.

Bezpieczny rozruch w flocie platformy Azure

Obecnie każda maszyna dołączona i wdrożona w floty obliczeniowej platformy Azure do hostowania obciążeń klientów pochodzi z podłóg fabrycznych z włączonym bezpiecznym rozruchem. Docelowe narzędzia i procesy są stosowane na każdym etapie kompilacji sprzętu i potoku integracji, aby upewnić się, że włączenie bezpiecznego rozruchu nie zostanie przywrócone przez przypadek lub przez złośliwą intencję.

Sprawdzanie, czy skróty db i dbx są poprawne, zapewnia:

  • Bootloader jest obecny w jednym z wpisów bazy danych
  • Podpis modułu ładującego rozruchu jest prawidłowy
  • Uruchamianie hosta przy użyciu zaufanego oprogramowania

Sprawdzając podpisy KEKpub i PKpub, możemy potwierdzić, że tylko zaufane strony mają uprawnienia do modyfikowania definicji oprogramowania uważanego za zaufane. Na koniec, upewniając się, że bezpieczny rozruch jest aktywny, możemy sprawdzić, czy te definicje są wymuszane.

Następne kroki

Aby dowiedzieć się więcej o tym, co robimy, aby zwiększyć integralność i bezpieczeństwo platformy, zobacz: