Metoden om Lockdown-beveiliging in Ubuntu uit te schakelen voor externe omzeiling van UEFI Secure Boot

šŸ„‡15 kwetsbaarheden in USB-drivers die worden geleverd in de Linux-kernel | ProHoster gepubliceerd methode voor externe deactivering van beveiliging Lockdown, aangeboden in het Linux-kernpakket dat met Ubuntu wordt geleverd (theoretisch voorgestelde methoden moeten kunnen ook werken met de Fedora-kern en andere distributies, maar zijn niet getest).

Lockdown beperkt de toegang van de root-gebruiker tot de kernel en blokkeert routes voor omzeiling van UEFI Secure Boot. Bijvoorbeeld, in lockdown-modus wordt de toegang tot /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, de debugmodus kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), sommige ACPI-interfaces en MSR-registers van de CPU beperkt, en worden aanroepen van kexec_file en kexec_load geblokkeerd, staat de slaapstand niet toe, wordt het gebruik van DMA voor PCI-apparaten beperkt, en is het niet toegestaan om ACPI-code te importeren uit EFI-variabelen, terwijl manipulaties met invoer-/uitvoerpoorten, inclusief het wijzigen van interruptnummers en invoer-/uitvoerpoorten voor seriƫle poorten, worden verboden.

Het Lockdown-mechanisme is recentelijk toegevoegd aan de hoofdversie van de Linux-kernel 5.4, maar in de in distributies geleverde kernels is het nog steeds geĆÆmplementeerd in de vorm van patches of aangevuld met patches. Een van de verschillen tussen de extensies die in distributies worden aangeboden en de ingebouwde implementatie in de kernel is de mogelijkheid om de aangeboden blokkering uit te schakelen bij fysiek toegang tot het systeem.

In Ubuntu en Fedora is er een toetscombinatie Alt+SysRq+X om Lockdown uit te schakelen. Verondersteld wordt dat de toetsencombinatie Alt+SysRq+X alleen kan worden gebruikt met fysieke toegang tot het apparaat, en in het geval van een externe hack en toegang tot root, de aanvaller Lockdown niet kan uitschakelen en bijvoorbeeld een niet-ondertekende digitale module met een rootkit in de kernel kan laden.

Andrey Konovalov heeft aangetoond dat methoden op basis van het gebruik van toetsenborden om fysiek aanwezigheidsbevestiging te eisen inefficiƫnt zijn. De eenvoudigste manier om Lockdown uit te schakelen zou een softwarematige simulatie van het indrukken van Alt+SysRq+X via /dev/uinput zijn, maar deze optie is in eerste instantie geblokkeerd. Daarbij zijn er minstens nog twee manieren ontdekt om Alt+SysRq+X te injecteren.

De eerste methode is gerelateerd aan het gebruik van de interface 'sysrq-trigger' - om de simulatie te activeren, is het voldoende om deze interface in te schakelen door '1' in /proc/sys/kernel/sysrq te schrijven en vervolgens 'x' in /proc/sysrq-trigger. De genoemde achterdeurtje opgelost in de december-update van de Ubuntu-kernel en in Fedora 31. Opmerkelijk is dat de ontwikkelaars, zoals in het geval van /dev/uinput, aanvankelijk probeerden deze methode te blokkeren, maar de blokkering niet werkte vanwege fouten de code.

De tweede methode is gerelateerd aan het emuleren van een toetsenbord via USB/IP en vervolgens het verzenden van de volgorde Alt+SysRq+X vanaf het virtuele toetsenbord. In de standaard meegeleverde Ubuntu-kernel is USB/IP ingeschakeld (CONFIG_USBIP_VHCI_HCD=m en CONFIG_USBIP_CORE=m) en zijn de benodigde modules usbip_core en vhci_hcd met digitale handtekening inbegrepen. Een aanvaller kan een virtueel USB-apparaat creƫren, door een netwerkhandler op de loopback-interface te starten en deze als een extern USB-apparaat aan te sluiten via USB/IP. Over de genoemde methode is gerapporteerd aan de ontwikkelaars van Ubuntu, maar er is nog geen patch uitgebracht.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster