Metodai, kaip išjungti Ubuntu blokavimo apsaugą, kad būtų galima nuotoliniu būdu apeiti UEFI saugų įkrovą

Andrejus Konovalovas iš „Google“. paskelbti būdas nuotoliniu būdu išjungti apsaugą Izoliacijasiūloma „Linux“ branduolio pakete, pristatytame kartu su Ubuntu (teoriškai siūlomi metodai turėti dirbti su Fedora ir kitų platinimų branduoliu, tačiau jie nėra išbandyti).

Užrakinimas riboja root vartotojo prieigą prie branduolio ir blokuoja UEFI saugaus įkrovos apėjimo kelius. Pavyzdžiui, užrakinimo režimu prieiga prie /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes derinimo režimas, mmiotrace, tracefs, BPF, PCMCIA CIS (kortelės informacijos struktūra), kai kurios sąsajos yra apribotos procesoriaus ACPI ir MSR registrai, blokuojami skambučiai į kexec_file ir kexec_load, draudžiamas miego režimas, ribojamas DMA naudojimas PCI įrenginiams, draudžiamas ACPI kodo importas iš EFI kintamųjų, manipuliacijos su I/O prievadais neleidžiamos leidžiama, įskaitant pertraukimo numerio ir nuosekliojo prievado įvesties / išvesties prievado keitimą.

Užrakinimo mechanizmas neseniai buvo pridėtas prie pagrindinio Linux branduolio 5.4, tačiau distribucijose tiekiamuose branduoliuose jis vis dar yra įdiegtas pataisų pavidalu arba papildytas pataisomis. Vienas iš skirtumų tarp platinimo rinkiniuose pateiktų priedų ir branduolyje įmontuoto diegimo yra galimybė išjungti pateiktą užrakinimą, jei turite fizinę prieigą prie sistemos.

„Ubuntu“ ir „Fedora“ klavišų kombinacija „Alt“ + „SysRq“ + X yra skirta išjungti „Lockdown“. Suprantama, kad kombinaciją Alt+SysRq+X galima naudoti tik turint fizinę prieigą prie įrenginio, o nuotolinio įsilaužimo ir root prieigos gavimo atveju užpuolikas negalės išjungti Lockdown ir, pavyzdžiui, įkelti modulis su rootkit, kuris nėra skaitmeniniu būdu pasirašytas branduolyje.

Andrejus Konovalovas parodė, kad klaviatūra pagrįsti vartotojo fizinio buvimo patvirtinimo metodai yra neveiksmingi. Paprasčiausias būdas išjungti užrakinimą būtų programiškai modeliavimas paspausdami Alt + SysRq + X per /dev/uinput, tačiau ši parinktis iš pradžių užblokuota. Tuo pačiu metu buvo galima nustatyti dar bent du pakeitimo būdus Alt+SysRq+X.

Pirmasis metodas apima sąsajos „sysrq-trigger“ naudojimą – norėdami ją imituoti, tiesiog įjunkite šią sąsają, įrašydami „1“ į /proc/sys/kernel/sysrq, o tada į /proc/sysrq-trigger įrašykite „x“. Sakė spraga pašalinta gruodžio mėnesio Ubuntu branduolio atnaujinime ir Fedora 31. Pastebėtina, kad kūrėjai, kaip ir /dev/uinput atveju, iš pradžių bandė blokuoti šį metodą, bet blokavimas neveikė dėl Klaidos kode.

Antrasis metodas apima klaviatūros emuliaciją per USB/IP tada iš virtualios klaviatūros siunčiama seka Alt+SysRq+X. USB/IP branduolys, tiekiamas kartu su Ubuntu, yra įjungtas pagal numatytuosius nustatymus (CONFIG_USBIP_VHCI_HCD=m ir CONFIG_USBIP_CORE=m) ir suteikia darbui reikalingus skaitmeniniu būdu pasirašytus usbip_core ir vhci_hcd modulius. Užpuolikas gali sukurti virtualus USB įrenginys, paleistas tinklo tvarkyklę atgalinio ryšio sąsajoje ir prijungdami jį kaip nuotolinį USB įrenginį naudodami USB/IP. Apie nurodytą metodą pranešė Ubuntu kūrėjams, tačiau pataisymas dar nebuvo išleistas.

Šaltinis: opennet.ru

Добавить комментарий