Chrome V8 motorunun Sentinel Value sızıntısı ile ilgili güvenlik riskleri ve kullanım analizi

robot
Abstract generation in progress

Chrome V8 motorunda Sentinel Value sızıntısının neden olduğu güvenlik açıklarını araştırma

Sentinel değeri, algoritmalarda özel bir işaret olarak kullanılan bir değerdir, genellikle döngülerde veya özyinelemelerde sonlandırma koşulu olarak kullanılır. Chrome V8 motoru kaynak kodunda birden fazla Sentinel değeri bulunmaktadır ve bunlardan bazıları JavaScript ortamına sızmamalıdır. Bu yazıda, Uninitialized Oddball nesnesinin sızdırılması yoluyla Chrome V8 HardenProtect mekanizmasının nasıl aşılacağına dair bir yöntem tartışılacaktır.

V8'de Sentinel Değeri

V8 kaynak kodunun roots.h dosyasında çok sayıda yerel nesne tanımlanmıştır, bu nesneler bellekte yan yana sıralanır. Bu nesneler JavaScript'e sızdığında, sandbox'un kaçmasına neden olabilir.

Bunu doğrulamak için V8'in yerel fonksiyonlarını değiştirerek yapabiliriz. Örneğin, %TheHole() fonksiyonunun ofsetini değiştirerek Uninitialized Oddball nesnesini TheHole nesnesi yerine döndürmesini sağlayabiliriz.

Özel İfşa: Sentinel Value ile Chrome v8 HardenProtect'i Aşma

HardenType korumasını aşma

Uninitialized Oddball nesnelerini kullanarak nispeten rastgele bellek okuma işlemleri gerçekleştirilebilir. Anahtar, optimize edilmiş JavaScript read fonksiyonunda, yalnızca nesnenin prop özelliğinin doğru olup olmadığını kontrol etmesidir, ancak obj.prop anahtarıyla ilişkilendirilen değeri kontrol etmemesidir. Bu, hesaplama sürecinde tür karışıklığına neden olur ve böylece rastgele okuma işlemi gerçekleştirilir.

Optimizasyon sonrası derleme kodunu incelediğimizde, uninitialized_oddball geçirildiğinde, programın doğrudan kaydırmayı hesaplayıp verileri okuduğunu ve tür kontrolü yapmadığını görebiliriz. Bu yöntem, TheHole nesnesine kıyasla daha kolay bir şekilde inşa edilip kullanılabiliyor.

Özel Açıklama: Sentinel Value ile Chrome v8 HardenProtect'i Aşmanın Yolu

Özel İfşa: Sentinel Value ile Chrome v8 HardenProtect'i Atlama

Özel Açıklama, Sentinel Value sızıntısı ile Chrome v8 HardenProtect'i aşma

Özel ifşa: Chrome v8 HardenProtect'i aşmak için Sentinel Value sızıntısı

Özel Keşif: Chrome v8 HardenProtect'i Aşmak için Sentinel Value'yi Sızdırma

Önerilen düzeltme, optimize edilmiş işlevin dizi öğelerini döndürürken dizi haritasını kontrol etmesini eklemektir; böylece doğrudan kaydırma hesaplaması ile dizi değerlerini döndürmekten kaçınılır.

Özel ifşa, Sentinel Value aracılığıyla Chrome v8 HardenProtect'i aşmayı ortaya koyuyor

PatchGap Güvenlik Uyarısı

Bilinen tarihsel açıkların yanı sıra, üreticilerin temel bileşenlerde sessizce düzelttiği sorunlara da dikkat etmemiz gerekiyor. Analizler sonucunda, Skype yazılımının bu açığı hala düzeltmediği görüldü. x86 platformunda, adres sıkıştırma eksikliği nedeniyle, rastgele okuma/yazma aralığı daha geniştir ve neredeyse tüm süreç alanını okuyup yazabilir.

Bu sefer PatchGap yalnızca Issue1352549'u değil, aynı zamanda Issue1314616 ve Issue1216437 gibi benzer açıkları da kapsıyor. Yeni bir aşma yöntemi açıklandıktan sonra, bu açıkların kullanılma zorluğu büyük ölçüde azaldı; saldırganlar neredeyse ek bir araştırma yapmadan tam bir istismar zincirini tamamlayabiliyor.

Özel İnceleme: Sentinel Value sızıntısı ile Chrome v8 HardenProtect'i aşma

Özet

Bu makale, Uninitialized Oddball sızıntısı yoluyla herhangi bir okuma gerçekleştirme yöntemini kısaca incelemektedir. V8'de benzer sorunlara yol açabilecek başka birçok Sentinel değeri de bulunmaktadır. Bu, bize şunu hatırlatıyor:

  1. Diğer uninitialized_Oddball sızıntıları da V8 sandbox'ının sızmasına neden olabilir.

  2. Bu tür sorunların resmi güvenlik açığı olarak kabul edilip edilmeyeceği hala tartışmalıdır.

  3. Bulanık testte Sentinel değerini bir değişken olarak eklemeyi düşünün, yeni istismar yöntemlerini keşfetmek için.

Her halükarda, bu tür sorunlar, saldırganların tam fayda sağlaması için gereken süreyi büyük ölçüde kısaltacaktır ve buna büyük önem verilmelidir.

Özel Açıklama: Sentinel Value sızıntısı ile Chrome v8 HardenProtect'i aşma

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 4
  • Share
Comment
0/400
MoonBoi42vip
· 16h ago
Biraz panikledim, çok fazla açık var.
View OriginalReply0
SleepyArbCatvip
· 08-02 05:40
Kod yazmaktan başka bir şey yapamayacak kadar yorgun kedi...zZz
View OriginalReply0
ChainDetectivevip
· 08-02 05:38
Aman Tanrım v8 motoru açığı Kesinleşti
View OriginalReply0
LadderToolGuyvip
· 08-02 05:36
Şaşırdım, yine bir çözüm bulmuşlar.
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)