UEFI қауіпсіз жүктеуді қашықтан айналып өту үшін Ubuntu жүйесінде блоктау қауіпсіздігін өшіру әдістері

Google компаниясынан Андрей Коновалов жарияланған қорғауды қашықтан өшіру тәсілі ҚұлыптауUbuntu-мен жеткізілетін Linux ядросы пакетінде ұсынылған (теориялық ұсынылған әдістер керек Fedora және басқа дистрибутивтердің ядросымен жұмыс істейді, бірақ олар тексерілмеген).

Құлыптау түбірлік пайдаланушының ядроға кіруін шектейді және UEFI Secure Boot айналып өту жолдарын блоктайды. Мысалы, құлыптау режимінде /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes отладка режимі, mmiotrace, tracefs, BPF, PCMCIA CIS (карта туралы ақпарат құрылымы), кейбір интерфейстер шектеулі CPU ACPI және MSR регистрлері, kexec_file және kexec_load шақырулары бұғатталған, ұйқы режиміне тыйым салынған, PCI құрылғылары үшін DMA пайдалану шектелген, EFI айнымалыларынан ACPI кодын импорттауға тыйым салынған, енгізу/шығару порттарымен манипуляциялар жоқ. үзіліс нөмірін және сериялық порт үшін енгізу/шығару портын өзгертуді қоса алғанда рұқсат етілген.

Lockdown механизмі жақында негізгі Linux ядросына қосылды 5.4, бірақ дистрибутивтерде жеткізілетін ядроларда ол әлі де патчтар түрінде орындалады немесе патчтармен толықтырылады. Тарату жинақтарында берілген қондырмалар мен ядроға енгізілген енгізу арасындағы айырмашылықтардың бірі жүйеге физикалық рұқсатыңыз болса, берілген құлыптауды өшіру мүмкіндігі болып табылады.

Ubuntu және Fedora жүйелерінде Lockdown функциясын өшіру үшін Alt+SysRq+X пернелер тіркесімі берілген. Alt+SysRq+X комбинациясын құрылғыға физикалық қол жеткізумен ғана пайдалануға болатыны түсініледі, ал қашықтан бұзу және түбірлік рұқсат алған жағдайда, шабуылдаушы Lockdown функциясын өшіре алмайды және, мысалы, жүктей алмайды. ядроға сандық түрде тіркелмеген руткит бар модуль.

Андрей Коновалов пайдаланушының физикалық қатысуын растау үшін пернетақтаға негізделген әдістер тиімсіз екенін көрсетті. Құлыптауды өшірудің ең қарапайым жолы бағдарламалы түрде болады симуляция /dev/uinput арқылы Alt+SysRq+X пернелерін басыңыз, бірақ бұл опция бастапқыда блокталады. Бұл ретте Alt+SysRq+X алмастырудың кем дегенде тағы екі әдісін анықтауға мүмкіндік туды.

Бірінші әдіс «sysrq-trigger» интерфейсін пайдалануды қамтиды – оны модельдеу үшін, /proc/sys/kernel/sysrq ішіне «1» жазу арқылы осы интерфейсті қосыңыз, содан кейін /proc/sysrq-trigger ішіне «x» деп жазыңыз. Тесік деді жойылды желтоқсандағы Ubuntu ядросының жаңартуында және Fedora 31. Айта кету керек, әзірлеушілер, /dev/uinput жағдайындағы сияқты, бастапқыда тырысты бұл әдісті блоктайды, бірақ бұғаттау осыған байланысты жұмыс істемеді қателер кодта.

Екінші әдіс пернетақта эмуляциясын қамтиды USB/IP содан кейін виртуалды пернетақтадан Alt+SysRq+X тізбегін жіберу. Ubuntu жүйесімен бірге жеткізілген USB/IP ядросы әдепкі бойынша қосылады (CONFIG_USBIP_VHCI_HCD=m және CONFIG_USBIP_CORE=m) және жұмыс істеу үшін қажетті сандық қол қойылған usbip_core және vhci_hcd модульдерін қамтамасыз етеді. Шабуылдаушы мүмкін жасау виртуалды USB құрылғысы, іске қосылды кері байланыс интерфейсіндегі желі өңдегіші және оны USB/IP арқылы қашықтағы USB құрылғысы ретінде қосу. Көрсетілген әдіс туралы хабарлады Ubuntu әзірлеушілеріне, бірақ түзету әлі шығарылған жоқ.

Ақпарат көзі: opennet.ru

пікір қалдыру