CVE-2020-11651: SaltStack Salt Authentication Bypass Vulnerability
Zorluk Seviyesi: Orta | Kaynak: CISA KEV
Zafiyet Analizi ve Giriş
SaltStack Salt, otomasyon ve yönetim çözümleri sunan popüler bir platformdur. Bu platform, genellikle kurumsal ağlarda yapılandırma yönetimi ve uzaktan komut yürütme için kullanılır. Ancak, 2020 yılında keşfedilen CVE-2020-11651 zafiyeti, SaltStack Salt’ın temel bileşeni olan salt-master sürecindeki ClearFuncs metodunun zayıf doğrulaması nedeniyle ciddi bir güvenlik açığı oluşturmuştur. Bu zafiyet, uzaktaki kullanıcıların belirli metodlara kimlik doğrulaması olmadan erişim sağlanabilmesine yol açarak, salt-master üzerinde yetkisiz komutlar çalıştırmalarına veya kullanıcı token'larını almalarına olanak tanımaktadır.
CVE-2020-11651 zafiyetinin oluşum tarihi, 2020 yılının Mayıs ayına dayanmaktadır. Bu zafiyet, SaltStack’in çeşitli versiyonlarında bulunmakta olup, her ne kadar güncellemelerle kapatılmış olsa da, sistemlerini güncellemeyen veya zayıf güvenlik önlemleri alan kullanıcılar hala bu tehlikenin potansiyel hedefidir. Özellikle finans, sağlık ve bulut bilişim sektörlerindeki firmalar, bu tür güvenlik açıklarından etkilenme riski taşımaktadır. Bu sektörlerdeki gizli ve hassas verilerin kötü niyetli kullanıcılar tarafından ele geçirilmesi, ciddi sonuçlar doğurabilir.
Zafiyetin teknik derinliğini anlamak için, salt-master süreci içindeki ClearFuncs metodunu incelemek faydalı olacaktır. ClearFuncs metodu, istemciden gelen çağrıları yönetmekte ve bu arama işlemleri sırasında belirli güvenlik kontrolleri uygulamakta sorumludur. Ancak, bu metodun hatalı yapılandırılması ve yetersiz doğrulama mekanizmaları, kötü niyetli bir kullanıcının belirli komutları çalıştırmasına veya kullanıcı token'larını ele geçirmesine imkan tanır.
Bir senaryo üzerinden açıklamak gerekirse, bir saldırgan, iç network üzerinde bulunan SaltStack Salt altyapısına uzaktan erişim sağlayabilir. Kimlik doğrulaması gerektirmeden, doğrudan salt-master üzerinden kritik komutlar çalıştırarak, salt-minion’lara erişim sağlayabilir. Bu durum, sistem yöneticilerinin yetkisiz komutlarla sistemlerini manipüle edilmesini, veri sızıntıları yaşanmasını ve potansiyel olarak RCE (Uzak Kod Yürütme) saldırıları gerçekleştirilebilmesine neden olabilir.
Salt kullanıcılarının, bu zafiyetten etkilenmemek için alması gereken temel güvenlik önlemleri arasında, sistemlerini düzenli olarak güncellemeleri, iyi konfigüre edilmiş bir ağ güvenlik duvarı kullanmaları ve kimlik doğrulama süreçlerini sıkılaştırmaları yer almaktadır. Özellikle, salt-master ve salt-minion bileşenleri arasındaki iletişimi güvenli hale getirmek için SSL/TLS gibi protokollerin kullanılması, potansiyel kötü niyetli erişimleri azaltacaktır.
Sonuç olarak, CVE-2020-11651 zafiyeti, SaltStack Salt platformunu kullanan organizasyonlar üzerinde ciddi riskler barındırmaktadır. Güvenlik açıklarının önlenmesi için, kullanıcıların sistemlerini güncel tutmaları ve güvenlik önlemlerini artırmaları hayati öneme sahiptir.
Teknik Sömürü (Exploitation) ve PoC
SaltStack Salt, sistem yöneticilerinin uzaktan yönetim ve otomasyon işlemlerini gerçekleştirmesine olanak tanıyan popüler bir araçtır. Ancak, CVE-2020-11651 zafiyeti nedeniyle SaltStack Salt’da bir yetkilendirme atlama (authentication bypass) açığı bulunmaktadır. Bu zafiyet, saldırganların salt-master süreçlerine izinsiz erişim sağlamasına olanak tanır ve dolayısıyla, sistemin güvenliğine ciddi tehditler oluşturur.
Zafiyetin teknik detaylarına girmeden önce, saldırganların bu tür bir açığı nasıl kullanabileceğine daha yakından bakalım. Bir saldırgan, bu tür bir yetkilendirme atlama zafiyetini kullanarak salt-master'a istek gönderdiğinde, belirli methodlara erişim sağlayabilir. Bu, kullanıcı token'larını çalmaktan başlayıp, salt minion'lar üzerinde komut çalıştırmaya kadar uzanabilir.
Zafiyetin istismarına ilişkin adımları şu şekilde özetleyebiliriz:
Hedef Bilgisi Toplama: İlk adım, SaltStack uygulamasının hangi versiyonunun kullanıldığını belirlemektir. SaltStack versiyon bilgileri genellikle sistem yeniden yapılandırma sırasında veya standart bir hizmet sağlayıcısında dökümanlarda mevcut olabilir.
Vulnerable Endpoint’leri Belirleme: Zafiyetin mevcut olduğu
ClearFuncsmetoduna erişim sağlamak için hedef sistemde uygun uç noktalar tespit edilmelidir.Hedefe İstek Gönderme: Şimdi, hedef bir salt-master servisine istek göndererek yetkilendirme atlama yapılabilir. Aşağıdaki örnek, metodları çağırma ile ilgili temel bir Python kodu olabilir:
import requests
# Hedef salt-master URL'si
url = 'http://hedef_salt_master:8000/'
# İsteğin body kısmına uygun payload
data = {
'method': 'salt_function_to_access_unauthenticated',
'params': [],
'id': 'unique_id'
}
# İsteği gönderme
response = requests.post(url, json=data)
# Gelen yanıtı kontrol etme
print(response.json())
Token’ları Ele Geçirme: Eğer yanıt başarılı bir şekilde alındıysa, sistem üzerinde token'ları elde etmek mümkün olabilir. Geri dönen yanıt, örneğin kullanıcı token'larını veya belirli kullanıcı bilgilerini içerebilir. Bunu izleyerek, başka bir sisteme erişim açmak mümkün hale gelir.
Salt Minion’lar Üzerinde Komut Çalıştırma: Elde edilen bilgilerle, aşağıdaki gibi komutlar çalıştırarak, hedef sistem üzerinde yetkisiz işlemler gerçekleştirebiliriz. Örneğin, salt-minion’muz üzerinde
cmd.runmethodunu kullanarak bir komut çalıştırabiliriz:
command_data = {
'client': 'local',
'fun': 'cmd.run',
'arg': ['whoami'], # Çalıştırmak istediğimiz komut
'tgt': '*', # Hedef tüm minionlar
}
response = requests.post(url, json=command_data)
print(response.json())
Bu şekilde, bir saldırgan belirli durumları değerlendirerek SaltStack Salt üzerinde bir yetkilendirme atlama zafiyetini istismar edebilir. Bu zafiyetin etkilerinden korunmak için SaltStack kullanıcılarının güncel güvenlik önlemleri alması ve sistemlerini en son sürüme güncellemeleri büyük önem taşımaktadır.
Unutulmamalıdır ki bu tür açıklardan korunmak adına, sistem yöneticilerinin zafiyet taramaları yapması ve belirli güvenlik takip kontrolleri uygulaması gerekmektedir. Temel internet güvenliği ilkelerine uyulması, bu tür zafiyetlerden etkilenmeyi minimize etmek içindir.
Forensics (Adli Bilişim) ve Log Analizi
SaltStack Salt'daki CVE-2020-11651 zafiyeti, siber güvenlik açısından son derece önemli bir konudur. Bu açık, salt-master sürecinde bulunan ClearFuncs metodunun yetersiz doğrulaması nedeniyle ortaya çıkmaktadır. Kötü niyetli bir kullanıcı, bu zafiyeti kullanarak kimlik doğrulaması gerektirmeyen bazı metodlara erişebilir. Bu durum, saldırganın salt master üzerinden kullanıcı token'larını elde etmesine ve salt minion'lar üzerinde komut çalıştırmasına olanak tanır. Dolayısıyla, bu tür bir zafiyetin varlığı, sistemin bütünlüğünü ve kullanıcıların güvenliğini tehdit eder.
Bu tür açıkların siber saldırılara yol açması durumunda, bir siber güvenlik uzmanının dikkat etmesi gereken bazı önemli noktalar bulunmaktadır. Özellikle, SIEM (Security Information and Event Management) ve log analizi sırasında birkaç anahtar belirti ve imza aramak gerekmektedir. İlk olarak, erişim logları ve hata logları üzerinde detaylı bir inceleme yapılmalıdır. Erişim logları, kimlerin hangi kaynaklara eriştiğini gösterirken, hata logları ise sistemin ne tür hatalarla karşılaştığını ortaya koyar.
Erişim loglarında, beklenmeyen kimlik doğrulama denemeleri veya bilinmeyen kaynaklar tarafından gerçekleştirilen erişim talepleri dikkat çekici olabilir. Örneğin, bir kullanıcının salt-master'a bağlanmak için gerçekleştirdiği her girişim kaydedilir. Bu logları inceleyerek, tüm erişim taleplerinin doğruluğu ve kimlik bilgileri kontrol edilmelidir. Örneğin, aşağıdaki gibi bir log girişi zararlı bir girişim olabilir:
2023-10-23 12:34:56 | ERROR | Invalid authentication for user 'unknown_user' from IP '192.0.2.1'
Bu tür hatalar, kimlik doğrulama bypass (kimlik doğrulama atlatma) girişimlerinin belirtileri olabilir.
Ayrıca, tüm logların zaman damgalarıyla birlikte düzenli olarak analiz edilmesi gerekmektedir. Bir saldırganın sürekli olarak belirli zaman dilimlerinde (örneğin, gece yarısı veya tatil günlerinde) bir erişim denemesi yapması, dikkat edilmesi gereken bir durumdur.
Log analizi sırasında dikkat edilmesi gereken bir diğer önemli nokta, belirli bir IP adresinden gelen ani ve çoklu erişim istekleridir. Eğer tek bir IP adresi üzerinden çok sayıda farklı metodna erişim isteniyorsa, bu durum bir saldırı girişimini işaret edebilir. Örnek bir log kaydı şöyle olabilir:
2023-10-23 12:35:00 | INFO | Method call 'get_user_tokens' executed by IP '192.0.2.1' without authentication
Yukarıdaki log, kimlik doğrulaması yapılmadan kritik bir işlevin çağrıldığını göstermektedir ve bu durum CVE-2020-11651'den kaynaklanabilecek bir atak olduğunu gösterir.
Son olarak, SaltStack kullanıcısının, sistem güvenliğini artırmak ve CVE-2020-11651 gibi zafiyetlerden etkilenen sistemlerini korumak için güncellemeleri düzenli olarak takip etmesi ve uygulaması oldukça kritiktir. Zafiyetlerden etkilenmeyen kullanıcılar, temel internet güvenlik önlemleri ve en iyi uygulamaları izleyerek bu tür saldırılara karşı kendilerini korumalıdırlar.
Bu tür kötü niyetli saldırıların önüne geçebilmek amacıyla, log analizi ve SIEM sistemlerinin etkin bir şekilde kullanılması, siber güvenlik uzmanlarınca uygulanması gereken en iyi uygulamalardan biridir.
Savunma ve Sıkılaştırma (Hardening)
SaltStack Salt için CVE-2020-11651 zafiyeti, kullanıcıların salt-master process’ine (baş işleme) kötü niyetli bir saldırı aracılığıyla yetkisiz erişim sağlamasına olanak tanır. Bu güvenlik açığı, kullanıcıların gerekli kimlik doğrulama adımlarını atlayarak belirli metodları kullanmasına olanak tanır. Saldırganlar, salt-master üzerinde kayıtlı kullanıcı token’larına erişebilmekte ve salt minions (küçük birimler) üzerinde komut çalıştırabilmektedir. Bu durum, özellikle güvenlik önlemlerinin zayıf olduğu sistemlerde veri sızıntısı ve kötü niyetli eylemlere yol açabilecek bir senaryodur.
Bu zafiyeti gidermek için öncelikle SaltStack uygulamanızın güncelliğini sağlamak son derece önemlidir. SaltStack, bu tür açıkları kapatmak için sık sık güncellemeler yayınlamaktadır. Yazılımın son sürümüne geçiş yapmadığınız sürece, CVE-2020-11651 gibi güvenlik açıklarına hedef olabilir ve sisteminizde farkında olmadan bir eksiklik oluşturabilirsiniz. Zafiyetin etkilerinden korunmak için sadece yazılımı güncellemek yeterli değildir, aynı zamanda aşağıdaki saldırı önleyici stratejiler de uygulanmalıdır.
Birincisi, firewall ve Web Application Firewall (WAF) (Web Uygulama Güvenlik Duvarı) kuralları oluşturmaktır. WAF, uygulama katmanı saldırılarını engelleyebilir. Örneğin, salt-master’a gelen istekleri sınırlayarak, yalnızca belirli IP adreslerinden gelen isteklerin kabul edilmesi sağlanabilir. Aşağıdaki örnek, bir WAF kuralının nasıl yapılandırılabileceğine dair basit bir örnektir:
# Sadece belirli IP adreslerine izin verme
<IfModule mod_security.c>
SecRule REMOTE_ADDR "!@ipMatch 192.168.1.100,192.168.1.101" "id:1001,phase:1,deny,status:403"
</IfModule>
Bu kural, yalnızca belirtilen IP adreslerinden gelen isteklerin kabul edilmesini sağlarken, diğer tüm istekleri 403 (Yasak) durumu ile engeller.
İkincisi, SaltStack ortamınızı sıkılaştırmak için güçlü bir kimlik doğrulama mekanizması uygulamanız gereklidir. Bu, güçlü şifre politikaları ve çok faktörlü kimlik doğrulama (MFA) (Çok Faktörlü Kimlik Doğrulama) ile desteklenmelidir. Güçlü şifre politikaları, şifrelerin yeterince karmaşık ve tahmin edilmesi zor olmasını sağlayarak yetkisiz erişim olasılığını azaltır. Çok faktörlü kimlik doğrulama ise yalnızca şifreye dayanmak yerine, kullanıcıların kimliğini doğrulamak için ek bir onay yöntemi kullanır.
Yine, erişim kontrolleri de kritik bir rol oynamaktadır. Kullanıcıların yalnızca gerekli yetkilerle donatıldığından emin olunmalı ve kullanılmayan kullanıcı hesapları düzenli olarak kapatılmalıdır. Kullanıcı gruplarına uygulanan izinler ve etki alanları yönetiminde dikkatli davranarak, sistemin güvenliğini artırabilirsiniz.
Son olarak, sisteminizi izlemek ve log analizi yapmak da önemlidir. Potansiyel saldırıları tespit etmek ve hızlı bir şekilde yanıt vermek için güvenlik loglarınızı düzenli olarak denetleyin. Anormal durumlar ve izinsiz erişim girişimlerinin tespiti, zafiyetlerin önlenmesinde kritik bir öneme sahiptir.
Bu adımların tümü, SaltStack Salt ortamınızda CVE-2020-11651 zafiyetine karşı korunmanızı sağlamanın yanı sıra, genel güvenlik duruşunuzu da güçlendirecektir. Unutulmamalıdır ki, sürekli olarak güncel kalmak ve güvenlik önlemlerini düzenli olarak gözden geçirmek, siber güvenlikte başarılı olmanın anahtarıdır.