Killswitch Nedir?
Kernel Killswitch, bir kernel fonksiyonunun gövdesini çalıştırmadan belirli bir değeri döndürmesini sağlayan bir mekanizmadır. Bu özellik, bir güvenlik açığı ortaya çıktığında, kalıcı bir düzeltme yapılana kadar geçici bir çözüm sunmak amacıyla geliştirilmiştir. Örneğin, bir sistem yöneticisi, belirli bir fonksiyonun çağrılmasını engelleyerek, sistemin daha fazla risk altında kalmasını önleyebilir. Bu, özellikle düşük öncelikli kullanıcılar için yüksek öncelikli bir güvenlik açığına karşı etkili bir çözüm sunar.
Killswitch Nasıl Çalışır?
Kullanıcı, aşağıdaki komutu vererek bir fonksiyonu etkinleştirebilir:
echo "engage af_alg_sendmsg -1" > /sys/kernel/security/killswitch/control
Bu komut, af_alg_sendmsg() fonksiyonunu çağırdığında, herhangi bir işlem yapmadan -EPERM (Yetki Yok) döndürmesini sağlar. Böylece, sorunlu bir fonksiyonun kullanılmasını önler.
Kullanım Senaryoları
Son zamanlarda ortaya çıkan birçok kernel sorunu, genellikle yalnızca belirli kullanıcı gruplarınca kullanılan kod yollarında yer almaktadır. Örneğin, AF_ALG, ksmbd, nf_tables gibi socket aileleri çoğu kullanıcı için çalışmayı durdurmanın maliyeti, bilinen bir zayıf kernel sürümünü çalıştırmanın maliyetinden çok daha düşüktür. Bu nedenle, bu tür sorunların çözümünde Killswitch etkili bir araç olarak öne çıkmaktadır.
Killswitch’in Yapılandırması
Killswitch özelliği, CONFIG_KILLSWITCH yapılandırması ile etkinleştirilir. Bu özellik, SECURITYFS, KPROBES (ftrace desteği ile) ve FUNCTION_ERROR_INJECTION gibi diğer bazı seçeneklere bağlıdır. Killswitch, bir sistem yöneticisinin belirli bir fonksiyonu geçici olarak kapatmasına olanak tanır ve bu değişiklik her CPU'da hemen geçerlilik kazanır.
Tainting ve İlgili Durumlar
İlk başarılı etkinleştirme, TAINT_KILLSWITCH belirtecini ayarlar. Bu belirteç, disengage komutuyla kaldırılmadan sistem yeniden başlatılmadığı sürece geçerliliğini korur. Bu durum, bir kernel hatası meydana geldiğinde, Killswitch'in kullanıldığını gösterir ve geliştiricilere daha fazla bilgi verir.
Killswitch’in Riskleri ve Sınırlılıkları
Her ne kadar Killswitch güvenlik açıklarına karşı geçici bir çözüm sunsa da, dikkatli kullanılmalıdır. Seçilen fonksiyonun yan etkileri, diğer sistem bileşenleri üzerinde olumsuz etkilere yol açabilir. Örneğin, af_alg_count_tsgl() gibi bir fonksiyonun atlanması, bellek hatalarına yol açabilir. Bu nedenle, en iyi uygulama, hatalı fonksiyonun en yüksek seviyeli giriş noktasını seçmektir.
Sonuç
Kernel Killswitch, özellikle kritik güvenlik açıkları için hızlı bir çözüm sunarak, sistemlerin güvenliğini artırır. Ancak, dikkatli kullanım ve doğru hedeflerin seçilmesi, potansiyel risklerin en aza indirilmesi açısından önemlidir.




