Kernel Linux 5.4 ji bo sînorkirina gihandina root ji hundurên kernelê re pişik wergirtiye

Linus Torvalds qebûl kirin di serbestberdana dahatû ya kernel Linux 5.4 de tê de komek paçeyan heye "tecrît", pêşniyar kirin David Howells (Red Hat) û Matthew Garrett (Matthew garrett, li Google dixebite) da ku gihandina bikarhênerê root ji kernelê re sînordar bike. Fonksiyona têkildar bi kilîtkirinê di modulek LSM-ê ya vebijarkî ya barkirî de tê de heye (Modula Ewlekariya Linux), ku di navbera UID 0 û kernelê de astengiyek çêdike, hin fonksiyonên asta nizm sînordar dike.

Ger êrîşkar bi mafên root re înfazkirina kodê bi dest bixe, ew dikare koda xwe di asta kernelê de bicîh bike, mînakî, bi cîhkirina kernelê bi karanîna kexec an bîranîna xwendin/nivîsandina bi /dev/kmem. Encama herî eşkere ya çalakiya bi vî rengî dibe rêgerrok UEFI Secure Boot an wergirtina daneyên hesas ên ku di asta kernel de hatine hilanîn.

Di destpêkê de, fonksiyonên sînorkirina root di çarçoweya bihêzkirina parastina bootê verastkirî de hatin pêşve xistin, û belavkirin ji bo demek dirêj ve pêçên sêyemîn bikar tînin da ku rê li ber UEFI Secure Boot asteng bikin. Di heman demê de, qedexeyên weha di nav pêkhateya sereke ya kernelê de ji ber vê yekê nehatin girtin nakokiyên di pêkanîna wan de û tirsa têkdana pergalên heyî. Modula "girlgirtinê" pişkên ku berê di belavkirinan de hatine bikar anîn, vedihewîne, yên ku di forma bine-pergalek cihêreng de ne girêdayî Boota Ewle ya UEFI-yê ji nû ve hatine sêwirandin.

Moda girtinê ketina /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, moda debugkirina kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Struktura Agahdariya Qertê), hin navberên ACPI û CPU sînordar dike. Tomarên MSR, bangên kexec_file û kexec_load têne asteng kirin, moda xewê qedexe ye, karanîna DMA ji bo cîhazên PCI sînorkirî ye, anîna koda ACPI ji guhêrbarên EFI qedexe ye,
Manîpulasyonên bi benderên I/O re nayên destûr kirin, di nav de guheztina jimareya navberê û porta I/O ya ji bo porta rêzik.

Ji hêla xwerû ve, modula qefilandinê ne çalak e, dema ku vebijarka SECURITY_LOCKDOWN_LSM di kconfig de hatî destnîşan kirin û bi parametreya kernelê "lockdown=", pelê kontrolê "/sys/kernel/ewlehî/qefilandin" an vebijarkên kombûnê tê aktîfkirin, tê çêkirin. LOCK_DOWN_KERNEL_FORCE_*, ku dikare nirxên "yekserî" û "nepenî" bigire. Di rewşa yekem de, taybetmendiyên ku destûrê didin guheztinên ku di kernel xebitandinê de ji cîhê bikarhêner têne çêkirin têne asteng kirin, û di rewşa duyemîn de, fonksiyona ku dikare were bikar anîn ji bo derxistina agahdariya hesas ji kernelê jî neçalak e.

Girîng e ku bala xwe bidinê ku qefilandin tenê gihîştina standard a kernelê sînordar dike, lê li hember guheztinên wekî encama îstismarkirina qelsiyan naparêze. Ji bo astengkirina guhertinên kernelê yên xebitandinê dema ku îstîsmar ji hêla projeya Openwall ve têne bikar anîn pêşdikeve module cuda LKRG (Linux Kernel Runtime Guard).

Source: opennet.ru

Add a comment