Genel Bakış
GhostLock, Windows işletim sistemlerinde bulunan meşru bir dosya API'sini kötüye kullanarak dosya erişimini engelleyen bir kavram kanıtlama (PoC) aracıdır. Bu araç, özellikle SMB ağ paylaşımları ve yerel dosya sistemleri üzerinde dosya kilitleme mekanizmalarını manipüle ederek, sistem yöneticilerinin ve kullanıcıların dosyalara erişimini kısıtlayabilir. Bu durum, bir fidye yazılımı senaryosunda veya hizmet engelleme (DoS) saldırılarında ciddi bir tehdit oluşturabilir.
Teknik Analiz
GhostLock, Windows'un CreateFile API'sini ve buna bağlı olan FILE_SHARE_READ, FILE_SHARE_WRITE ve FILE_SHARE_DELETE paylaşım modlarını manipüle eder. Normal şartlarda bu API, dosyaların aynı anda birden fazla süreç tarafından açılmasına izin vermek için tasarlanmıştır. Ancak, GhostLock belirli parametreleri kullanarak dosya üzerinde özel bir kilit oluşturur ve diğer tüm süreçlerin dosyaya erişimini engeller.
Saldırı Mekanizması
- Saldırgan, hedef dosya yolunu belirler.
- GhostLock,
CreateFilefonksiyonunudwShareModeparametresini 0 (hiçbir paylaşım izni yok) olarak ayarlar. - Dosya handle'ı açık kaldığı sürece, işletim sistemi diğer süreçlerin dosyayı okumasına veya değiştirmesine izin vermez.
Uyarı: Bu yöntem, sistem dosyaları üzerinde uygulandığında işletim sisteminin kararsız hale gelmesine veya kritik servislerin durmasına neden olabilir. Yalnızca izole edilmiş laboratuvar ortamlarında test edilmelidir.
Savunma ve Önleme Adımları
Bu tür istismarları engellemek için sistem yöneticilerinin alabileceği önlemler şunlardır:
- EDR/XDR İzleme: Uç nokta güvenlik çözümlerinizi,
CreateFileAPI çağrılarındaki paylaşım modu ihlallerini tespit edecek şekilde yapılandırın. - Erişim Kontrol Listeleri (ACL): Kritik dosya sunucularında kullanıcı yetkilerini 'En Az Ayrıcalık' ilkesine göre kısıtlayın.
- SMB Güvenliği: SMB imzalamayı (signing) ve şifrelemeyi zorunlu kılarak ağ üzerindeki manipülasyonları zorlaştırın.
İzleme Komutları
PowerShell kullanarak açık dosya kilitlerini ve handle'ları şu şekilde sorgulayabilirsiniz:
# Açık olan dosyaları ve bunları tutan süreçleri listele
Get-Process | Select-Object -ExpandProperty Modules | Where-Object { $_.FileName -like "*hedef_dosya*" }
# Handle tabanlı izleme için (Sysinternals Handle aracı gereklidir)
handle.exe -a -u "C:\HedefDizin"
Sonuç
GhostLock, Windows API'lerinin meşru kullanımının nasıl bir saldırı vektörüne dönüşebileceğinin klasik bir örneğidir. Savunma ekipleri, sadece kötü niyetli yazılımları değil, işletim sistemi API'lerinin anormal kullanım paternlerini de izlemelidir.



