Araştırmacı, bellek bozulmasına veya belirli PDB dosyası bileşenlerine dayanmadan yararlanılabilecek güvenlik açıklarına odaklanarak Visual Studio’da döküm dosyalarında hata ayıklamayla ilişkili olası güvenlik risklerini araştırdı.
Hata ayıklama oturumları sırasında kullanılan çeşitli kitaplıkları analiz ettikten sonra, yönetilen döküm dosyalarında hata ayıklarken rastgele kod yürütmeye yönelik bir yöntem keşfettiler; bu, olası saldırıları önlemek için hata ayıklama araçlarındaki güvenlik açıklarını ele almanın önemini vurguluyor.
Microsoft, platformlar arası destek ve optimizasyon için geleneksel MSF formatının yerine, yönetilen modüller için Taşınabilir PDB formatını tanıttı.
-debug:embedded anahtarı kullanılarak oluşturulan gömülü PDB’ler, harici PDB’lere ihtiyaç duymadan eski sürümlerde hata ayıklamaya veya döküm dosyalarına izin veren bir Hata Ayıklama Dizin Girişi tarafından referans verilen sıkıştırılmış PDB verilerini yürütülebilir dosya içinde depolar.
Analyse Any Suspicious Links Using ANY.RUN’s New Safe Browsing Tool: Try for Free
Ek olarak kaynak dosyalar, EmbedAllSources veya -embed gibi yöntemler kullanılarak PDB’lere gömülebilir ve kaynak bilgilerini doğrudan yürütülebilir dosya içinde depolayarak hata ayıklamayı kolaylaştırır.
Visual Studio, döküm dosyalarındaki yerleşik kaynak dosyalara güvenir ve bu da olası güvenlik açıklarına yol açar. Belirli bir uzantıya sahip kötü amaçlı bir kaynak dosya katıştırılmışsa VS, ilgili harici programı kullanarak dosyayı açmayı deneyebilir.
Bir saldırgan, uzantıyı dikkatli bir şekilde seçerek ve dosyanın içeriğini değiştirerek, döküm dosyasında hata ayıklama sırasında potansiyel olarak rastgele kod yürütebilir ve bu tür riskleri azaltmak için gömülü kaynak dosyalarının dikkatli bir şekilde doğrulanması ve temizlenmesinin önemini ortaya çıkarabilir.
Visual Studio’nun taşınabilir PDB’lerdeki gömülü kaynak dosyalarını işlemesindeki bir güvenlik açığından yararlanmak için bir kavram kanıtı hazırladılar.
Meşru kaynak dosyasını bir PDF dosyasıyla değiştirerek ve PDB’nin yapısını değiştirerek araştırmacı, Visual Studio’yu PDF’yi geçerli bir kaynak dosya olarak ele alması için kandırdı.
Bu değiştirilmiş PDB’yi içeren bir bellek dökümünün hatalarını ayıklarken Visual Studio, PDF dosyasını harici bir düzenleyici kullanarak hatalı bir şekilde açtı; bu da saldırganların rastgele kod yürütme veya hassas bilgileri açığa çıkarma potansiyelini ortaya koydu.
Genellikle yardım dosyaları için kullanılan CHM dosyalarının gömülü Visual Basic (VB) kodunu içerebildiği bir Windows sisteminde isteğe bağlı kod yürütmek için potansiyel olarak kullanılabilecek üç dosya uzantısı (CHM, HTA ve PY) tanımlanmıştır.
HTA dosyaları, HTML’ye benzer şekilde VB kodunu da içerebilir ve Python komut dosyalarıyla ilişkili PY dosyaları, Python kodunu doğrudan çalıştırabilir.
CHM dosyaları derlenirken, HTA ve PY dosyaları, işlevlerini etkilemeden yazdırılamayan karakterleri içerecek şekilde değiştirilebilir, bu da onları kötü amaçlı kod enjekte etmeye uygun hale getirir.
Ayrıca, çeşitli dosya formatları için istismar dökümlerinin oluşturulmasını otomatikleştirmek üzere bir C# programı da hazırladılar; bu program, Visual Studio’da hata ayıklandığında, bir ACE güvenlik açığı nedeniyle calc.exe’nin yürütülmesini tetikliyor.
YNWARCS tarafından yapılan analiz, CVsUIShellOpenDocument::OpenStandardEditor işlevinde, flags argümanının en yüksek biti ayarlandığında bir hata kodu döndürerek kötüye kullanımı önleyen, hata ayıklama oturumları sırasında gömülü kaynakların yürütülmesini etkili bir şekilde engelleyen ve öncekini görüntüleyen yeni bir kontrolü ortaya çıkardı. faydalanmak etkisizdir.
Free Webinar on How to Protect Small Businesses Against Advanced Cyberthreats -> Free Registration