Methoden om Lockdown-beveiliging in Ubuntu uit te schakelen om UEFI Secure Boot op afstand te omzeilen

Andrej Konovalov van Google gepubliceerd manier om de beveiliging op afstand uit te schakelen Lockdownaangeboden in het Linux-kernelpakket dat wordt meegeleverd met Ubuntu (theoretisch voorgestelde technieken). hebben werken met de kernel van Fedora en andere distributies, maar ze zijn niet getest).

Lockdown beperkt de toegang van rootgebruikers tot de kernel en blokkeert UEFI Secure Boot-bypasspaden. In de lockdown-modus is bijvoorbeeld toegang tot /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debugging-modus, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), sommige interfaces zijn beperkt ACPI- en MSR-registers van de CPU, oproepen naar kexec_file en kexec_load zijn geblokkeerd, slaapmodus is verboden, DMA-gebruik voor PCI-apparaten is beperkt, import van ACPI-code uit EFI-variabelen is verboden, manipulaties met I/O-poorten zijn niet toegestaan toegestaan, inclusief het wijzigen van het interruptnummer en de I/O-poort voor seriële poort.

Het Lockdown-mechanisme is onlangs toegevoegd aan de belangrijkste Linux-kernel 5.4, maar in de kernels die in distributies worden meegeleverd, is het nog steeds geïmplementeerd in de vorm van patches of aangevuld met patches. Een van de verschillen tussen de add-ons die in distributiekits worden geleverd en de implementatie die in de kernel is ingebouwd, is de mogelijkheid om de meegeleverde vergrendeling uit te schakelen als je fysieke toegang tot het systeem hebt.

In Ubuntu en Fedora is de toetscombinatie Alt+SysRq+X aanwezig om Lockdown uit te schakelen. Het is duidelijk dat de combinatie Alt+SysRq+X alleen kan worden gebruikt met fysieke toegang tot het apparaat, en in het geval van hacken op afstand en het verkrijgen van root-toegang zal de aanvaller Lockdown niet kunnen uitschakelen en bijvoorbeeld een module met een rootkit die niet digitaal is aangemeld bij de kernel.

Andrej Konovalov toonde aan dat toetsenbordgebaseerde methoden om de fysieke aanwezigheid van de gebruiker te bevestigen niet effectief zijn. De eenvoudigste manier om Lockdown uit te schakelen is door programmatisch simulatie door op Alt+SysRq+X te drukken via /dev/uinput, maar deze optie is aanvankelijk geblokkeerd. Tegelijkertijd was het mogelijk om nog minstens twee substitutiemethoden Alt+SysRq+X te identificeren.

De eerste methode omvat het gebruik van de interface “sysrq-trigger” - om deze te simuleren, schakelt u deze interface in door “1” naar /proc/sys/kernel/sysrq te schrijven en vervolgens “x” naar /proc/sysrq-trigger te schrijven. Genoemde maas in de wet geëlimineerd in de Ubuntu-kernelupdate van december en in Fedora 31. Het is opmerkelijk dat de ontwikkelaars, zoals in het geval van /dev/uinput, aanvankelijk geprobeerd blokkeer deze methode, maar het blokkeren werkte niet vanwege Fouten in de code.

De tweede methode omvat toetsenbordemulatie via USB/IP en vervolgens de reeks Alt+SysRq+X verzenden vanaf het virtuele toetsenbord. De USB/IP-kernel die bij Ubuntu wordt geleverd, is standaard ingeschakeld (CONFIG_USBIP_VHCI_HCD=m en CONFIG_USBIP_CORE=m) en biedt de digitaal ondertekende usbip_core- en vhci_hcd-modules die nodig zijn voor de werking. De aanvaller kan создать virtueel USB-apparaat, gelanceerd netwerkhandler op de loopback-interface en sluit deze aan als een extern USB-apparaat via USB/IP. Over de opgegeven methode gemeld voor Ubuntu-ontwikkelaars, maar er is nog geen oplossing vrijgegeven.

Bron: opennet.ru

Voeg een reactie