El nucli de Linux 5.4 va rebre pedaços per restringir l'accés root als components interns del nucli

Linus Torvalds acceptat inclòs al proper llançament del nucli Linux 5.4 hi ha un conjunt de pedaços "tancament«, proposat David Howells (Red Hat) i Matthew Garrett (Matthew Garrett, funciona a Google) per restringir l'accés de l'usuari root al nucli. La funcionalitat relacionada amb el bloqueig s'inclou en un mòdul LSM carregat opcionalment (Mòdul de seguretat de Linux), que posa una barrera entre l'UID 0 i el nucli, restringint determinades funcionalitats de baix nivell.

Si un atacant aconsegueix l'execució de codi amb drets d'arrel, pot executar el seu codi a nivell del nucli, per exemple, substituint el nucli mitjançant kexec o memòria de lectura/escriptura mitjançant /dev/kmem. La conseqüència més òbvia d'aquesta activitat pot ser desviament UEFI Secure Boot o recuperació de dades sensibles emmagatzemades al nivell del nucli.

Inicialment, les funcions de restricció d'arrel es van desenvolupar en el context d'enfortir la protecció de l'arrencada verificada, i les distribucions han estat utilitzant pedaços de tercers per bloquejar l'evitació de l'arrencada segura UEFI durant força temps. Al mateix temps, aquestes restriccions no es van incloure a la composició principal del nucli a causa de desacords en la seva implementació i els temors a la interrupció dels sistemes existents. El mòdul de "bloqueig" va absorbir pegats que ja s'utilitzaven a les distribucions, que es van redissenyar en forma d'un subsistema independent no vinculat a l'arrencada segura UEFI.

El mode de bloqueig restringeix l'accés a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes mode debug, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), algunes interfícies ACPI i CPU Els registres MSR, les trucades kexec_file i kexec_load estan bloquejades, el mode de repòs està prohibit, l'ús de DMA per a dispositius PCI està limitat, la importació de codi ACPI des de variables EFI està prohibida,
No es permeten manipulacions amb ports d'E/S, inclòs el canvi del número d'interrupció i el port d'E/S del port sèrie.

Per defecte, el mòdul de bloqueig no està actiu, es construeix quan s'especifica l'opció SECURITY_LOCKDOWN_LSM a kconfig i s'activa mitjançant el paràmetre del nucli "lockdown=", el fitxer de control "/sys/kernel/security/lockdown" o les opcions de muntatge. LOCK_DOWN_KERNEL_FORCE_*, que pot prendre els valors "integritat" i "confidencialitat". En el primer cas, es bloquegen les funcions que permeten fer canvis al nucli en execució des de l'espai d'usuari, i en el segon cas, també es desactiva la funcionalitat que es pot utilitzar per extreure informació sensible del nucli.

És important tenir en compte que el bloqueig només limita l'accés estàndard al nucli, però no protegeix contra modificacions com a resultat de l'explotació de vulnerabilitats. Per bloquejar els canvis al nucli en execució quan el projecte Openwall utilitza exploits s'està desenvolupant mòdul separat LKRG (Guàrdia d'execució del nucli de Linux).

Font: opennet.ru

Afegeix comentari