Lennart Poettering zaproponował nową architekturę zweryfikowanego uruchamiania systemu Linux

Lennart Poettering opublikował propozycję modernizacji procesu uruchamiania dystrybucji systemu Linux, mając na celu rozwiązanie istniejących problemów oraz uproszczenie organizacji pełnoprawnego, zweryfikowanego uruchamiania, potwierdzającego autentyczność jądra i podstawowego środowiska systemowego. Zmiany niezbędne do wprowadzenia nowej architektury już zostały włączone do bazy kodu systemd i dotyczą komponentów, takich jak systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase i systemd-creds.

Proponowane zmiany ograniczają się do stworzenia jednego, uniwersalnego obrazu UKI (Unified Kernel Image), łączącego obraz jądra Linux, obsługę ładowania jądra z UEFI (UEFI boot stub) oraz ładowane do pamięci środowisko systemowe initrd, stosowane do wstępnej inicjalizacji na etapie przed zamontowaniem systemu plików root. Zamiast obrazu RAM-dysku initrd, w UKI można zapakować cały system, co pozwala na tworzenie w pełni zweryfikowanych środowisk systemowych, ładowanych do pamięci operacyjnej. Obraz UKI ma formę pliku wykonywalnego w formacie PE, który może być ładowany nie tylko za pomocą tradycyjnych loaderów, ale także bezpośrednio wywoływany z firmware UEFI.

Możliwość wywołania z UEFI pozwala na wykorzystanie weryfikacji integralności i autentyczności za pomocą podpisu cyfrowego, obejmującego nie tylko jądro, ale także zawartość initrd. Dodatkowo, wsparcie dla wywołania z tradycyjnych loaderów pozwala na zachowanie takich możliwości, jak dostarczanie wielu wersji jądra oraz automatyczny powrót do działającego jądra w przypadku wykrycia problemów z nowym jądrem po aktualizacji.

Obecnie w większości dystrybucji systemu Linux w trakcie inicjalizacji stosuje się łańcuch „firmware → zatwierdzona podpisem cyfrowym Microsofta warstwa shim → zatwierdzony podpisem cyfrowym dystrybucji bootloader GRUB → zatwierdzone podpisem cyfrowym dystrybucji jądro Linux → niezbadane środowisko initrd → system plików root”. Brak weryfikacji initrd w tradycyjnych dystrybucjach stwarza problemy z bezpieczeństwem, ponieważ między innymi w tym środowisku odbywa się ekstrakcja kluczy do odszyfrowania systemu plików root.

Weryfikacja obrazu initrd nie jest wspierana, ponieważ ten plik jest generowany na lokalnym systemie użytkownika i nie może być zatwierdzony cyfrowym podpisem dystrybucji, co bardzo komplikuje organizację sprawdzania przy użyciu trybu SecureBoot (aby zatwierdzić initrd, użytkownik musi wygenerować własne klucze i załadować je do firmware UEFI). Ponadto, obecna organizacja ładowania nie pozwala na wykorzystanie informacji z rejestrów TPM PCR (Platform Configuration Register) do kontrolowania integralności komponentów przestrzeni użytkownika, poza shim, grub i jądrem. Wśród istniejących problemów wspomniano również o komplikacjach związanych z aktualizacją bootloadera oraz braku możliwości ograniczenia dostępu do kluczy w TPM dla starszych wersji systemów operacyjnych, które stały się nieaktualne po zastosowaniu aktualizacji.

Główne cele wdrożenia nowej architektury ładowania:

  • Zapewnienie w pełni zweryfikowanego procesu ładowania, obejmującego wszystkie etapy od firmware do przestrzeni użytkownika, oraz potwierdzającego autentyczność i integralność ładowanych komponentów.
  • Powiązanie kontrolowanych zasobów z rejestrami TPM PCR z podziałem na właścicieli.
  • Możliwość wcześniejszego obliczenia wartości PCR na podstawie używanych podczas ładowania jądra, initrd, konfiguracji i lokalnego identyfikatora systemu.
  • Ochrona przed atakami typu Rollback, związanymi z powrotem do wcześniejszej, podatnej wersji systemu.
  • Uproszczenie i zwiększenie niezawodności aktualizacji.
  • Wsparcie aktualizacji systemu operacyjnego, które nie wymagają ponownego zastosowania ani lokalnego przygotowania zasobów zabezpieczonych przez TPM.
  • Gotowość systemu do przeprowadzenia zdalnej atestacji w celu potwierdzenia poprawności ładowanego systemu operacyjnego i ustawień.
  • Możliwość przypisania danych poufnych do określonych etapów ładowania, na przykład wydobywanie z TPM kluczy szyfrowania dla systemu plików root.
  • Zapewnienie bezpiecznego, automatycznego i działającego bez udziału użytkownika procesu odblokowywania kluczy do deszyfrowania dysku z partycją root.
  • Użycie chipów wspierających specyfikację TPM 2.0, z możliwością powrotu do systemów bez TPM.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster