Il kernel Linux 5.4 ha ricevuto patch per limitare l'accesso root agli interni del kernel

Linus Torvalds accettato il incluso nella prossima versione del kernel Linux 5.4 c'è un insieme di patch "lockdown', proposto David Howells (Cappello Rosso) e Matthew Garrett (Matthew garrett, lavora presso Google) per limitare l'accesso dell'utente root al kernel. La funzionalità relativa al blocco è inclusa in un modulo LSM caricato opzionalmente (Modulo di sicurezza Linux), che pone una barriera tra l'UID 0 e il kernel, limitando alcune funzionalità di basso livello.

Se un utente malintenzionato riesce ad eseguire il codice con diritti di root, può eseguirlo a livello del kernel, ad esempio sostituendo il kernel utilizzando kexec o leggendo/scrivendo la memoria tramite /dev/kmem. La conseguenza più ovvia di tale attività potrebbe essere deviazione UEFI Secure Boot o recupero di dati sensibili archiviati a livello di kernel.

Inizialmente, le funzioni di restrizione root sono state sviluppate nel contesto del rafforzamento della protezione dell'avvio verificato e le distribuzioni utilizzano da tempo patch di terze parti per bloccare il bypass di UEFI Secure Boot. Allo stesso tempo, tali restrizioni non sono state incluse nella composizione principale del kernel a causa di disaccordi nella loro attuazione e nei timori di interruzione dei sistemi esistenti. Il modulo “lockdown” ha assorbito patch già utilizzate nelle distribuzioni, che sono state riprogettate sotto forma di un sottosistema separato non legato a UEFI Secure Boot.

La modalità di blocco limita l'accesso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modalità debug kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), alcune interfacce ACPI e CPU I registri MSR, le chiamate kexec_file e kexec_load sono bloccati, la modalità sospensione è vietata, l'uso di DMA per i dispositivi PCI è limitato, l'importazione del codice ACPI dalle variabili EFI è vietata,
Non sono consentite manipolazioni con le porte I/O, inclusa la modifica del numero di interrupt e della porta I/O per la porta seriale.

Per impostazione predefinita, il modulo di blocco non è attivo, viene creato quando l'opzione SECURITY_LOCKDOWN_LSM è specificata in kconfig e viene attivato tramite il parametro del kernel “lockdown=", il file di controllo "/sys/kernel/security/lockdown" o le opzioni di assembly LOCK_DOWN_KERNEL_FORCE_*, che può assumere i valori “integrità” e “riservatezza”. Nel primo caso, le funzionalità che consentono di apportare modifiche al kernel in esecuzione dallo spazio utente vengono bloccate e nel secondo caso vengono disabilitate anche le funzionalità che possono essere utilizzate per estrarre informazioni sensibili dal kernel.

È importante notare che il blocco limita solo l’accesso standard al kernel, ma non protegge dalle modifiche derivanti dallo sfruttamento delle vulnerabilità. Per bloccare le modifiche al kernel in esecuzione quando gli exploit vengono utilizzati dal progetto Openwall si sta sviluppando modulo separato LKRG (Guardia runtime del kernel Linux).

Fonte: opennet.ru

Aggiungi un commento