Gelişmiş tehdit algılama teknolojilerimizle tespit edilen ve düzeltilen çeşitli Ortak Güvenlik Açıkları ve Maruziyetlere (CVE'ler) odaklanan bir dizi teknik analiz blogunu tanıtmaktan heyecan duyuyoruz.Tüm araştırmalar, Eylül 2023'te başlatılan OPSWAT Cybersecurity Fellowship programına katılan lisansüstü öğrenciler tarafından yapılmaktadır.
Bu blogda, Google Chrome CVE-2019-13720'yi ve kuruluşların CVE-2019-13720 istismar saldırılarına karşı nasıl savunabileceklerini açıklayacağız.
Google Chrome nedir ve ne zaman kurulmuştur?
Google Chrome, Google tarafından geliştirilen ve resmi olarak 2 Eylül 2008 tarihinde piyasaya sürülen bir çapraz platform web tarayıcısıdır. Google'ın daha iyi, daha modern bir tarayıcı oluşturma çabalarının bir parçası olarak geliştirilmiştir. O dönemde sekmeli tarama, gizlilik modu ve Google hizmetleriyle senkronizasyon gibi birçok yeni özellik sunuyordu. Yayınlanmasından bu yana, dünya çapında en popüler web tarayıcılarından biri haline geldi. 2021 itibarıyla Google Chrome'un yaklaşık 3,2 milyar kullanıcısı olduğu tahmin ediliyor.
Google Chrome'un popülerliği nedeniyle, hem etik bilgisayar korsanlarının hem de kötü niyetli bilgisayar korsanlarının ilgisini çekerek araştırma ve saldırılar için bir odak noktası haline gelmiştir. Google Chrome'da tespit edilen yaygın güvenlik açıkları arasında Hizmet Reddi (DoS), bilgi sızıntısı ve uzaktan kod çalıştırma yer almaktadır. Uzaktan Kod Yürütme güvenlik açığı ile ilgili olarak, Google Chrome'da bu sorun için iki tür mevcuttur: sandbox kaçışı ve kaçışı olmayan.
CVE-2019-13720 nedir?
CVE-2019-13720, 78.0.3904.87 sürümünden önce Google Chrome'daki WebAudio'nun, uzaktan saldırganın hazırlanmış bir HTML sayfası aracılığıyla yığın bozulmasından potansiyel olarak yararlanmasına olanak tanıyan bir Use After Free (UAF) güvenlik açığıdır. Kurban kötü amaçlı bir web sayfasına eriştiğinde veya güvenlik açığı bulunan bir Google Chrome tarayıcısında hazırlanmış bir HTML sayfasını açtığında, kötü amaçlı kod kurbanın uç noktasında yürütülür. Bu CVE ilk olarak 2019 yılında Anton Ivanov ve Alexey Kulaev tarafından bildirilmiştir.
Teknik açıdan bakıldığında, Qt WebEngine'in ses bileşenindeki Render ve Audio iş parçacıkları arasındaki bir yarış koşulu nedeniyle bir use-after-free güvenlik açığından yararlanılabilir ve bu da uzaktan saldırganların WebAssembly kabuk kodunu çalıştırmasına olanak tanıyarak kurbanın cihazının tehlikeye girmesine neden olur. Bu sorun için çözüm, tüm Qt WebEngine kullanıcılarının en son sürüme güncelleme yapmasıdır.
Saldırı Aşamaları
Saldırganlar kötü amaçlı HTML ile özel bir URL oluşturur ve kurbana bağlantıyı içeren bir kimlik avı e-postası gönderir. Kurban e-postayı açıp bağlantıya tıkladığında, kötü amaçlı kod çalıştırılır ve saldırganın etkilenen sistemi ele geçirmesine izin verir. Bir HTML belgesinde göründükleri şekliyle uzaktan kod taktiklerinin ayrıntılarına buradan ulaşılabilir.
Use After Free (UAF) ve heap spray güvenlik açıkları nelerdir?
UAF güvenlik açığı, bir program belleği serbest bıraktıktan sonra kullanmaya devam ettiğinde ortaya çıkan bir güvenlik açığı türüdür. Bu durum veri bozulması, keyfi kod çalıştırma ve sistem çökmeleri gibi çeşitli olumsuz sonuçlara yol açabilir.
Yığın püskürtme, yığın boyunca farklı konumlara birkaç bayt yazmayı gerektiren bir yük dağıtım tekniğidir. Bu, bellek yığınına hazırlanmış bir yükün (yani zararlı verilerin) enjekte edilmesini içerir ve yürütme akışının uygulamanın orijinal kodu yerine püskürtülen belleğe atlamasını sağlar. Bu saldırının amacı genellikle EIP kayıt defteri üzerinde kontrol elde etmektir.
WebAssembly nedir?
Genellikle Wasm olarak kısaltılan WebAssembly, C/C++ gibi yüksek seviyeli dillerin derlenmesi için taşınabilir bir hedef görevi gören ve bunların bir web tarayıcısının JavaScript motorunda neredeyse yerel hızda çalışmasına olanak tanıyan yeni bir ikili komut formatıdır.
Ancak WebAssembly, C/C++ gibi bellek açısından güvenli olmayan dillerden derlenebildiğinden, çapraz derlenmiş WebAssembly ikili dosyalarına arabellek taşmaları veya biçim dizesi güvenlik açıkları gibi yaygın kodlama güvenlik açıkları eklenebilir. WebAssembly modüllerine dahil edilebilecek bu güvenlik açığı potansiyeli, çağdaş web uygulamalarının saldırı yüzeyini artırmıştır.
Yarış koşulu güvenlik açığı nedir?
Yazılımdaki bir yarış koşulu güvenlik açığı, birden fazla işlem veya iş parçacığı paylaşılan bir kaynağa aynı anda erişmeye çalıştığında ortaya çıkar ve erişimin zamanlaması nedeniyle öngörülemeyen sonuçlara veya operasyonel kesintilere neden olur. Bir programda yarış koşulu güvenlik açığı olduğunda, uygulama çökmeleri, veri bozulması, yanlış sonuçlar veya tutarsızlıklar gibi çeşitli sorunlara yol açabilir. Saldırganlar yetkisiz erişim elde etmek, bilgi sızdırmak, ayrıcalıkları artırmak veya sistem çökmelerine neden olmak için bu güvenlik açığından faydalanabilir.
Yarış koşulu güvenlik açığı olarak kategorize edilen TOCTTOU güvenlik açığı, bir kaynağın kontrol edilmesi ve kullanılması arasındaki zaman boşluğundan faydalanır.
CVE-2019-13720 nasıl çalışır?
Bu güvenlik açığından yararlanmak için araştırmacı bir HTML dosyasına JavaScript kodu ekler. Bir kullanıcı HTML dosyasını başlattığında, komut dosyası aynı tampon verilerini işleyen iki iş parçacığı (ana iş parçacığı ve ses iş parçacığı) oluşturarak sızdırılan adresi bulmaya çalışır. ReverbConvolverStage'deki temporary_buffer_object'in sızdırılan adresi daha sonra IIRFilterNode'daki (Convolver ile aynı süper sayfayı paylaşan) feedforward_array'in işaretçisini elde etmek için kullanılır. Daha sonra araştırmacı, ikinci tetikleyici UAF'deki feedforward_array'in işaretçisini elde etmeye çalışır.
WebAssembly kabuk kodunun yürütülmesini yönetir. Kabuk kodunun yürütülmesini sağlamak için araştırmacı IIRFilter'ı serbest bırakmaya çalışır ve spreylere gerek kalmadan yeni tahsislerin yapıldığı yer üzerinde kontrol elde edene kadar GCPreventer'a yazar. Son olarak, araştırmacı kabuk kodunu bellekteki Just-In Time (JIT) bölgesine yazar. Sonuç olarak, dosya okuyucunun bir hata olayı eklemesi üzerine, WebAssembly modülü kabuk kodunu çalıştıracaktır.
Bu güvenlik açığıyla ilişkili kabuk kodunu çalıştırmak için kullanıcının Chrome'un güvenlik açığı bulunan sürümünde korumalı alanı devre dışı bırakması gerekir.
Kabuk kodu çalıştırıldığında, kurbanın cihazında otomatik olarak Notepad hizmetlerini açar.
İyileştirme Yöntemi
MetaDefender EndpointOPSWAT tarafından tasarlanan bir uç nokta güvenlik çözümü olan MetaDefender Endpoint, kullanıcıların sistemlerini bu saldırılardan tespit etmelerini ve savunmalarını sağlar. Kullanıcı Privacy Sandbox özelliğini (--no-sandbox) devre dışı bıraktıktan sonra, MetaDefender Endpoint CVE'leri tespit edebilir ve en son Google Chrome yamalarını uygulayabilir. Bundan sonra, kullanıcı Google Chrome'u manuel olarak en son sürüme güncelleyebilir veya OPSWAT MetaDefender Endpoint 'in yeni yamalar kullanılabilir hale gelir gelmez tarayıcıyı otomatik olarak güncellemesine izin vermek için Patch Management sekmesi altındaki "otomatik güncelleme" özelliğini etkinleştirebilir.
Kötü amaçlı kodlara maruz kalmayı önlemek için, kullanıcılar kimlik avı saldırılarını tespit etmek için e-posta filtre araçlarını kullanmalı ve e-postalardaki bilinmeyen URL'lere tıklamaktan kaçınmalıdır.
MetaDefender Endpoint Temel Ürün Özellikleri ve Faydaları
- Risk altındaki uygulamaları gözden geçirin ve düzeltin. Savunmasız veya güncel olmayan uygulamalar MetaDefender Endpoint kullanıcı arayüzünde görüntülenebilir.
- İşletim sisteminde anti-malware korumasının düzgün yapılandırıldığını kontrol edin.
- Kuruluş güvenlik standartlarına uygunluğu sağlayın.
- Sabit disk şifreleme güvencesi.
- İşletim sistemi yama doğrulaması.
- Uç noktalarda kötü amaçlı yazılım taraması ve kötü amaçlı yazılım içermeyen duyurular yapmak için birden fazla seçenek.
MetaDefender Endpoint for Endpoint Vulnerability and Application Patching buradan indirilebilir.
Referans
- https://nvd.nist.gov/vuln/detail/CVE-2019-13720
- https://bugs.chromium.org/p/chromium/issues/detail?id=1019226
- https://www.w3.org/TR/webaudio/
- https://security.gentoo.org/glsa/202004-04
- https://www.cve.org/CVERecord?id=CVE-2019-13720
- https://packetstormsecurity.com/files/167066/Google-Chrome-78.0.3904.70-Remote-Code-Execution.html
- https://devopedia.org/race-condition-software
- https://webassembly.org/
- https://www.researchgate.net/figure/WebAssembly-high-level-architecture_fig1_360232889
- https://www.researchgate.net/publication/331990070_Native_Web_Audio_API_Plugins
- https://whitehat.vn/threads/gioi-thieu-ky-thuat-khai-thac-exploit-heap-spray.5056/
- https://www.opswat.com/