Sudo Zafiyeti ve Yalancı Çobanlar

“Sürüye kurtlar saldırdı!” diye bağırarak çıkagelmiş çoban bir gün köye. Koyunları için endişelenen köylüler toplanıp sürünün olduğu yere doğru koşmuşlar ve vardıklarında sürünün yerinde durduğunu ve ortada kurt falan olmadığını görmüşler. Çobana kızıp köye geri dönmüşler. Aradan birkaç hafta geçmiş çoban yine köyün girişinde belirmiş: “sürüye kurtlar saldırdı!”. Köylüler yine can havliyle koşmuşlar sürünün olduğu yere, sürü yine yerinde duruyormuş. Çobanın canı sıkılmış yine. Haftalar sonra, sürüye kurtlar gerçekten saldırdığında çoban bu sefer köylüleri bir türlü ikna edememiş kurtların sürüye gerçekten saldırdığına. 


Bu hikâyeyi hepimiz biliriz, son günlerde ortaya çıkan “Sudo zafiyeti” çığırtkanları bana nedense bunu hatırlattı. Her gün yeni bir güvenlik zafiyeti çıkıyor, bunların bir kısmı oldukça önemliyken bir bölümü göründüğü kadar tehlikeli olmayabiliyor. Çıkan zafiyetlerin ve siber saldırıların satış argümanı olarak kullanılması yalancı çoban hikayesinde olduğu gibi gerçekten önemli bir gelişme olduğunda bunun gözden kaçırılmasına neden olabilir. 

2 gündür “haber” ve “siber güvenlik uzmanları” tarafından dillendirilen SUDO zafiyeti konusunda ne sibersavascephesi.com’da bir yazı ne de gerçekten kritik zafiyetlerde yaptığımız gibi bir acil duyuru yayımladık.  Yoksa yavaşladık mı? Veya sizin güvenliğinizi eskisi kadar dert etmiyor muyuz? Kesinlikle hayır, sadece paniklemeye gerek olmadığına karar verip durduk yere ajitasyon yapıp sizi meşgul etmek istemedik. 

Nedenini anlamak için gelin zafiyeti birlikte inceleyelim ve herhangi bir zafiyet duyurusuyla karşılaştığımızda nelere bakmamız gerektiğini ortaya koyalım. 

CVE-2019-14287 numarası verilen zafiyet “Root dışında herhangi bir kullanıcı olarak komut çalıştırmasına izin verilen bir kullanıcının Root kullanıcısı olarak komut çalıştırmasına imkân vermektedir” olarak özetlenebilir. 

Böyle bakınca zafiyet ürkütücü gelebilir ama gelin ayrıntılarına bakalım. 

Öncelikle bunun standart kurulumları etkilemediğini bilmek gerekiyor. Kısaca bir Linux işletim sistemini “next, next, finish” şeklinde kurduğunuzda bu açıktan etkilenmiyor. Bunu bir kenara bırakalım ve zafiyetin ortaya çıkıp istismar edilebilmesi için yapılması gerekenlere bakalım. 
Öncelikle kullanıcıya sudo komutu kullanma yetkisi verilmesi lazım. Bunun yanında kullanıcıya başka herhangi bir kullanıcı olarak komut çalıştırma yetkisi verilmesi lazım. Son olarak da bu ayar yapılırken “root” kullanıcısı hariç herhangi bir kullanıcı olarak belirtilmiş olması lazım. Evet, bu 3 ayar yapıldıysa bu kullanıcı root kullanıcısı olarak komut çalıştırabilir. 
Herhangi bir zafiyet gördüğümde kendi kendime sorduğum birkaç soru oluyor, bunlar;
  • Bu zafiyetin etkilediği sistemler ne kadar yaygın?
  • Bu zafiyetin istismar edilmesi için gerekli olan özel şartlar var mı?
  • Zafiyeti istismar edecek saldırganın teknik becerisi hangi düzeyde olmalı?
  • Zafiyet gizlilik, bütünlük ve erişilebilirlik ilkelerinden hangilerini ne derece etkiliyor?
Bu örneği ele alarak soruları yanıtlayalım. 
  • Bu zafiyetin etkilediği sistemler ne kadar yaygın? Açıkçası pek değil. Standart Linux kurulumlarını etkilemiyor. Onun dışında bir kullanıcıya root dışında herhangi bir kullanıcı olarak komut çalıştırması için izin vermeyi gerektirecek bir durum düşünemedim, sizin bildiğiniz bir senaryo varsa paylaşmanızı rica ediyorum. Bu nedenle zafiyeti “nadir görülüyor” olarak değerlendirdim. 
  • Bu zafiyetin istismar edilmesi için gerekli olan özel şartlar var mı? Evet, ciddi ama çok ciddi konfigürasyon hataları yapılarak sistemin kullanıcı güvenliğinden tamamen mahrum biçimde kurulmuş olması gerekir. 
  • Zafiyeti istismar edecek saldırganın teknik becerisi hangi düzeyde olmalı? Gerekmiyor. Herhangi bir kullanıcı olarak komut çalıştırma yetkisine sahip kullanıcısının istediği kullanıcı adını “-1” olarak belirtmesi yetiyor. 
  • Zafiyet gizlilik, bütünlük ve erişilebilirlik ilkelerinden hangilerini ne derece etkiliyor? Bu durumda evet, zafiyet sistemin tamamen ele geçirilmesine neden olabilir. Ama unutmayın, zaten sistem üzerinde ciddi seviyede erişimi ve yetkisi olan bir kullanıcının sistemi ele geçirmesi mümkün. 
Bunları düşününce bu zafiyetin önümüzdeki dönemde CTF yarışmalarında sıkça karşımıza çıkabileceğini düşünüyorum ama gerçek hayatta pek kullanılabilir görünmüyor. Yine de içinizin rahat etmesi için Linux’ta aşağıdaki komut ile sisteminizin bu açıktan etkilenip etkilenmediğini kontrol edebilirsiniz;
grep -r 'root' /etc/sudoers /etc/sudoers.d/

Muhtemelen sonuç aşağıdakine benzer bir tabloya benzeyecek: 


Sonuçlar arasında “ALL, !root” ibaresini görmüyorsanız herhangi bir sorun yaşamazsınız. Normal güncelleme ve zafiyet yönetimi döngünüzün periyodunda SUDO yazılımını güncelleyebilirsiniz. Sonuçlarda bu çıktıyı görüyorsanız ve herhangi bir nedenle bu ayarı kullanmanız gerekiyorsa acilen güncellemeniz gerekiyor. 

İşte bu nedenle “SUDO’da Kritik Zafiyet!” ve türevi ajitasyon yapanların kervanına katılmadım. Haftalık bültenimin 10.000’den fazla üyesi ve aylık ortalama 50.000 civarında blog okuyucum nazarındaki kredimi daha önemli zafiyetlere saklamayı tercih ettim.

Comments