Andrey Konovalov de la société Google méthode de désactivation à distance de la protection , proposée dans le paquet avec le noyau Linux, livré avec Ubuntu (modes théoriquement proposés fonctionner avec le noyau Fedora et d'autres distributions, mais ils n'ont pas été testés).
Le mécanisme Lockdown limite 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 lockdown, l'accès à /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, le mode de débogage kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), certaines interfaces ACPI et les registres MSR CPU, les appels kexec_file et kexec_load sont bloqués, la possibilité de passer en mode veille est interdite, l'utilisation de DMA pour les périphériques PCI est limitée, l'importation du code ACPI à partir de variables EFI est interdite, et les manipulations des ports d'entrée/sortie, y compris la modification du numéro d'interruption et du port d'entrée/sortie pour le port série, sont interdites.
Le mécanisme Lockdown a récemment été ajouté au noyau Linux , mais dans les noyaux fournis dans les distributions, il est toujours mis en œuvre sous forme de correctifs ou complété par des correctifs. L'une des différences entre les modules fournis dans les distributions et la mise en œuvre intégrée au noyau est la possibilité de désactiver le blocage fourni en ayant un accès physique au système.
Dans Ubuntu et Fedora, la combinaison de touches Alt+SysRq+X est prévue pour désactiver Lockdown. Il est entendu que la combinaison Alt+SysRq+X ne peut être utilisée que lors d'un accès physique à l'appareil, et en cas de violation à distance et d'accès root, l'attaquant ne pourra pas désactiver Lockdown et, par exemple, charger dans le noyau un module non signé avec une racine.
Andrey Konovalov a montré que les méthodes de confirmation de la présence physique de l'utilisateur liées à l'utilisation du clavier ne sont pas efficaces. La manière la plus simple de désactiver Lockdown serait une simulation logicielle la pression des touches Alt+SysRq+X via /dev/uinput, mais cette option est initialement bloquée. Il a été possible d'identifier au moins deux autres façons de substituer Alt+SysRq+X.
La première méthode est liée à l'utilisation de l'interface « sysrq-trigger » — pour simuler, il suffit d'activer cette interface en écrivant « 1 » dans /proc/sys/kernel/sysrq, puis d'écrire « x » dans /proc/sysrq-trigger. La faille indiquée a été incluse dans la mise à jour de décembre du noyau Ubuntu et dans Fedora 31. Il est notable que les développeurs, comme dans le cas de /dev/uinput, ont initialement bloquer cette méthode, mais le blocage n'a pas fonctionné en raison de dans le code.
La deuxième méthode concerne l'émulation du clavier via et l'envoi ultérieur de la séquence Alt+SysRq+X depuis un clavier virtuel. Dans le noyau USB/IP fourni avec Ubuntu, USB/IP est par défaut activé (CONFIG_USBIP_VHCI_HCD=m et CONFIG_USBIP_CORE=m) et les modules usbip_core et vhci_hcd signés numériquement sont fournis. Un attaquant peut un périphérique USB virtuel, un gestionnaire réseau sur l'interface loopback et en le connectant comme un périphérique USB distant via USB/IP. Il a été rapporté concernant cette méthode Sortie de Wine 5.1 et Wine Staging 5.1
Source : opennet.ru
