0. Okumadan önce
- Bu blog yazısı, Linux çekirdeği açıklarını araştırmak isteyen geleceğin zaman yolcuları için hazırlanmıştır; yeni başlayanların araştırma iş akışını öğrenmesine ve deneyimli araştırmacıların yeni teknikler edinmesine yardımcı olmayı amaçlar.
- Blog yazısı, araştırma makalesi biçimini benimsediği için, hacmi büyük olmasına rağmen kolayca taranıp bilgi çıkarılabilecek şekilde yapılandırılmıştır.
- Blog yazısını verimli okuma yöntemi olarak, genel bakış bölümünü okumak, ekranı bölerek okuyup arama yapmak, hata bölümüne atlayarak hatanın nasıl çalıştığını anlamak ve kavram kanıtı bölümünden geçerek exploit'i incelemek önerilmektedir.
1. Genel bakış
- Bu blog yazısı, nf_tables'da keşfedilen bir 0-day double-free hatasını kullanarak güçlendirilmiş Linux çekirdeklerini (ör. KernelCTF mitigasyonlu instance'lar) %93-%99 başarı oranıyla exploit etmeye yönelik yeni bir teknik tanıtmaktadır.
- Bu exploit yalnızca nf_tables etkinse ve ayrıcalıksız kullanıcı ad alanları etkin durumdaysa çalışır; kullanıcı alanından çekirdek alanını ayna gibi yansıtan KSMA (kernel-space mirroring attack) gerçekleştirir.
- Dirty Pagedirectory tekniği kullanılarak fiziksel adresler üzerinde sınırsız okuma/yazma yetkisi elde edilebilir; bu da sayfa tablosu karışıklığı yoluyla gerçekleştirilir.
2. Arka plan bilgisi
nf_tables, Linux çekirdeğinin giriş modüllerinden biridir ve iptables'ın son sürümlerinde backend olarak kullanılır.
iptables, paketlerin güvenlik duvarından geçip geçmeyeceğine karar vermek için durum makineleri ve kullanıcı tarafından belirtilen kuralları kullanan bir güvenlik duvarı aracıdır.
- Netfilter hükmü, belirli bir paketin güvenlik duvarından geçip geçmeyeceğine ilişkin Netfilter kural kümesinin kararıdır; paketi düşürme veya kabul etme gibi kararlar verir.
sk_buff yapısı ağ verilerini (ör. IP paketleri, Ethernet çerçeveleri vb.) tanımlamak için kullanılır ve sk_buff->head nesnesi gerçek paket içeriğini barındırır.
- IPv4'ün paket parçalama özelliği, bir paketin birden çok IP parçası halinde gönderilmesine olanak tanır ve Linux çekirdeği tüm parçaları aynı red-black tree içinde depolar.
GN⁺ Görüşü
- Bu blog yazısı, Linux çekirdeği açıklarını araştırmak isteyen kişiler için son derece yararlı bilgiler sunmaktadır. Özellikle nf_tables ile ilgili açıkları anlamayı ve bunların nasıl exploit edildiğini öğrenmeyi sağlar.
- Sunulan exploit tekniği, gerçek dünyadaki güvenlik araştırmalarına önemli katkı sağlayabilir ve bu tür teknikler sayesinde güvenlik uzmanları sistem açıklarını daha iyi anlayıp savunabilir.
- Ancak bu tür exploit tekniklerinin kötü niyetli amaçlarla kullanılma ihtimali de vardır; bu nedenle bunların paylaşılmasının doğurabileceği etik sorunlar da dikkate alınmalıdır.
- Linux çekirdeğinin güvenliğini güçlendirmek için topluluğun sürekli olarak açıkları bulup yamalama çalışmaları yürütmesi gerekir ve bu blog yazısı da bu çabanın bir parçası olarak görülebilir.
- Bu teknik veya benzer tekniklerle güvenlik araştırması yapılıyorsa, araştırmacılar sorumlu açıklama politikalarını izlemeli ve açıklar yaygın biçimde kötüye kullanılmadan önce yamaların dağıtılabilmesi için iş birliği yapmalıdır.
1 yorum
Hacker News görüşü
CONFIG_INIT_ON_ALLOC_DEFAULT_ONçekirdek yapılandırma değişkenine bağlı. Ayrıntılar için README.md dosyasına bakın. Bu hata 2024 Şubat'ta yamandı; Linux cihazlarınızı güncellemeniz önerilir.sysctl kernel.unprivileged_userns_clone = 1. Bu ayar Debian/Ubuntu ve Arch Linux çekirdeklerinde varsayılan durumda. Buna ihtiyacınız yoksa devre dışı bırakmanız iyi olur./boot/configveya/proc/config.gzdosyalarından kontrol edebilirsiniz.CONFIG_INIT_ON_FREE_DEFAULT_ONexploit'i engelliyor, ancak dağıtımlar bunu varsayılan olarak derlemiyor. Bu, çekirdek sertleştirmenin ne kadar önemli olduğunu gösteren iyi bir örnek.