Méthodes pour désactiver la sécurité de verrouillage dans Ubuntu pour contourner le démarrage sécurisé UEFI à distance

Andreï Konovalov de Google publié moyen de désactiver la protection à distance Lockdownproposé dans le package du noyau Linux livré avec Ubuntu (techniques théoriquement suggérées avoir fonctionnent avec le noyau de Fedora et d'autres distributions, mais ils ne sont pas testés).

Le verrouillage restreint l'accès de l'utilisateur root au noyau et bloque les chemins de contournement du démarrage sécurisé UEFI. Par exemple, en mode verrouillage, accès à /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, mode de débogage kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), certains les interfaces sont limitées. Les registres ACPI et MSR du CPU, les appels à kexec_file et kexec_load sont bloqués, le mode veille est interdit, l'utilisation du 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 le sont pas. autorisé, y compris la modification du numéro d'interruption et du port d'E/S pour le port série.

Le mécanisme de verrouillage a été récemment ajouté au noyau Linux principal 5.4, mais dans les noyaux fournis dans les distributions, il est toujours implémenté sous forme de correctifs ou complété par des correctifs. L'une des différences entre les modules complémentaires fournis dans les kits de distribution et l'implémentation intégrée au noyau est la possibilité de désactiver le verrouillage fourni si vous avez un accès physique au système.

Dans Ubuntu et Fedora, la combinaison de touches Alt+SysRq+X est fournie pour désactiver le verrouillage. Il est entendu que la combinaison Alt+SysRq+X ne peut être utilisée qu'avec un accès physique à l'appareil, et en cas de piratage à distance et d'obtention d'un accès root, l'attaquant ne pourra pas désactiver le verrouillage et, par exemple, charger un fichier. module avec un rootkit qui n'est pas connecté numériquement au noyau.

Andrey Konovalov a montré que les méthodes basées sur le clavier pour confirmer la présence physique de l'utilisateur sont inefficaces. Le moyen le plus simple de désactiver le verrouillage serait de programmer par programme simulation en appuyant sur Alt+SysRq+X via /dev/uinput, mais cette option est initialement bloquée. Dans le même temps, il a été possible d'identifier au moins deux autres méthodes de substitution Alt+SysRq+X.

La première méthode consiste à utiliser l'interface « sysrq-trigger » - pour la simuler, activez simplement cette interface en écrivant « 1 » dans /proc/sys/kernel/sysrq, puis écrivez « x » dans /proc/sysrq-trigger. Cette faille éliminé dans la mise à jour du noyau Ubuntu de décembre et dans Fedora 31. Il est à noter que les développeurs, comme dans le cas de /dev/uinput, ont initialement essayé bloquer cette méthode, mais le blocage n'a pas fonctionné à cause de Erreurs dans du code.

La deuxième méthode implique l'émulation du clavier via USB/IP puis envoi de la séquence Alt+SysRq+X depuis le clavier virtuel. Le noyau USB/IP fourni avec Ubuntu est activé par défaut (CONFIG_USBIP_VHCI_HCD=m et CONFIG_USBIP_CORE=m) et fournit les modules usbip_core et vhci_hcd signés numériquement requis pour le fonctionnement. L'attaquant peut créer périphérique USB virtuel, en courant gestionnaire de réseau sur l’interface de bouclage et en le connectant en tant que périphérique USB distant via USB/IP. À propos de la méthode spécifiée signalé aux développeurs Ubuntu, mais aucun correctif n'a encore été publié.

Source: opennet.ru

Ajouter un commentaire