AI Hacking - Hackerlar Siber Saldırılarda Yapay Zekayı Nasıl Kullanıyor?

Şimdi Oku
Site çevirileri için yapay zeka kullanıyoruz ve doğruluk için çaba göstersek de her zaman %100 kesin olmayabilir. Anlayışınız için teşekkür ederiz.

CVE-2024-6778'in Kapsamlı Analizi: Chrome DevTools'ta Yarış Durumu Güvenlik Açığı

tarafından OPSWAT
Bu Gönderiyi Paylaş

Web tarayıcıları dünya çapında milyarlarca cihazda yüklüdür ve bu da onları siber suçlular için birincil hedef haline getirmektedir. Büyük web tarayıcıları geniş kullanıcı kitlelerine sahip olduğundan, tek bir güvenlik açığı geniş kapsamlı sonuçlar doğurabilir. Tarayıcıları güncel tutmak, gelişen tehditlere karşı korunmak için kritik öneme sahiptir.  

Web tarayıcılarındaki güvenlik açıklarının ciddiyetini göstermek için arkadaşlarımız, Chromium tabanlı tarayıcılarda özellikle Chrome DevTools'u etkileyen bir güvenlik açığı olan CVE-2024-6778'in kapsamlı bir analizini gerçekleştirdiler. Bu blog, güvenlik açığının teknik yönleri, potansiyel etkisi ve azaltma stratejilerinin ayrıntılı bir incelemesini sunmaktadır.  

CVE-2024-6778 Chrome DevTools güvenlik açığı için iki araştırmacı kredilendirildi ve üniversite bağlantıları gösterildi

CVE-2024-6778'in Arka Planı

CVE-2024-6778, Chrome DevTools'ta keşfedilen bir yarış koşulu güvenlik açığıdır. Saldırganların kötü amaçlı tarayıcı uzantıları aracılığıyla ayrıcalıklı tarayıcı sayfalarına kötü amaçlı HTML veya JavaScript enjekte etmesine olanak tanır. NVD'ye (Ulusal Güvenlik Açığı Veritabanı) göre, bu güvenlik açığı 8.8 CVSS puanı ile yüksek önem derecesine sahiptir.  

Bu güvenlik açığının yüksek önem derecesi, sistemlerin tehlikeye atılmasına, gizliliğin zarar görmesine ve kullanılabilirliğin azalmasına neden olabilecek uzaktan kod yürütülmesine olanak tanıma potansiyelinden kaynaklanmaktadır.  

CVE-2024-6778 Chrome DevTools güvenlik açığı ayrıntılarını ve CVSS yüksek önem derecesi puanlarını gösteren UI ekran görüntüsü

Chromium Güvenliğine Genel Bakış

CVE-2024-6778'in etkilerini daha iyi anlamak için Chromium'un güvenlik modelinin temel yönlerini bilmek önemlidir. Chromium, Google Chrome, Microsoft Edge, Opera ve Brave gibi tarayıcıların açık kaynaklı temelidir. Olası tehlikelerin kapsamını sınırlandırarak kararlılığı ve güvenliği artırmak için her sekmenin, aynı zamanda bir işleyici olarak da adlandırılan ve çeşitli tarayıcı bileşenlerinin izole edilmiş süreçlerde çalıştığı çok işlemli bir model kullanır. 

Chromium'un güvenliğinin temel unsurlarından biri, renderer süreçlerinin sistem kaynaklarına doğrudan erişimini kısıtlayan sandboxing mekanizmasıdır. Bunun yerine, yalnızca yetkili işlemlerin gerçekleştirilmesini sağlamak için tüm etkileşimler IPC (İşlemler Arası İletişim) kanalları aracılığıyla yönetilir.  

Chromium içindeki tüm bileşenler tam korumalı alana tabi değildir. chrome://settings ve chrome://downloads gibi WebUI sayfaları, renderer süreçleri içinde oluşturulur ancak kısmi sandbox kısıtlamalarıyla çalışır. Bu süreç onlara genellikle web üzerinden erişilemeyen tarayıcı API'lerine erişim sağlar.

CVE-2024-6778 Chrome DevTools güvenlik açığı ile ilgili olarak ilke adlarını, değerlerini ve durumlarını gösteren Chrome ilke ayarları kullanıcı arayüzü

Örneğin, chrome://policy sayfası, yöneticilerin ve kullanıcıların tarayıcı güvenlik politikalarını yapılandırmasına ve uygulamasına olanak tanıdığı için kurumsal ortamlarda hayati bir rol oynar. Bu politikalar Windows sistemlerinde Grup İlkesi aracılığıyla da yönetilir.  

chrome://policy doğrudan işletim sistemiyle etkileşime girebildiğinden, saldırganlar için değerli bir hedeftir. Chrome DevTools içindeki bir yarış koşulundan yararlanan CVE-2024-6778 güvenlik açığı ile saldırganlar bu sayfalara kötü amaçlı kod enjekte ederek ciddi güvenlik riskleri oluşturabilir.  

CVE-2024-6778'in Teknik Analizi

Keşif

Bu güvenlik açığı, Chrome Enterprise sürüm 117'de sunulan bir test özelliğinde keşfedilmiştir. Bu özellik chrome://policy/test sayfası aracılığıyla politika testine olanak sağlamaktadır. Bu özelliğe ilişkin resmi belgelerin sınırlı olması nedeniyle, arkadaşlarımız bu özelliğin uygulanmasını tam olarak anlamak ve ilgili güvenlik açıklarını tespit etmek için CVE yazarının görüşleriyle desteklenen Chromium kaynak kodunu kapsamlı bir şekilde inceledi.

Politika Yönetimi Bileşenleri 

OPSWAT bursiyerlerinin kaynak kodu analizi sonucunda chrome://policy/testpolitikaları kullanılarak yönetilir. PolicyInfo arayüzü aracılığıyla WebUI ve tarayıcı süreçleri arasında iletilir. PolicyTestBrowserProxy Sınıf. Sınıf PolicyInfo yapısı aşağıdaki gibi tanımlanır:  

CVE-2024-6778 Chrome DevTools güvenlik açığında politika yönetimi bileşenlerini gösteren PolicyInfo için TypeScript arayüzü

Bu poliçelerin işlenmesinden sorumlu sınıfın daha ayrıntılı incelenmesi sonucunda applyTestPolicies. Bu yöntem özel bir API'den yararlanır, setLocalTestPolicies, bir ilke listesini dinamik olarak uygulamak için.

CVE-2024-6778 Chrome DevTools güvenlik açığıyla ilgili ilke yönetimi mantığını gösteren kod parçası

Politika taleplerinin bu API aracılığıyla nasıl işlendiğine dair fikir edinmek için arkadaşlar HandleSetLocalTestPolicies yöntemi içinde PolicyUIHandler Sınıf: 

CVE-2024-6778 Chrome DevTools güvenlik açığıyla ilgili ilke yönetimi mantığını gösteren kod parçası

Bu HandleSetLocalTestPolicies yöntemi, sağlanan bağımsız değişkenlerden ilke verilerini alır ve LocalTestPolicyProvider örneğini tarayıcının küresel ilke bağlayıcısı aracılığıyla tanımlar. Ardından, mevcut kullanıcı profiline bu sağlayıcıyı kullanması talimatını vermeden önce bu sağlayıcının varlığını doğrular.  

Bu doğrulama, yalnızca aşağıdakileri sağladığı için yetersiz bulunmuştur local_test_provider ilkeleri uygulamadan önce null değildir. İlkelerin oluşturulması ve başlatılması local_test_provider tarafından kontrol edilir. CreateIfAllowed yöntem:  

Chrome'da LocalTestPolicyProvider için C++ kodu, CVE-2024-6778 Chrome DevTools güvenlik açığı politika yönetimi ile ilgili

İçinde CreateIfAllowed metodu kullanıldığında, dönüş değeri tamamen IsPolicyTestingEnabled fonksiyonu. Bu işlev, bir LocalTestPolicyProvider örneği, kullanıcı tercihleri ve tarayıcının yayın kanalının bir kombinasyonuna dayalı olarak oluşturulur: 

C++ kodu, politika yönetimindeki CVE-2024-6778 Chrome DevTools güvenlik açığı ile ilgili olarak politika test durumunu kontrol eder

O zamandan beri pref_service her seferinde sürekli olarak null olarak ayarlanır IsPolicyTestingEnabled() çağrıldığında, ilk koşul atlanır ve etkinleştirme kararı yalnızca tarayıcının serbest bırakma kanalına bağlı kalır.

Markasız Chromium derlemelerinde, yayın kanalı varsayılan olarak Channel::UNKNOWN. Fonksiyonun mantığına göre, Channel::UNKNOWN ile aynı muameleyi görür. Kanal::DEFAULTvarsayılan olarak ilke testi özelliğini etkinleştirir. Kod akışı analizi, özel API'nin setLocalTestPolicies herhangi bir anlamlı erişim kısıtlaması olmaksızın ilkeleri uygulamak için WebUI aracılığıyla çağrılabilir. 

İstismar

Bir saldırgan bu özel API'yi tanımlayarak ve kullanarak WebUI aracılığıyla politikaları keyfi olarak uygulayabilir ve aşağıdaki gibi ayarların manipüle edilmesini sağlayabilir BrowserSwitcherEnabled, BrowserSwitcherUrlList, AlternativeBrowserPathve AlternativeBrowserParameters komutları çalıştırmak için. Örneğin, ayarlayarak AlternativeBrowserPath powershell'e ve AlternativeBrowserParameters için ["calc"]belirli bir URL ziyaret edildiğinde rastgele kabuk komutları çalıştırılabilir.

Özel API aracılığıyla Keyfi Kötü Amaçlı Kullanıcı İlkesi Uygulama

Özel ilkeler kullanılarak ilkelerin nasıl uygulanabileceğini göstermek için setLocalTestPolicies API 'sini tanımlayan aşağıdaki JavaScript kodu, bir önceki analizde tanımlanan Dinozor Paskalya Yumurtasına İzin Ver politikası aracılığıyla etkin bir şekilde uygular. WebUI çağırarak setLocalTestPolicies:

JavaScript kodu, CVE-2024-6778 Chrome DevTools güvenlik açığını gösteren özel API aracılığıyla bir Chrome ilkesi belirler

Politika, aşağıdakileri devre dışı bırakmak için başarıyla uygulanabilir Dinozor Paskalya Yumurtasına İzin Ver ayar.

Chrome DevTools özel API aracılığıyla politika değişikliklerini gösteriyor, CVE-2024-6778 Chrome DevTools güvenlik açığını gösteriyor

Daha büyük etki için, bir saldırgan BrowserSwitcher Politika:

CVE-2024-6778 Chrome DevTools güvenlik açığı ve özel API kötüye kullanımı ile ilgili tarayıcı değiştirici ilkesini gösteren JSON yapılandırması

Bu ilke, URL'nin belirli koşullarla eşleşmesi durumunda tarayıcının alternatif bir tarayıcı yolunu çağırmasını sağlar. Bu yol, işletim sistemi komutlarını çalıştırmak için bir sistem yürütülebilir dosyasına işaret edecek şekilde yapılandırılarak istismar edilebilir. Aşağıdaki JavaScript kodu bu yaklaşımı göstermektedir:

Özel API aracılığıyla kötü amaçlı kullanıcı ilkesi ayarlamak için CVE-2024-6778 Chrome DevTools güvenlik açığından yararlanan JavaScript kodu

Bu komut dosyası aşağıdaki görevleri yerine getirir: 

  • Etkinleştirir BrowserSwitcher example.com için özellik 
  • Alternatif tarayıcı yolunu powerShell'e ayarlar 
  • Yürütür calc belirtilen URL'ye her erişildiğinde.
CVE-2024-6778 Chrome DevTools güvenlik açığını gösteren Chrome ilkelerini, DevTools kodunu ve hesap makinesi uygulamasını gösteren kullanıcı arayüzü

Kötü Amaçlı Chrome Uzantısı Simülasyonu

İlkelerin uygulanmasını sağlayan özel API 'nin tanımlanması, saldırganlar için önemli bir saldırı vektörü oluşturur. Bu güvenlik açığından etkili bir şekilde faydalanmak için bir saldırganın kötü amaçlı JavaScript kodu çalıştırmak üzere Chrome DevTools API 'sini kullanan kötü amaçlı bir Chrome uzantısı geliştirmesi gerekir.  

Gerçek dünyadaki potansiyel etkiyi göstermek için arkadaşlarımız, kötü amaçlı bir Chrome uzantısının savunmasız bir tarayıcıya yüklendiği ve saldırıyı yürütmek için kullanıldığı bir senaryoyu simüle etti.Chrome Uzantıları'ndaki chrome.devtools API'leri, geliştiricilerin Chrome'un DevTools arayüzünü genişletmesine ve onunla etkileşime girmesine olanak tanır.  

Ancak, DevTools API 'sini bir uzantı aracılığıyla çalıştırmak, aşılması gereken bazı zorluklar ortaya çıkarır. İlk olarak, DevTools API yalnızca DevTools açık olduğunda ve bir web sitesini aktif olarak incelediğinde çalışır. İkinci olarak, DevTools API web kullanıcı arayüzü WebUI üzerinde kod yürütülmesine izin vermez. Bu sınırlama, geliştirme ve denetim süreçleri sırasında WebUI'nin güvenliğini ve bütünlüğünü korumaya yardımcı olur

Yeniden yükleme APIsi aracılığıyla Javascript Yürütüldüğünü Gösteren İşaretler

Daha fazla analiz, chrome.devtools.inspectedWindow.reload işlevinin, bir uzantının denetlenen sayfada komut dosyası çalıştırmasına izin verilip verilmediğini doğrulamaktan yoksun olduğunu ortaya çıkardı. Tek savunma seviyesi, denetlenen sayfanın URL'si değiştiğinde erişimi engelleyen devtools uzantı sunucusudur.  

Yeniden yükleme API'si aracılığıyla CVE-2024-6778 Chrome DevTools güvenlik açığı için inspectedWindow.reload() davranışını gösteren akış şeması

About:blank sayfaları, kendilerini açan sayfanın izinlerini ve kaynağını devralır. Bu, WebUI sinyallerinden yönlendirildiğinde about:blank üzerinde kod çalıştırma yeteneğinin potansiyel bir güvenlik açığı olduğu anlamına gelir.

reload API aracılığıyla webUI üzerinde Kod Yürütme

Yarış koşulu chrome.devtools.inspectedWindow.reload() Chrome'un genellikle korumalı olan WebUI sayfalarında (ör. chrome://policy) kod yürütülmesine izin verir. Açık, yeniden yükleme API'sinin sayfa geçişleri sırasında JavaScript enjekte etme özelliğinden yararlanıyor. İşte nasıl çalıştığı:

  • WebUI'yi hedefleyin: Bir sekmede bir WebUI sayfası (örneğin, chrome://policy) açın ve DevTools'u ekleyin.
  • Komut Dosyası Enjekte Etme: reload() API 'sini bir injectedScript parametresini kullanarak yeniden yükleme sırasında rastgele JavaScript çalıştırabilirsiniz.
  • Yarış Koşulundan Yararlanma: Yarış koşulu, WebUI'nin güvenlik mekanizmaları tam olarak başlatılmadan önce yeniden yükleme tetiklendiğinde ortaya çıkar ve enjekte edilen komut dosyasının yürütülmesine izin verir.

about:blank sayfasından chrome://policy sayfasına gitme bağlamında:  

CVE-2024-6778 Chrome DevTools'un yeniden yükleme API si ve gezinme sırasında ayarlanan kaynak üzerinden güvenlik açığını gösteren diyagram

Sayfanın kaynağı yerine yalnızca URL doğrulandığından, gezinmeden sonra URL değişmeden kalırken kaynağın yeni sayfayı yansıttığı kısa bir süre vardır.

Eğer chrome.devtools.inspectedWindow.reload bu pencere sırasında çağrılırsa, hedef sayfada istemeden JavaScript çalıştırabilir.

Yarış Koşulları için Güvenilirliğin Artırılması

Yarış koşulundan yararlanmak, zamanlamaya bağlı olması nedeniyle doğası gereği güvenilmezdir. Ayrıca, hızlı yeniden yüklemeler veya hatalı biçimlendirilmiş komut dosyaları sayfa çökmelerine neden olabilir. Güvenilirliği artırmak için yeni bir yaklaşım, DevTools aracılığıyla verilen komutlar genellikle bir çökme sırasında iptal edildiğinden, kasıtlı olarak bir sayfa çökmesine neden olmayı içerir, ancak Sayfa.yeniden yükle ile eşleştirildi chrome.devtools.inspectedWindow.reload() beyaz listeye alınır ve sayfa yeniden yüklendikten sonra yürütülür.

CVE-2024-6778 Chrome DevTools güvenlik açığı yarış koşullarıyla ilgili olarak Chrome DevTools'ta bekleyen mesajları işleyen C++ kodu

Aşağıda, sonraki komutları iterek bir sayfayı çökertmek için bir iş akışı modeli verilmiştir:  

Yarış koşulu güvenilirliğini iyileştirmek için CVE-2024-6778 Chrome DevTools güvenlik açığı sürecini gösteren diyagram

İçerik Kodundaki Hata Ayıklayıcı Deyimi Çökmeyi Tetikleyebilir

Hata ayıklayıcıyı art arda iki kez kullanmak, bir içerik komut dosyasındaki gezinme sürecini bozar. Aşağıdakileri yerleştirerek bir çökmeye yol açabilir navigation_commit_state_ beklenmedik bir duruma dönüşür. Bu sorun şu durumlarda ortaya çıkar RenderFrameImpl::SynchronouslyCommitAboutBlankForBug778318 yürütülür, altering _navigation_commit_state beklenmedik bir değere.

CVE-2024-6778 Chrome DevTools güvenlik açığı çökmesiyle ilgili gezinme taahhüt kontrollerini gösteren kod parçası\
CVE-2024-6778 Chrome DevTools güvenlik açığı çökmesiyle ilgili gezinme taahhüt durumu mantığını gösteren kod parçacığı

İlk çağrı yürütmeyi duraklatır ve navigation_commit_state_ tutarsız bir durumda ve ikinci duraklama sırasında CHECK_EQ kontrolü, durum doğrulamasında başarısız oluyor ve çökmeye neden oluyor.

İyileştirme

Tarayıcı sürümünüzü düzenli olarak güncellemeyi ihmal etmek, cihazınızı özellikle CVE'lere (Ortak Güvenlik Açıkları ve Maruziyetler) bağlı olanlar olmak üzere ciddi güvenlik tehditlerine maruz bırakabilir. Bu riski azaltmaya yardımcı olmak için MetaDefender Endpoint™, tarayıcı sürümünüzü algılayarak ve CVE-2024-6778 gibi bilinen CVE'ler de dahil olmak üzere güvenlik açıklarını kontrol ederek güçlü koruma sağlar.  

MetaDefender Endpoint , uygulamanızın güncel olmasını sağlar ve eski veya virüslü sürümleri işaretler. Ayrıca, CVE önem derecesine göre kategorize edilmiş bilinen güvenlik açıklarına sahip yüklü uygulamaları listeler ve olası tehditleri etkili bir şekilde azaltmak için düzeltmeler önerir. MetaDefender Endpoint 'in bu riskleri azaltmanıza nasıl yardımcı olabileceğine dair canlı bir demo görmek için bugün uzmanlarımızdan biriyle iletişime geçin. 

Etiketler:

OPSWAT ile Güncel Kalın!

En son şirket güncellemelerini almak için bugün kaydolun, hikayeler, etkinlik bilgileri ve daha fazlası.