Linux 5.4 ядросы ядроның ішкі бөліктеріне түбірлік қатынасты шектеу үшін патчтарды алды

Линус Торвальдс қабылдады Linux 5.4 ядросының алдағы шығарылымына енгізілген патчтар жиынтығы »құлыптау« ұсынылды Дэвид Хоуэллс (Қызыл қалпақ) және Мэттью Гарретт (Мэттью Гаррет, Google-да жұмыс істейді) түбірлік пайдаланушының ядроға қатынасын шектеу үшін. Құлыптауға қатысты функция қосымша жүктелген LSM модуліне кіреді (Linux қауіпсіздік модулі), ол UID 0 мен ядро ​​арасында тосқауыл қояды, белгілі бір төмен деңгейлі функционалдылықты шектейді.

Егер шабуылдаушы түбірлік құқықтармен кодты орындауға қол жеткізсе, ол ядро ​​деңгейінде өз кодын орындай алады, мысалы, kexec көмегімен ядроны ауыстыру немесе /dev/kmem арқылы жадты оқу/жазу арқылы. Мұндай қызметтің ең айқын салдары болуы мүмкін айналма жол UEFI Secure Boot немесе ядро ​​деңгейінде сақталған құпия деректерді алу.

Бастапқыда түбірлік шектеу функциялары тексерілген жүктеуді қорғауды күшейту аясында әзірленді және дистрибутивтер біршама уақыт бойы UEFI Secure Boot бағдарламасын айналып өтуді блоктау үшін үшінші тарап патчтарын пайдаланып келеді. Сонымен қатар, мұндай шектеулер ядроның негізгі құрамына кірмеді келіспеушіліктер оларды жүзеге асыруда және қолданыстағы жүйелердің бұзылуынан қорқу. «Құлыптау» модулі UEFI Secure Boot бағдарламасына қосылмаған бөлек ішкі жүйе түрінде қайта өңделген дистрибутивтерде бұрыннан қолданылған патчтарды сіңірді.

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

Әдепкі бойынша құлыптау модулі белсенді емес, ол SECURITY_LOCKDOWN_LSM опциясы kconfig ішінде көрсетілген кезде құрастырылады және ядро ​​параметрі “lockdown=”, “/sys/kernel/security/lockdown” басқару файлы немесе құрастыру опциялары арқылы іске қосылады. LOCK_DOWN_ERNEL_FORCE_*, ол «тұтастық» және «құпиялылық» мәндерін қабылдай алады. Бірінші жағдайда пайдаланушы кеңістігінен жұмыс істеп тұрған ядроға өзгертулер енгізуге мүмкіндік беретін мүмкіндіктер бұғатталған, ал екінші жағдайда ядродан құпия ақпаратты алу үшін пайдалануға болатын функциялар да өшіріледі.

Құлыптау тек ядроға стандартты қол жеткізуді шектейтінін, бірақ осалдықтарды пайдалану нәтижесіндегі өзгертулерден қорғамайтынын ескеру маңызды. Openwall жобасы эксплойттарды пайдаланған кезде іске қосылған ядродағы өзгерістерді блоктау үшін дамиды бөлек модуль LKRG (Linux Kernel Runtime Guard).

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

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