kernel_lockdown(7) Miscellaneous Information Manual kernel_lockdown(7)

kernel_lockdown - funkcja uniemożliwiająca dostęp do obrazu jądra

Funkcja Kernel Lockdown (blokada jądra) uniemożliwia uzyskanie bezpośredniego i pośredniego dostępu do obrazu działającego jądra, co zapobiega nieautoryzowanej modyfikacji obrazu jądra oraz przeciwdziała dostępowi do danych związanych z bezpieczeństwem i kryptografią umieszczonych w pamięci jądra, zachowując przy tym możliwość ładowania modułów sterowników.

Przy dostępie do lub użyciu zabronionej lub ograniczonej funkcji, jądro wygeneruje komunikat o treści zbliżonej do poniższej:


Lockdown: X: Y is restricted, see man kernel_lockdown.7

gdzie X oznacza nazwę procesu, a Y wskazuje na to, co jest ograniczone.

Na komputerach x86 korzystających z EFI oraz na arm64, blokada jądra zostanie automatycznie włączona, gdy rozruch systemu nastąpi w trybie EFI Secure Boot (bezpiecznego rozruchu).

Gdy działa blokada jądra, wiele funkcji jest wyłączonych lub działa w ograniczonym trybie. Obejmuje to specjalne pliki urządzeń oraz usługi jądra, które pozwalają na bezpośredni dostęp do obrazu jądra:

/dev/mem
/dev/kmem
/dev/kcore
/dev/ioports
BPF
kprobes

oraz możliwość bezpośredniej konfiguracji i kontroli urządzeń tak, aby uniemożliwić ich wykorzystanie do dostępu lub modyfikacji obrazu jądra:

Użycie parametrów modułów, które bezpośrednio podają parametry sprzętowe sterownikom, za pomocą wiersza poleceń jądra lub przy załadowaniu modułu.
Korzystanie z bezpośredniego dostępu do BAR w PCI.
Korzystanie z instrukcji ioperm i iopl na x86.
Korzystanie z konsolowych kontrolek systemowych KD*IO.
Korzystanie z szeregowej kontrolki systemowej ioctl TIOCSSERIAL.
Modyfikacja rejestrów MSR na x86.
Zastępowanie CIS w PCMCIA.
Przesłanianie tabel ACPI.
Korzystanie z wstrzykiwania błędów ACPI.
Określanie adresów RDSP ACPI.
Korzystanie z niestandardowych metod ACPI.

Określone funkcje są ograniczone:

Załadowane mogą być jedynie prawidłowo podpisane moduły (chyba, że za ładowany plik modułu, ręczy mechanizm IMA-appraisal).
Załadowane za pomocą kexec mogą być jedynie prawidłowo podpisane pliki wykonywalne (chyba, że za mający być wykonany plik obrazu binarnego, ręczy mechanizm IMA-appraisal).
Niedozwolona jest hibernacja oraz wstrzymanie do pamięci wymiany, ponieważ wówczas obraz jądra jest zachowywany na nośnik, do którego można uzyskać dostęp.
Niedozwolone jest korzystanie z debugfs, ponieważ umożliwia on wiele działań, takich jak bezpośrednia konfiguracja, dostęp do sprzętu i kierowanie nim.
IMA wymaga dodania do zasad reguł „secure_boot”, niezależnie od tego, czy zostały one podane w wierszu polecenia; odnosi się to zasad wbudowanych i niestandardowych w trybie bezpiecznego rozruchu z blokadą jądra.

Funkcję Kernel Lockdown dodano w Linuksie 5.4.

Funkcja Kernel Lockdown jest włączana opcją CONFIG_SECURITY_LOCKDOWN_LSM. Parametr wiersza poleceń lsm=lsm1,...,lsmN kontroluje sekwencję inicjowania linuksowych modułów zabezpieczeń (Linux Security Modules). Musi zawierać łańcuch lockdown, aby włączyć funkcję Kernel Lockdown. Jeśli ten parametr wiersza poleceń nie zostanie podany, inicjowanie zapasowo skorzysta z wartości przestarzałego parametru wiersza poleceń security=, a w ostateczności z wartości CONFIG_LSM.

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.9.1