Andrey Konovalov, a partagé une méthode de désactivation du verrouillage

Andreï Konovalov Ingénieur logiciel Google, a dévoilé une méthode pour désactiver à distance la protection contre confinement proposé dans le noyau Linux fourni dans Ubuntu. Avec lequel montre que les méthodes de protection sont inefficaces, plus il mentionne également que les méthodes qu'il a divulguées en théorie devraient fonctionner avec le noyau Fedora et d'autres distributions également (mais n'ont pas été testées).

Pour ceux qui ne connaissent pas Lockdown, ils doivent savoir que c'est un composant du noyau Linux qui Sa fonction principale est de limiter l'accès de l'utilisateur root au noyau système et cette fonctionnalité a été déplacé vers le module LSM éventuellement chargé (Linux Security Module), qui établit une barrière entre l'UID 0 et le noyau, limitant certaines fonctions de bas niveau.

Cela permet à la fonction de verrouillage d'être basée sur une politique plutôt que de coder en dur une politique implicite dans le mécanisme, donc le verrou inclus dans le module de sécurité Linux fournit une implémentation avec une politique simple destiné à un usage général. Cette politique fournit un niveau de granularité contrôlable via la ligne de commande du noyau.

À propos du verrouillage

Le verrou restreint l'accès root au noyau et bloque les chemins de contournement de démarrage sécurisé UEFI.

Par exemple, en mode verrouillé, accédez à / dev / mem, / dev / kmem, / dev / port, / proc / kcore, debugfs, kprobes en mode débogage, mmiotrace, tracefs, BPF, PCMCIA CIS, entre autres, certaines interfaces sont limité ainsi que les registres ACPI et MSR de la CPU.

Alors que les appels kexec_file et kexec_load sont verrouillé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 et les manipulations avec les ports d'entrée / sortie, y compris la modification du numéro d'interruption et un I / O port pour le port série.

Comme certains le savent peut-être, le mécanisme de lockdown a été ajouté dans le noyau Linux 5.4, mais il est toujours implémenté sous forme de patchs ou complété par des patchs sur les noyaux fournis avec les distributions.

Ici, l'une des différences entre les plugins fournis dans les distributions et l'implémentation du noyau intégré est la possibilité de désactiver le verrou fourni lorsqu'il y a un accès physique au système.

Ubuntu et Fedora utilisent la combinaison de touches Alt + SysRq + X pour désactiver le verrouillage. Il est entendu que la combinaison Alt + SysRq + X il ne peut être utilisé qu'avec un accès physique à l'appareil et en cas d'attaque à distance et d'accès root, l'attaquant ne pourra pas désactiver le verrou.

Le verrouillage peut être désactivé à distance

Andrei Konovalov a prouvé que méthodes liées au clavier pour confirmant la présence physique d'un utilisateur sont inefficaces.

Il a révélé que le moyen le plus simple de désactiver le verrouillage serait de simuler presse Alt + SysRq + X à travers / dev / uinput, mais cette option est initialement bloquée.

Mais au moins deux autres façons de remplacer Alt + SysRq + X.

  • La première méthode consiste à utiliser l'interface déclencheur sysrq: Pour simuler, activez simplement cette interface en tapant "1" dans / proc / sys / noyau / sysrq puis en tapant "x" dans / proc / sysrq-trigger.
    Cet écart a été corrigé 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 / uinputIls ont d'abord essayé de bloquer cette méthode, mais le blocage n'a pas fonctionné en raison d'un bogue dans le code.
  • La deuxième méthode consiste à émuler le clavier via USB / IP, puis à envoyer la séquence Alt + SysRq + X à partir du clavier virtuel.
    Dans le noyau, USB / IP fourni par Ubuntu est activé par défaut et les modules usbip_core y vhci_hcd nécessaires sont fournis avec la signature numérique requise.
    Un attaquant peut créer un périphérique USB virtuel en exécutant un contrôleur réseau sur l'interface de bouclage et en le connectant en tant que périphérique USB distant via USB / IP.

La méthode spécifiée a été signalée aux développeurs Ubuntu, mais aucune solution n'a encore été publiée.

source: https://github.com


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.