CVE-2020-0968: Microsoft Internet Explorer Scripting Engine Memory Corruption Vulnerability
Zorluk Seviyesi: Orta | Kaynak: CISA KEV
Zafiyet Analizi ve Giriş
CVE-2020-0968, Microsoft Internet Explorer (IE) içindeki bir bellek bozulması (memory corruption) zafiyetidir. Bu güvenlik açığı, Scripting Engine'in bellek içindeki nesneleri işleme şekliyle ilgilidir ve uzaktan kod çalıştırma (remote code execution - RCE) potansiyeline sahip olan ciddi bir tehdit kaynağı olarak öne çıkmaktadır. Eğer bir saldırgan bu zafiyetten yararlanabilirse, hedef sistemde kötü niyetli kodu çalıştırabilme ve böylece kullanıcı verilerine erişebilme imkanına sahip olabilir.
Zafiyet, 2020 yılının ocak ayında, Microsoft tarafından açıklanan bir güvenlik bülteni ile duyuruldu. Bu tarihten sonra, zafiyetin varlığı kısa sürede siber güvenlik topluluklarında geniş yankı buldu. Özellikle, kullanıcıların Internet Explorer kullanarak karşılaştığı potansiyel tehditlerle ilgili farkındalığın artması, zafiyetin dünya genelinde ne kadar kritik olduğunu gözler önüne serdi. Hem bireysel hem de kurumsal kullanıcılar, bu zafiyetin hedefi haline gelmekteydi. Özellikle eğitim, sağlık ve finans sektörleri gibi hassas verilerin yoğun olarak bulunduğu alanlar, zafiyetin etkilediği başlıca sektörler arasında yer aldı.
CVE-2020-0968 zafiyetinin kaynağı, Scripting Engine'deki bir hata olarak tanımlanmıştır. Tarayıcı, kullanıcıdan gelen veya üçüncü taraf içeriklere ait nesneleri bellekte nasıl yönettiğiyle ilgili sorunlar yaşamaktadır. Bu durumda, potansiyel olarak hatalı bir nesne kontrolü, bellek boşluğu (buffer overflow) hatalarına yol açmakta ve bunun sonucunda uzaktan bir saldırganın zararlı kodu çalıştırma olanağını doğurmaktadır. Bu zafiyet, kullanıcıların basit bir web sayfasına giriş yapmasıyla bile aktif hale gelebilmektedir; bu durum, kullanıcıların dikkatli olmasının önemini vurgulamaktadır.
Gerçek dünya senaryolarında, zafiyetten faydalanmak isteyen bir saldırgan, kötü niyetli bir web sayfası tasarlayarak hedef kullanıcıları bu sayfaya yönlendirebilir. Kullanıcı bu sayfaya girdiğinde, Scripting Engine hatası tetiklenir ve saldırgan ilgili kodu kullanıcının sisteminde çalıştırabilir. Bu tür bir saldırı, yalnızca bireysel kullanıcıları değil, aynı zamanda devlet kurumları ve büyük şirketleri hedef alarak toplu bir veri ihlaliyle sonuçlanabilir.
Sonuç olarak, CVE-2020-0968 zafiyeti, kullanıcıların Internet Explorer kullanırken maruz kaldığı yüksek riskli bir durumdur. Bir White Hat Hacker olarak bu tür zafiyetlerin farkında olmak ve bunlara karşı korunma yollarını öğrenmek, hem kişisel güvenlik hem de kurumsal bilgilerin güvenliği açısından kritik önem taşımaktadır. Kullanıcıların güvenlik yamalarını düzenli olarak kontrol etmeleri, güncel yazılımlar kullanmaları ve internet üzerinden gelen içeriklere karşı dikkatli olmaları, zafiyetten korunmanın en etkili yollarındandır. Bu tür önlemler, siber saldırılara karşı bir ön savunma hattı oluşturarak, kullanıcıların ve kurumların bilgi güvenliğini artırma yönünde önemli bir adım olacaktır.
Teknik Sömürü (Exploitation) ve PoC
CVE-2020-0968, Microsoft Internet Explorer için ortaya çıkan kritik bir güvenlik açığını temsil eder. Bu açık, Scripting Engine'in (Betik Motoru) bellek içindeki nesneleri işleyişinde yaşadığı bir bellek bozulması (memory corruption) sonucunda, uzaktan kod çalıştırma (remote code execution - RCE) riskine yol açmaktadır. Kötü niyetli bir saldırgan, bu açığı hedef alarak kurban sisteminde zararlı yazılımlar çalıştırabilir.
Sömürü işlemi genellikle birkaç aşamadan oluşur. İlk adım, açık bir hedef bulmaktır. Bu, güvenlik güncellemeleri yapılmamış eski sistemler veya Internet Explorer kullanan kullanıcıları içerebilir. Bir hedef tespit edildikten sonra, aşağıdaki aşamalar gerçekleştirilir:
- Belirleme ve Bilgi Toplama: İlk olarak, hedef sistemin hangi sürüm Internet Explorer kullandığına dair bilgi toplanmalıdır. Bunu, HTTP başlıkları veya kullanıcı aracısı bilgisi (User-Agent) üzerinden öğrenebilirsiniz:
GET / HTTP/1.1
Host: hedef.site
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
Bu bilgiler, hangi sürümün kullanılmakta olduğunu ve potansiyel açıkları anlamak için önemlidir.
Açık Kullanımı için Payload Geliştirme: Belirlenen hedefe yönelik kullanılması gereken bir payload (yük) geliştirilmelidir. CVE-2020-0968 açığına yönelik bir payload, belirli bellek adreslerine saldırı yaparak bellek bozulmasına neden olabilir. Örneğin, Scripting Engine üzerinde hatalı bir nesne kullanarak bellek alanını aşmak (buffer overflow) mümkündür.
Exploit Kodunun Hazırlanması: Bir Python exploit taslağı geliştirilebilir. Aşağıda basit bir örnek verilmiştir:
import requests
target_url = "http://hedef.site/"
payload = {
"param": "hatalı_nesne" # Burada saldırganın yüksek düzeyde bellek bozulması yaratacak bir parametre değeri göndermesi gerekecek.
}
response = requests.post(target_url, data=payload)
if response.status_code == 200:
print("Açık başarıyla kullanıldı!")
else:
print("Başarısız deneme.")
Malware (Kötü Amaçlı Yazılım) Yükleme: Eğer exploit başarılı olursa, saldırganın hedef sistemde uzaktan kod çalıştırmasını sağlayacak kötü amaçlı yazılımı yüklemesi gerekir. Bu, bir shell (kabuk) açmak veya zararlı yazılımlar yüklemek amacıyla yapılabilir.
İzlerin Temizlenmesi ve Kalıcılık Sağlama: Saldırı sonrasında, sistemde iz bırakmamak için yapılması gereken temizleme işlemleri gerçekleştirilmelidir. Ayrıca, kalıcılığı sağlamak için zararlı yazılımın sistemde kalmasını sağlayacak yöntemler geliştirilmelidir.
Bu aşamalar tamamlandıktan sonra, saldırgan hedef sistem üzerinde kontrol sahibi olabilir. RCE (uzaktan kod çalıştırma) işlemi başarılı bir şekilde gerçekleştirilmiş olur. Internet Explorer gibi eski veya yeterince güncellenmeyen yazılımlar, genellikle bu tür açıklara sahip oldukları için kullanıcılar ve kurumlar özellikle dikkatli olmalıdırlar.
Sonuç olarak, CVE-2020-0968 gibi zafiyetler, siber güvenlikte her zaman bir tehdit oluşturmakta ve bu tür açıklara karşı güncel kalmak büyük önem taşımaktadır. Hem kullanıcıların hem de güvenlik uzmanlarının bu boşlukları kapatmak için sürekli olarak güncellemeleri takip etmesi gerekmektedir.
Forensics (Adli Bilişim) ve Log Analizi
Microsoft Internet Explorer'da keşfedilen CVE-2020-0968 zafiyeti, Scripting Engine'in bellek yönetiminde ortaya çıkan bir bellek bozulması (memory corruption) sorununa dayanarak uzaktan kod yürütme (remote code execution - RCE) imkanları sunmaktadır. Siber güvenlik uzmanları, bu tür zafiyetlerin istismarını tespit etmek ve önlemek için log dosyalarını (kayıt dosyaları) dikkatli bir şekilde analiz etmelidir.
Bir güvenlik uzmanı, Microsoft Internet Explorer'daki bu zafiyetin istismar edilip edilmediğini belirlemek için öncelikle doğru log dosyalarını gözden geçirmelidir. Erişim logları (access log) ve hata logları (error log) gibi dosyalar, potansiyel saldırıların belirtilerini gösterebilir. Örneğin, kullanıcıların bilinen saldırı vektörleri üzerinden internete doğrudan erişim sağladığı durumları tespit etmek önemlidir. Log kayıtlarında şu tür anahtar kelimeleri sorgulamak faydalı olabilir:
"GET" veya "POST" istekleri: Belirli bir URL'ye veya dosyaya yapılan isteklerin sıklığı incelenmelidir. Özellikle şüpheli URL'lere karşı yapılan tekrar eden isteklerin ya da belirli dosyaların ağa gönderilmesine yönelik isteklerin sayısı dikkat çekici olabilir.
Hata kodları: HTTP hata kodları, özellikle 404 (Not Found) ve 500 (Internal Server Error) gibi kodlar, potansiyel bir saldırının göstergesi olabilir. Örneğin:
404 Not Found: /malicious_script.js
500 Internal Server Error: /vulnerable_endpoint
Bu gibi hatalar, daha önceden belirlenmiş kötü amaçlı yüklerin (malicious payload) incelenmesine ve tespit edilmesine yardımcı olabilir.
Ayrıca, belirli şüpheli davranışları tespit etmek için kullanabileceğiniz başka imzalar da vardır. Siber güvenlik uzmanları, özellikle aşağıdaki gibi ayrıntılara dikkat etmelidir:
Kullanıcı ajansı (User-Agent) bilgilerinin anomalileri: Yaygın kullanıcı ajansı bilgileri dışında kalan ve bilinen kötü amaçlı yazılımlarla ilişkilendirilmiş olanları göz önünde bulundurmak gerekir. Örneğin, belirli bir exploit aracının kullanıcı ajansı şeklinde kaydedilmesi, bir istismar girişimi anlamına gelebilir.
Beklenmeyen POST isteği içeriği: Saldırganların, hedef sistemlerine kötü niyetli kod enjekte etmeye çalıştıkları durumlarda, POST isteği içerikleri özenle incelenmelidir. Örneğin, bir POST isteğinde aşağıdaki gibi bir kod bloğu varsa:
<script>evil_function();</script>
Bu tür içerikler, potansiyel bir RCE saldırısına işaret edebilir.
Bir diğer önemli tespit yöntemi, bellek izleme ve analizidir. Eğer sistemde bellek izleme araçları kullanılıyorsa, bellek hataları veya anormal davranışlar tespit edilebilir. Bu, özellikle bellek bozulması ile ilişkili sorunların ilk belirtilerini ortaya çıkarabilir.
Sonuç olarak, bir siber güvenlik uzmanı CVE-2020-0968 zafiyetinin olası etkilerini anlamak ve saldırılarını tespit etmek için, yukarıda belirtilen yöntemlerle log analizlerini derinlemesine gerçekleştirmelidir. Loglarda tespit edilen anomaliler ve şüpheli aktiviteler, saldırıların önlenmesinde büyük bir rol oynayabilir.
Savunma ve Sıkılaştırma (Hardening)
Microsoft Internet Explorer’daki CVE-2020-0968 zafiyeti, Scripting Engine’inin bellek yönetiminde yaptığı hatalardan kaynaklanıyor. Bu durum, uzaktan kod çalıştırma (RCE - Remote Code Execution) gibi ciddi güvenlik açıklarına yol açabiliyor. Özellikle şunu unutmamak gerekir ki, internet tarayıcıları genellikle en yaygın saldırı vektörlerinden birisidir ve kötü niyetli kişiler tarafından hedef alınabilir.
Bu tür bir zafiyetin etkilerinden korunmanın en etkili yollarından biri, işletim sisteminin ve tarayıcının en güncel versiyonunu kullanmaktır. Microsoft, düzenli olarak güncellemeler yayınladığı için, bu güvenlik açığının bulunduğu eski sürümlerin kullanılması büyük bir risk teşkil eder. Tarayıcının otomatik güncellemelerini açmak, kurumsal ve bireysel kullanıcıların bu tür zafiyetlere maruz kalma risklerini minimize eder.
Güvenlik sıkılaştırması (hardening) açısından, Internet Explorer’ın sistemdeki kullanılabilirliği göz önünde bulundurulmalıdır. Şayet bu tarayıcıya ihtiyaç duyulmuyorsa, sistemden tamamen kaldırılması önerilebilir. Eğer belirli nedenlerden ötürü Internet Explorer kullanılmak zorundaysa, aşağıdaki önlemler alınarak zafiyetin etkileri minimize edilebilir:
Gruplama Politikaları (Group Policies) ile Kısıtlamalar: Internet Explorer üzerinde çeşitli güvenlik ayarları yapılabilir. Örneğin, ActiveX denetimlerinin, scriptlerin ve diğer potansiyel zafiyetlere yol açabilecek içeriklerin yönetilmesi gerekir.
Güvenlik Duvarı Kuralları: Alternatif bir Web Uygulama Güvenlik Duvarı (WAF - Web Application Firewall) kullanarak, zararlı içeriklerin engellenmesi sağlanabilir. Aşağıda örnek bir WAF kuralı verilmiştir:
Kural: “XSS ve RCE saldırılarına karşı koruma sağlamak için, tüm HTTP isteğinde <script> etiketine izin verme.” Kural Tipo: BlockSandbox Kullanımı: Internet Explorer’ın çalıştığı ortamın belirli güvenlik kurallarına göre izole edildiğinden emin olunmalıdır. Sandbox teknolojisi kullanarak, tarayıcıda gerçekleştirilen olası zararlı işlemlerin sistemin diğer bölümlerine zarar vermesinin önüne geçilebilir.
Güvenlik Yazılımları: Antivirüs yazılımları kullanılarak, bilinen zararlı yazılımların tarayıcıyı geçmesi engellenebilir. Ayrıca, web sitelerine bağlantı kurulmadan önce bu sitelerin güvenli olup olmadığını kontrol eden uygulamalar kullanılabilir.
Kısıtlı Kullanıcı Hakları: Kullanıcıların sistemdeki izinlerini minimum seviyede tutmak, saldırganların zafiyetleri kötüye kullanma olasılığını azaltır. Kullanıcılara yalnızca ihtiyaç duydukları yetkileri tanımak, saldırı yüzeyini daraltacaktır.
Regular Security Audits (Düzenli Güvenlik Denetimleri): Güvenlik açıklarının tespit edilmesi için sistemin düzenli bir şekilde denetlenmesi büyük önem taşır. Bu denetimler peşini bırakmadığı sürece zafiyetlerin keşfedilmesi ve gerekli önlemlerin alınması sağlanır.
Son olarak, kullanıcıların tarayıcıda gerçekleştirilen işlemlerin nasıl güvenli bir şekilde yapılması gerektiği konusunda eğitim alması da oldukça değerlidir. Kullanıcıların, phishing (oltalama) saldırılarına, kötü amaçlı yazılımlara ve diğer çevrimiçi tehditlere karşı bilinçlenmesi, tüm sistemin güvenliğini artıracaktır. Unutulmamalıdır ki, tüm bu önlemler, siber güvenlik stratejisinin bir parçasıdır ve sistemin bütünlüğünü sağlamak için sürekli olarak güncellenmelidir.