Do jádra Linux 5.4 byly přijaty patche k omezení přístupu roota k vnitřnostem jádra.

Linus Torvalds přijal Do budoucí verze jádra Linux 5.4 byl přidán soubor patchů „lockdown«, navržený Davidem Howells, pracujícím v Red Hat, a Matthew Garrettem (Matthew Garrett,pracujícím v Googlu) za účelem omezení přístupu uživatele root k jádru. Funkčnost související s „lockdown“ byla převedena do volitelně načítatelného modulu LSM (Linux Security Module), který vytváří bariéru mezi UID 0 a jádrem, čímž omezuje určitou nízkoúrovňovou funkčnost.

Pokud útočník v důsledku útoku získá vykonávání kódu s právy roota, může provést svůj kód i na úrovni jádra, například prostřednictvím výměny jádra pomocí kexec nebo čtení/zápisu do paměti přes /dev/kmem. Nejzřetelnějším důsledkem takové aktivity může být obejití UEFI Secure Boot nebo extrakce citlivých dat uložených na úrovni jádra.

Původně se funkce omezení roota vyvíjely v kontextu posílení ochrany ověřeného spouštění a distribuce již delší dobu používají externí patche k blokaci obcházení UEFI Secure Boot. Současně se však do hlavního jádra podobná omezení nezahrnovala kvůli názorovým neshodám v jejich implementaci a obavám o narušení stávajících systémů. Modul „lockdown“ zahrnul již používané patche v distribucích, které byly přepracovány jako samostatný subsystém, nezávislý na UEFI Secure Boot.

V režimu lockdown je omezen přístup k /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, ladicímu režimu kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (struktura informací o kartě), některým rozhraním ACPI a MSR registrům CPU, jsou blokovány volání kexec_file a kexec_load, zákaz přechodu do spánkového režimu, omezení používání DMA pro PCI zařízení, je zakázán import kódu ACPI z proměnných EFI,
je zakázáno manipulovat s porty vstupu/výstupu, včetně změny čísla přerušení a portu vstupu/výstupu pro sériový port.

Modul lockdown je ve výchozím nastavení neaktivní, kompiluje se při zadání možnosti v kconfig SECURITY_LOCKDOWN_LSM a aktivuje se přes parametr jádra „lockdown=“, řídící soubor „/sys/kernel/security/lockdown“ nebo kompilovací možnosti LOCK_DOWN_KERNEL_FORCE_*, které mohou nabývat hodnot „integrita“ a „důvěrnost“. V prvním případě jsou blokovány možnosti, které umožňují provádět změny v běžícím jádře z prostoru uživatele, a ve druhém případě je kromě toho zakázána funkcionalita, kterou lze použít k vylovení důvěrných informací z jádra.

Je důležité poznamenat, že lockdown pouze omezuje běžné možnosti přístupu k jádru, ale nechrání před modifikacemi v důsledku využití zranitelností. Pro blokování provádění změn v běžícím jádře při použití exploitů byl projekt Openwall se vyvíjí samostatného modulu LKRG (Linux Kernel Runtime Guard).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster