Le noyau Linux 5.4 a reçu des correctifs pour restreindre l'accès root aux composants internes du noyau

Linus Torvalds accepté le inclus dans la prochaine version du noyau Linux 5.4 est un ensemble de correctifs "confinement«, le projet David Howells (Red Hat) et Matthew Garrett (Matthieu Garrett, travaille chez Google) pour restreindre l'accès des utilisateurs root au noyau. La fonctionnalité liée au verrouillage est incluse dans un module LSM chargé en option (Module de sécurité Linux), qui place une barrière entre l'UID 0 et le noyau, limitant certaines fonctionnalités de bas niveau.

Si un attaquant parvient à exécuter du code avec les droits root, il peut exécuter son code au niveau du noyau, par exemple en remplaçant le noyau à l'aide de kexec ou en lisant/écrivant de la mémoire via /dev/kmem. La conséquence la plus évidente d'une telle activité pourrait être deviation Démarrage sécurisé UEFI ou récupération de données sensibles stockées au niveau du noyau.

Initialement, les fonctions de restriction root ont été développées dans le contexte du renforcement de la protection du démarrage vérifié, et les distributions utilisent depuis un certain temps des correctifs tiers pour bloquer le contournement du démarrage sécurisé UEFI. Dans le même temps, ces restrictions n'étaient pas incluses dans la composition principale du noyau en raison de désaccords dans leur mise en œuvre et les craintes de perturbation des systèmes existants. Le module « verrouillage » a absorbé les correctifs déjà utilisés dans les distributions, qui ont été repensés sous la forme d'un sous-système distinct non lié au démarrage sécurisé UEFI.

Le mode de verrouillage restreint l'accès à /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), certaines interfaces ACPI et CPU Les registres MSR, les appels kexec_file et kexec_load sont bloqués, le mode veille est interdit, l'utilisation de DMA pour les périphériques PCI est limitée, l'importation de code ACPI à partir de variables EFI est interdite,
Les manipulations avec les ports d'E/S ne sont pas autorisées, y compris la modification du numéro d'interruption et du port d'E/S pour le port série.

Par défaut, le module de verrouillage n'est pas actif, il est construit lorsque l'option SECURITY_LOCKDOWN_LSM est spécifiée dans kconfig et est activée via le paramètre du noyau « lockdown= », le fichier de contrôle « /sys/kernel/security/lockdown » ou les options d'assemblage LOCK_DOWN_KERNEL_FORCE_*, qui peut prendre les valeurs « intégrité » et « confidentialité ». Dans le premier cas, les fonctionnalités permettant d'apporter des modifications au noyau en cours d'exécution à partir de l'espace utilisateur sont bloquées, et dans le second cas, les fonctionnalités pouvant être utilisées pour extraire des informations sensibles du noyau sont également désactivées.

Il est important de noter que le verrouillage limite uniquement l’accès standard au noyau, mais ne protège pas contre les modifications résultant de l’exploitation de vulnérabilités. Pour bloquer les modifications apportées au noyau en cours d'exécution lorsque des exploits sont utilisés par le projet Openwall développe module séparé LKRG (Garde d'exécution du noyau Linux).

Source: opennet.ru

Ajouter un commentaire