Mga Paraan para Hindi Paganahin ang Lockdown Security sa Ubuntu upang Malayaan ang UEFI Secure Boot

Andrey Konovalov mula sa Google lathala paraan upang malayuang huwag paganahin ang proteksyon Lockdowninaalok sa Linux kernel package na ipinadala kasama ng Ubuntu (mga teoretikal na iminumungkahi mayroon gumana sa kernel ng Fedora at iba pang mga distribusyon, ngunit hindi sila nasubok).

Pinaghihigpitan ng Lockdown ang pag-access ng root user sa kernel at hinaharangan ang mga path ng bypass ng UEFI Secure Boot. Halimbawa, sa lockdown mode, access sa /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debugging mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), ilan ang mga interface ay limitado ang ACPI at MSR na mga rehistro ng CPU, ang mga tawag sa kexec_file at kexec_load ay naharang, ang sleep mode ay ipinagbabawal, ang paggamit ng DMA para sa mga PCI device ay limitado, ang pag-import ng ACPI code mula sa mga variable ng EFI ay ipinagbabawal, ang mga manipulasyon sa mga I/O port ay hindi pinapayagan, kabilang ang pagpapalit ng interrupt number at I/O port para sa serial port.

Ang mekanismo ng Lockdown ay idinagdag kamakailan sa pangunahing Linux kernel 5.4, ngunit sa mga kernel na ibinibigay sa mga pamamahagi ay ipinapatupad pa rin ito sa anyo ng mga patch o pupunan ng mga patch. Ang isa sa mga pagkakaiba sa pagitan ng mga add-on na ibinigay sa mga distribution kit at ang pagpapatupad na binuo sa kernel ay ang kakayahang hindi paganahin ang ibinigay na pag-lock kung mayroon kang pisikal na access sa system.

Sa Ubuntu at Fedora, ibinibigay ang key combination na Alt+SysRq+X para hindi paganahin ang Lockdown. Nauunawaan na ang kumbinasyong Alt+SysRq+X ay magagamit lamang sa pisikal na pag-access sa device, at sa kaso ng malayuang pag-hack at pagkakaroon ng root access, hindi magagawa ng attacker na i-disable ang Lockdown at, halimbawa, mag-load ng isang module na may rootkit na hindi digitally sign in sa kernel.

Ipinakita ni Andrey Konovalov na ang mga pamamaraan na nakabatay sa keyboard para sa pagkumpirma ng pisikal na presensya ng gumagamit ay hindi epektibo. Ang pinakasimpleng paraan upang hindi paganahin ang Lockdown ay ang programmatically kunwa pagpindot sa Alt+SysRq+X sa pamamagitan ng /dev/uinput, ngunit ang pagpipiliang ito ay unang na-block. Kasabay nito, posibleng matukoy ang hindi bababa sa dalawa pang paraan ng pagpapalit ng Alt+SysRq+X.

Ang unang paraan ay kinabibilangan ng paggamit ng "sysrq-trigger" na interface - upang gayahin ito, paganahin lamang ang interface na ito sa pamamagitan ng pagsulat ng "1" sa /proc/sys/kernel/sysrq, at pagkatapos ay isulat ang "x" sa /proc/sysrq-trigger. Sabi ng loophole inalis sa Disyembre Ubuntu kernel update at sa Fedora 31. Kapansin-pansin na ang mga developer, tulad ng sa kaso ng /dev/uinput, sa simula РїС ‹С‚Р ° Р» Рёі »Ѓ harangan ang pamamaraang ito, ngunit hindi gumana ang pagharang dahil sa Mga error sa code.

Ang pangalawang paraan ay nagsasangkot ng pagtulad sa keyboard sa pamamagitan ng USB/IP at pagkatapos ay ipadala ang sequence na Alt+SysRq+X mula sa virtual na keyboard. Ang USB/IP kernel na ipinadala kasama ng Ubuntu ay pinagana bilang default (CONFIG_USBIP_VHCI_HCD=m at CONFIG_USBIP_CORE=m) at nagbibigay ng digitally signed usbip_core at vhci_hcd modules na kinakailangan para sa operasyon. Ang umaatake ay maaaring upang lumikha virtual USB device, inilunsad network handler sa loopback interface at pagkonekta nito bilang remote USB device gamit ang USB/IP. Tungkol sa tinukoy na pamamaraan iniulat sa mga developer ng Ubuntu, ngunit hindi pa nailalabas ang isang pag-aayos.

Pinagmulan: opennet.ru

Magdagdag ng komento