Metoder för att inaktivera låsningssäkerhet i Ubuntu för att kringgå UEFI Secure Boot på distans

Andrey Konovalov från Google publicerade sätt att fjärrinaktivera skyddet Fast kameraerbjuds i Linux-kärnpaketet som levereras med Ubuntu (tekniker som teoretiskt föreslagits har arbeta med kärnan i Fedora och andra distributioner, men de är inte testade).

Lockdown begränsar root-användarens åtkomst till kärnan och blockerar UEFI Secure Boot-bypass-vägar. Till exempel, i låst läge, åtkomst till /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (kortinformationsstruktur), vissa gränssnitt är begränsade ACPI- och MSR-register för CPU:n, anrop till kexec_file och kexec_load är blockerade, viloläge är förbjudet, DMA-användning för PCI-enheter är begränsad, import av ACPI-kod från EFI-variabler är förbjuden, manipulationer med I/O-portar är inte tillåtet, inklusive ändring av avbrottsnumret och I/O-porten för serieporten.

Lockdown-mekanismen lades nyligen till i Linux-huvudkärnan 5.4, men i kärnorna som tillhandahålls i distributioner är det fortfarande implementerat i form av patchar eller kompletterat med patchar. En av skillnaderna mellan tilläggen som tillhandahålls i distributionspaket och implementeringen inbyggd i kärnan är möjligheten att inaktivera den medföljande låsningen om du har fysisk åtkomst till systemet.

I Ubuntu och Fedora tillhandahålls tangentkombinationen Alt+SysRq+X för att inaktivera Lockdown. Det är underförstått att kombinationen Alt+SysRq+X endast kan användas med fysisk åtkomst till enheten, och i fallet med fjärrhackning och root-åtkomst kommer angriparen inte att kunna inaktivera Lockdown och till exempel ladda en modul med ett rootkit som inte är digitalt inloggat i kärnan.

Andrey Konovalov visade att tangentbordsbaserade metoder för att bekräfta användarens fysiska närvaro är ineffektiva. Det enklaste sättet att inaktivera Lockdown skulle vara att programmera simulering tryck på Alt+SysRq+X via /dev/uinput, men det här alternativet är initialt blockerat. Samtidigt var det möjligt att identifiera minst två ytterligare metoder för substitution Alt+SysRq+X.

Den första metoden involverar att använda "sysrq-trigger"-gränssnittet - för att simulera det, aktivera bara det här gränssnittet genom att skriva "1" till /proc/sys/kernel/sysrq och skriv sedan "x" till /proc/sysrq-trigger. Sagt kryphål utslagen i December Ubuntu kärnuppdatering och i Fedora 31. Det är anmärkningsvärt att utvecklarna, som i fallet med /dev/uinput, initialt försökte blockera denna metod, men blockeringen fungerade inte pga Fel i kod.

Den andra metoden involverar tangentbordsemulering via USB/IP och skicka sedan sekvensen Alt+SysRq+X från det virtuella tangentbordet. USB/IP-kärnan som levereras med Ubuntu är aktiverad som standard (CONFIG_USBIP_VHCI_HCD=m och CONFIG_USBIP_CORE=m) och tillhandahåller de digitalt signerade usbip_core- och vhci_hcd-modulerna som krävs för drift. Angriparen kan skapa virtuell USB-enhet, lanseras nätverkshanterare på loopback-gränssnittet och ansluta den som en fjärransluten USB-enhet med USB/IP. Om den angivna metoden rapporterad till Ubuntu-utvecklare, men en fix har ännu inte släppts.

Källa: opennet.ru

Lägg en kommentar