Metodes om toesluitsekuriteit in Ubuntu te deaktiveer om UEFI Secure Boot op afstand te omseil

Andrey Konovalov van Google опубликовал manier om beskerming op afstand uit te skakel Lockdownaangebied in die Linux-kernpakket wat saam met Ubuntu voorsien word (teoreties die voorgestelde metodes het werk met die kern van Fedora en ander verspreidings, maar dit is nie getoets nie).

Lockdown beperk worteltoegang tot die kern en blokkeer UEFI Secure Boot-omleidingspaaie. Byvoorbeeld, afsluitmodus beperk toegang tot /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, debug mode kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), sommige koppelvlakke CPU ACPI- en MSR-registers, blokkeer kexec_file- en kexec_load-oproepe, verbied slaapmodus, beperk die gebruik van DMA vir PCI-toestelle, verbied die invoer van ACPI-kode vanaf EFI-veranderlikes, laat nie manipulasies met I/O-poorte toe nie, insluitend die verandering van die onderbrekingsnommer en 'n I/O-poort vir die seriële poort.

Die Lockdown-meganisme is onlangs by die kern van die Linux-kern gevoeg. 5.4, maar dit word steeds geïmplementeer in die vorm van kolle of aangevul met kolle in die pitte wat met verspreidings voorsien word. Een van die verskille tussen byvoegings wat in verspreidings verskaf word en die implementering wat in die kern ingebou is, is die vermoë om die verskafde slot te deaktiveer wanneer daar fisiese toegang tot die stelsel is.

In Ubuntu en Fedora word die sleutelkombinasie Alt+SysRq+X verskaf om Lockdown te deaktiveer. Dit word verstaan ​​dat die Alt+SysRq+X-kombinasie slegs met fisieke toegang tot die toestel gebruik kan word, en in die geval van afgeleë inbraak en die verkryging van worteltoegang, sal die aanvaller nie Lockdown kan deaktiveer nie en, byvoorbeeld, 'n ongetekende module met 'n rootkit in die kern.

Andrey Konovalov het gewys dat sleutelbordgebaseerde metodes om die gebruiker se fisiese teenwoordigheid te bevestig ondoeltreffend is. Die maklikste manier om Lockdown te deaktiveer, is programmaties simulasie druk Alt+SysRq+X via /dev/uinput, maar hierdie opsie is by verstek gedeaktiveer. Terselfdertyd het ons daarin geslaag om ten minste nog twee maniere te identifiseer om Alt + SysRq + X te vervang.

Die eerste metode behels die gebruik van die "sysrq-trigger"-koppelvlak - vir simulasie is dit genoeg om hierdie koppelvlak te aktiveer deur "1" te skryf na /proc/sys/kernel/sysrq, en dan "x" te skryf na /proc/sysrq- sneller. Gespesifiseerde skuiwergat uitgeskakel in die Desember-opdatering van die Ubuntu-kern en in Fedora 31. Dit is opmerklik dat ontwikkelaars, soos in die geval van /dev/uinput, aanvanklik probeer om blokkeer gegewe metode, maar blokkering het nie gewerk nie as gevolg van Foute in kode.

Die tweede metode hou verband met sleutelbordemulasie deur USB/IP en stuur dan die Alt+SysRq+X-volgorde vanaf die virtuele sleutelbord. Die USB/IP-kern wat saam met Ubuntu gestuur word, is by verstek geaktiveer (CONFIG_USBIP_VHCI_HCD=m en CONFIG_USBIP_CORE=m) en verskaf die usbip_core en vhci_hcd digitaal ondertekende modules wat nodig is vir werking. Die aanvaller kan te skep virtuele USB-toestel, hardloop netwerkhanteerder op die teruglus-koppelvlak en koppel dit as 'n afgeleë USB-toestel met USB/IP. Oor genoemde metode gerapporteer Ubuntu-ontwikkelaars, maar geen oplossing is nog vrygestel nie.

Bron: opennet.ru

Voeg 'n opmerking