Linux 5.4 nüvəsi nüvənin daxili hissələrinə kök girişini məhdudlaşdırmaq üçün yamaqlar aldı

Linus Torvalds qəbul etdi Linux 5.4 nüvəsinin qarşıdan gələn buraxılışına daxil edilmiş yamaqlar dəsti "Kilitle", təklif etdi David Howells (Qırmızı Papaq) və Metyu Qarret (Metyu qarret, Google-da işləyir) kök istifadəçinin nüvəyə girişini məhdudlaşdırmaq üçün. Kilidlə əlaqəli funksionallıq isteğe bağlı olaraq yüklənmiş LSM moduluna daxildir (Linux Təhlükəsizlik Modulu), UID 0 ilə nüvə arasında maneə qoyur, müəyyən aşağı səviyyəli funksionallığı məhdudlaşdırır.

Təcavüzkar kodun icrasına kök hüquqları ilə nail olarsa, o, öz kodunu kernel səviyyəsində icra edə bilər, məsələn, kexec istifadə edərək nüvəni əvəz etməklə və ya /dev/kmem vasitəsilə yaddaşı oxumaq/yazmaq. Belə fəaliyyətin ən bariz nəticəsi ola bilər dolama yol UEFI Secure Boot və ya nüvə səviyyəsində saxlanılan həssas məlumatların alınması.

Başlanğıcda, kök məhdudlaşdırma funksiyaları təsdiqlənmiş yükləmənin qorunmasının gücləndirilməsi kontekstində hazırlanmışdır və paylamalar bir müddətdir ki, UEFI Secure Boot-dan yan keçməyi bloklamaq üçün üçüncü tərəf yamaqlarından istifadə edir. Eyni zamanda, belə məhdudiyyətlər səbəbiylə nüvənin əsas tərkibinə daxil edilmədi fikir ayrılıqları onların həyata keçirilməsində və mövcud sistemlərin pozulması qorxusundan. “Kilidləmə” modulu UEFI Secure Boot ilə əlaqəli olmayan ayrıca alt sistem şəklində yenidən işlənmiş paylamalarda artıq istifadə edilmiş yamaqları qəbul etdi.

Kilidləmə rejimi /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug rejimi, mmiotrace, tracefs, BPF, PCMCIA CIS (Kart Məlumat Strukturu), bəzi ACPI interfeysləri və CPU-ya girişi məhdudlaşdırır MSR registrləri, kexec_file və kexec_load zəngləri bloklanır, yuxu rejimi qadağandır, PCI cihazları üçün DMA istifadəsi məhduddur, EFI dəyişənlərindən ACPI kodunun idxalı qadağandır,
Giriş/çıxış portları ilə manipulyasiyalara icazə verilmir, o cümlədən kəsilmə nömrəsinin və seriya portu üçün I/O portunun dəyişdirilməsi.

Varsayılan olaraq, kilidləmə modulu aktiv deyil, SECURITY_LOCKDOWN_LSM seçimi kconfig-də göstərildikdə qurulur və "lockdown =" ləpə parametri, "/sys/kernel/security/lockdown" nəzarət faylı və ya montaj seçimləri vasitəsilə aktivləşdirilir. LOCK_DOWN_KERNEL_FORCE_*, "bütövlük" və "məxfilik" dəyərlərini qəbul edə bilər. Birinci halda, istifadəçi sahəsindən işləyən nüvəyə dəyişikliklər etməyə imkan verən funksiyalar bloklanır, ikinci halda isə nüvədən həssas məlumatları çıxarmaq üçün istifadə edilə bilən funksionallıq da söndürülür.

Qeyd etmək vacibdir ki, kilidləmə yalnız nüvəyə standart girişi məhdudlaşdırır, lakin zəifliklərin istismarı nəticəsində dəyişikliklərdən qorunmur. Openwall layihəsi tərəfindən istismarlar istifadə edildikdə işləyən nüvəyə edilən dəyişiklikləri bloklamaq üçün inkişaf edir ayrı modul LKRG (Linux Kernel Runtime Guard).

Mənbə: opennet.ru

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