Chrome'daki Spectre güvenlik açıklarından yararlanmaya yönelik yeni teknik

Amerika, Avustralya ve İsrail üniversitelerinden bir grup araştırmacı, Chromium motorunu temel alan tarayıcılardaki Spectre sınıfı güvenlik açıklarından yararlanmak için yeni bir yan kanal saldırı tekniği önerdi. Kod adı Spook.js olan saldırı, JavaScript kodunu çalıştırarak site izolasyon mekanizmasını atlamanıza ve mevcut işlemin tüm adres alanının içeriğini okumanıza olanak tanır; diğer sekmelerde çalışan ancak aynı süreçte işlenen sayfalardaki verilere erişim.

Chrome, farklı siteleri farklı süreçlerde çalıştırdığından pratik saldırılar gerçekleştirme yeteneği, farklı kullanıcıların sayfalarını barındırmasına olanak tanıyan hizmetlerle sınırlıdır. Yöntem, saldırganın kendi JavaScript kodunu yerleştirme fırsatına sahip olduğu bir sayfadan, kullanıcı tarafından aynı sitede açılan diğer sayfaların varlığının belirlenmesine ve bu sayfalardan, örneğin kimlik bilgileri veya banka ayrıntıları gibi gizli bilgilerin çıkarılmasına olanak tanır. web formlarındaki alanların otomatik doldurulması sistemi tarafından. Gösterim amacıyla, Tumblr hizmetindeki başka birinin bloguna, sahibinin aynı hizmette barındırılan bir saldırganın blogunu başka bir sekmede açması durumunda nasıl saldırabileceğiniz gösterilmiştir.

Yöntemi kullanmanın başka bir seçeneği de, saldırgan tarafından kontrol edilen bir eklenti yüklenirken diğer eklentilerden veri çıkarılmasına olanak tanıyan tarayıcı eklentilerine yapılan bir saldırıdır. Örnek olarak, kötü amaçlı bir eklenti yükleyerek LastPass şifre yöneticisinden gizli bilgileri nasıl çıkarabileceğinizi gösteriyoruz.

Araştırmacılar, CPUIntel i89-7K ve i6700-7U'ya sahip sistemlerde Chrome 7600'da çalışan bir istismarın prototipini yayınladı. Açıklardan yararlanmayı oluştururken, Spectre sınıfı saldırıları gerçekleştirmek için daha önce Google tarafından yayınlanan JavaScript kodunun prototipleri kullanıldı. Araştırmacıların, Intel ve Apple M1 işlemcilerini temel alan sistemler için, bellek okumasını saniyede 500 bayt hızda ve %96 doğrulukla düzenlemeyi mümkün kılan çalışan istismarlar hazırlayabildikleri kaydedildi. Yöntemin AMD işlemciler için de geçerli olduğu varsayılıyor ancak tam işlevsel bir istismar hazırlamak mümkün olmadı.

Saldırı, Google Chrome, Microsoft Edge ve Brave dahil olmak üzere Chromium motorunu kullanan tüm tarayıcılara uygulanabiliyor. Araştırmacılar ayrıca yöntemin Firefox ile çalışacak şekilde uyarlanabileceğine inanıyor ancak Firefox motoru Chrome'dan çok farklı olduğundan, böyle bir istismarın yaratılmasına yönelik çalışmalar geleceğe bırakıldı.

Talimatların spekülatif olarak yürütülmesiyle ilgili tarayıcı tabanlı saldırılara karşı koruma sağlamak için Chrome, adres alanı bölümlendirmesini uygular; korumalı alan yalıtımı, JavaScript'in yalnızca 32 bit işaretçilerle çalışmasına olanak tanır ve işleyicilerin belleğini ayrı 4 GB yığınlarda paylaşır. İşlem adres alanının tamamına erişim sağlamak ve 32 bit sınırlamasını atlamak için araştırmacılar, Type Confusion adı verilen, JavaScript motorunu yanlış türdeki bir nesneyi işlemeye zorlayan ve 64 bitlik bir adres oluşturmayı mümkün kılan bir teknik kullandılar. iki 32 bitlik değerin birleşimine dayanan işaretçi.

Saldırının özü, JavaScript motorunda özel olarak tasarlanmış kötü amaçlı bir nesneyi işlerken, diziye erişen talimatların spekülatif olarak yürütülmesine yol açan koşulların yaratılmasıdır. Nesne, saldırganın kontrol ettiği alanlar 64 bit işaretçinin kullanıldığı alana yerleştirilecek şekilde seçilir. Kötü amaçlı nesnenin türü işlenen dizinin türüyle eşleşmediğinden, normal koşullar altında bu tür eylemler Chrome'da dizilere erişmek için kullanılan kodun optimizasyonunu bozan bir mekanizma tarafından engellenir. Bu sorunu çözmek için, Tür Karışıklığı saldırısının kodu, normal koşullar altında etkinleştirilmeyen ancak işlemcinin daha fazla dallanmayı yanlış tahmin etmesi durumunda spekülatif modda yürütülen koşullu bir "if" bloğuna yerleştirilir.

Sonuç olarak işlemci, oluşturulan 64 bit işaretçiye spekülatif olarak erişir ve başarısız bir tahmin belirledikten sonra durumu geri alır, ancak yürütmenin izleri paylaşılan önbellekte kalır ve değişiklikleri analiz eden yan kanal önbellek algılama yöntemleri kullanılarak geri yüklenebilir. önbelleğe alınmış ve önbelleğe alınmamış verilere erişim süreleri. JavaScript'te bulunan zamanlayıcının yetersiz doğruluğu koşullarında önbellek içeriğini analiz etmek için, Google tarafından önerilen, işlemcilerde kullanılan Tree-PLRU önbellek çıkarma stratejisini aldatan ve döngü sayısını artırarak izin veren bir yöntem kullanılır. Önbellekte bir değerin mevcut olduğu ve bulunmadığı zaman arasındaki farkı önemli ölçüde artırır.

Kaynak: opennet.ru

Yorum ekle