Metodes, kā atspējot Ubuntu bloķēšanas drošību, lai attālināti apietu UEFI drošo sāknēšanu

Andrejs Konovalovs no Google publicēti veids, kā attālināti atspējot aizsardzību Slēgtspiedāvāts Linux kodola pakotnē, kas piegādāts kopā ar Ubuntu (teorētiski ieteiktās metodes būt strādāt ar Fedora kodolu un citiem izplatījumiem, taču tie netiek pārbaudīti).

Bloķēšana ierobežo root lietotāja piekļuvi kodolam un bloķē UEFI Secure Boot apiešanas ceļus. Piemēram, bloķēšanas režīmā piekļuve /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes atkļūdošanas režīms, mmiotrace, tracefs, BPF, PCMCIA CIS (kartes informācijas struktūra), daži saskarnes ir ierobežotas CPU ACPI un MSR reģistri, izsaukumi uz kexec_file un kexec_load ir bloķēti, miega režīms ir aizliegts, DMA lietošana PCI ierīcēm ir ierobežota, ACPI koda imports no EFI mainīgajiem ir aizliegts, manipulācijas ar I/O portiem nav atļauts, tostarp mainīt pārtraukuma numuru un I/O portu seriālajam portam.

Bloķēšanas mehānisms nesen tika pievienots galvenajam Linux kodolam 5.4, bet izplatījumos piegādātajos kodolos tas joprojām ir ieviests ielāpu veidā vai papildināts ar ielāpiem. Viena no atšķirībām starp izplatīšanas komplektos sniegtajiem papildinājumiem un kodolā iebūvēto ieviešanu ir iespēja atspējot nodrošināto bloķēšanu, ja jums ir fiziska piekļuve sistēmai.

Ubuntu un Fedora tiek nodrošināta taustiņu kombinācija Alt+SysRq+X, lai atspējotu bloķēšanu. Tiek saprasts, ka kombināciju Alt+SysRq+X var izmantot tikai ar fizisku piekļuvi ierīcei, un attālinātas uzlaušanas un root piekļuves iegūšanas gadījumā uzbrucējs nevarēs atspējot Lockdown un, piemēram, ielādēt modulis ar rootkit, kas nav digitāli parakstīts kodolā.

Andrejs Konovalovs parādīja, ka uz tastatūras balstītas metodes lietotāja fiziskās klātbūtnes apstiprināšanai ir neefektīvas. Vienkāršākais veids, kā atspējot bloķēšanu, būtu programmatiski simulācija nospiežot Alt+SysRq+X, izmantojot /dev/uinput, taču šī opcija sākotnēji ir bloķēta. Tajā pašā laikā bija iespējams identificēt vēl vismaz divas aizvietošanas metodes Alt+SysRq+X.

Pirmā metode ietver saskarnes “sysrq-trigger” izmantošanu — lai to simulētu, vienkārši iespējojiet šo saskarni, ierakstot “1” mapē /proc/sys/kernel/sysrq un pēc tam ierakstiet “x” uz /proc/sysrq-trigger. Teica nepilnības likvidēta decembra Ubuntu kodola atjauninājumā un Fedora 31. Jāatzīmē, ka izstrādātāji, tāpat kā /dev/uinput gadījumā, sākotnēji centās bloķēt šo metodi, bet bloķēšana nedarbojās, jo Kļūdas kodā.

Otrā metode ietver tastatūras emulāciju, izmantojot USB/IP un pēc tam no virtuālās tastatūras nosūtot secību Alt+SysRq+X. Kopā ar Ubuntu piegādātais USB/IP kodols ir iespējots pēc noklusējuma (CONFIG_USBIP_VHCI_HCD=m un CONFIG_USBIP_CORE=m) un nodrošina darbībai nepieciešamos usbip_core un vhci_hcd moduļus ar ciparparakstu. Uzbrucējs var izveidot virtuālā USB ierīce, palaists tīkla apdarinātājs atpakaļcilpas interfeisā un pievieno to kā attālo USB ierīci, izmantojot USB/IP. Par norādīto metodi ziņots Ubuntu izstrādātājiem, taču labojums vēl nav izlaists.

Avots: opennet.ru

Pievieno komentāru