Linux 5.4 çekirdeği, çekirdeğin içindekilere kök erişimini kısıtlamak için yamalar aldı

Linus Torvalds принял Linux 5.4 çekirdeğinin gelecek sürümünde bir dizi yama yer alıyor "kilitleme' önerilen David Howells (Kırmızı Şapka) ve Matthew Garrett (Matthew Garrett, Google'da çalışır) kök kullanıcının çekirdeğe erişimini kısıtlamak için kullanılır. Kilitlemeyle ilgili işlevsellik, isteğe bağlı olarak yüklenen bir LSM modülüne (Linux Güvenlik Modülü), UID 0 ile çekirdek arasına bir engel koyarak belirli düşük düzeyli işlevleri kısıtlar.

Bir saldırgan kök haklarıyla kod yürütmeyi başarırsa, örneğin kexec kullanarak çekirdeği değiştirerek veya /dev/kmem yoluyla okuma/yazma belleği kullanarak kodunu çekirdek düzeyinde çalıştırabilir. Bu tür bir faaliyetin en belirgin sonucu şu olabilir: dolambaçlı yol UEFI Güvenli Önyükleme veya çekirdek düzeyinde depolanan hassas verileri alma.

Başlangıçta, doğrulanmış önyükleme korumasının güçlendirilmesi bağlamında kök kısıtlama işlevleri geliştirildi ve dağıtımlar, uzun süredir UEFI Güvenli Önyüklemenin atlanmasını engellemek için üçüncü taraf yamaları kullanıyor. Aynı zamanda, çekirdeğin ana bileşimine bu tür kısıtlamalar dahil edilmemiştir. anlaşmazlıklar bunların uygulanmasında ve mevcut sistemlerin bozulmasından duyulan korkularda. "Kilitleme" modülü, dağıtımlarda halihazırda kullanılan ve UEFI Güvenli Önyükleme'ye bağlı olmayan ayrı bir alt sistem biçiminde yeniden tasarlanan yamaları emdi.

Kilitleme modu /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes hata ayıklama modu, mmiotrace, tracefs, BPF, PCMCIA CIS (Kart Bilgi Yapısı), bazı ACPI arayüzleri ve CPU'ya erişimi kısıtlar MSR kayıtları, kexec_file ve kexec_load çağrıları engellenir, uyku modu yasaktır, PCI cihazları için DMA kullanımı sınırlıdır, EFI değişkenlerinden ACPI kod içe aktarımı yasaktır,
Seri bağlantı noktası için kesme numarasının ve G/Ç bağlantı noktasının değiştirilmesi dahil, G/Ç bağlantı noktalarıyla manipülasyonlara izin verilmez.

Varsayılan olarak kilitleme modülü etkin değildir; kconfig'te SECURITY_LOCKDOWN_LSM seçeneği belirtildiğinde oluşturulur ve "lockdown=" çekirdek parametresi, "/sys/kernel/security/lockdown" kontrol dosyası veya derleme seçenekleri aracılığıyla etkinleştirilir. LOCK_DOWN_KERNEL_FORCE_*"dürüstlük" ve "gizlilik" değerlerini alabilen. İlk durumda, çalışan çekirdekte kullanıcı alanından değişiklik yapılmasına izin veren özellikler engellenir ve ikinci durumda, çekirdekten hassas bilgilerin çıkarılması için kullanılabilecek işlevsellik de devre dışı bırakılır.

Kilitlemenin yalnızca çekirdeğe standart erişimi sınırladığını ancak güvenlik açıklarından yararlanılması sonucunda yapılacak değişikliklere karşı koruma sağlamadığını unutmamak önemlidir. Openwall projesi tarafından istismarlar kullanıldığında çalışan çekirdekte yapılan değişiklikleri engellemek için gelişiyor ayrı modül LKRG (Linux Çekirdek Çalışma Zamanı Koruması).

Kaynak: opennet.ru

Yorum ekle