Chrome V8 motorundaki Sentinel Value'nin güvenlik risklerini tartışmak
Sentinel değeri, algoritmalardaki özel bir değerdir ve genellikle döngü veya özyinelemeli algoritmalarda sonlandırma koşulu olarak bulunur. Chrome kaynak kodunda birçok Sentinel değeri bulunmaktadır. Son araştırmalar, belirli Sentinel değeri nesnelerinin sızdırılmasının Chrome kumanda içinde rastgele kod yürütülmesine yol açabileceğini göstermektedir.
Bu makale, yeni bir Sentinel value nesnesini tartışacaktır: Uninitialized Oddball. Bu istismar yöntemi, ilk olarak bir güvenlik açığı raporunda ortaya çıkmış ve güvenlik araştırmacıları tarafından tam kod sağlanmıştır. Dikkate değer bir nokta, bu yöntemin halen V8'in en son sürümünde kullanılabilir olması ve henüz düzeltilmemiş olmasıdır.
Bu yöntem güçlü bir genel geçerliliğe sahiptir:
Belirli bir CVE açığında, ilk PoC, internal uninitialized oddball'ın sızdırılmasıdır.
Başka bir CVE güvenlik açığı raporunda, araştırmacılar UninitializedOddball'ı doğrudan ifşa etti, o zaman saldırı zinciri eksik olmasına rağmen, güvenlik riski gösterdi.
Son bir güvenlik açığı raporunda tam istismar yöntemi verilmiştir.
Bu örnekler, sorunun yaygınlığını ve ciddiyetini göstermektedir. Şu ana kadar, bir iletişim yazılımı bu açığı henüz düzeltmemiştir.
Sentinel değerinin V8'deki kullanımı
V8 kaynak kodunda çok sayıda yerel nesne tanımlanmıştır; bunlar bellek içinde ardışık olarak yan yana dizilir. Eğer ifşa edilmemesi gereken yerel nesneler JavaScript'e açılırsa, sandbox içinde herhangi bir kodun çalıştırılması mümkün hale gelebilir.
Bu yöntemin en son V8'deki geçerliliğini doğrulamak için, V8'in yerel işlevini değiştirebiliriz ve Uninitialized Oddball'ı JavaScript'e sızdırabiliriz.
HardenType korumasını geçme
Belirli bir işlev UninitializedOddball döndüğünde, görece olarak herhangi bir okunabilirlik sağlamak için kod oluşturabiliriz. Optimize edilmiş derleme kodunu analiz ettiğimizde, işlevin yalnızca nesnenin özelliklerinin doğru olup olmadığını kontrol ettiğini, ancak özelliklere karşılık gelen değerleri kontrol etmediğini, doğrudan JavaScript semantiğine göre kaydırma hesaplayarak dizi elemanlarını elde ettiğini, böylece tür karışıklığına neden olduğunu ve herhangi bir okunabilirlik sağladığını görebiliriz.
Benzer şekilde, rastgele yazma da benzer yöntemlerle oluşturulabilir. Fonksiyonun döndürdüğü dizi elemanlarını optimize ederken, doğrudan ofset döndürme değerlerini hesaplamaktan kaçınmak için dizi haritasının kontrolünü eklemenizi öneririm.
Güvenlik Tehlikesi Hatırlatması
Analizler, belirli bir iletişim yazılımının şu anda bu açığı henüz düzeltmediğini göstermektedir. x86 sisteminde, adres sıkıştırması eksik olduğu için, herhangi bir okuma/yazma işlemi doğrudan tüm süreçle ilişkilidir. ASLR etkinleştirilmiş olmasına rağmen, dosyanın boyutu nedeniyle kritik içeriklere okuma/yazma yapılma olasılığı hala yüksektir. PE çözümleme gibi yöntemler bir araya getirildiğinde, tam bir istismar zincirinin kısa sürede tamamlanması mümkün olabilir.
Bu güvenlik açığı sadece tek bir açıkla ilgili değil, aynı zamanda daha önceki bazı benzer açıkların istismar edilme zorluğunu da büyük ölçüde azaltmıştır. Hackerlar, daha önce rapor edilen tüm benzer açıklar dahil olmak üzere, tam istismar sağlamak için neredeyse ek bir araştırma yapmaya ihtiyaç duymuyor.
Özet
Bu makale, Uninitialized Oddball'ın sızdırılması yoluyla rastgele okuma yöntemini kısaca tartışmaktadır. V8'de başka birçok Sentinel değeri bulunmaktadır, benzer güvenlik açıkları bulunabilir. Bu bize bazı ipuçları veriyor:
Diğer Sentinel değer sızıntıları V8 sandbox kaçışına neden olabilir mi?
Bu tür sorunlar resmi olarak bir güvenlik açığı olarak mı değerlendirilmelidir?
Fuzz testlerinde daha fazla potansiyel sorun keşfetmek için Sentinel value ile ilgili değişkenlerin eklenmesi gerekli mi?
Her halükarda, bu tür sorunlar, hackerların tam istismar süresini büyük ölçüde kısaltabilir, bu nedenle büyük önem taşımaktadır.
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.
8 Likes
Reward
8
4
Share
Comment
0/400
ArbitrageBot
· 07-11 10:52
Google ne yapıyor? Bu nasıl bir açık olabilir?
View OriginalReply0
SelfSovereignSteve
· 07-10 20:07
Tarayıcı koruması nerede?
View OriginalReply0
StablecoinArbitrageur
· 07-10 19:58
hmm başka bir açığın, anlamlı bir arb fırsatı ortaya çıkmadan önce %99,8 düzeltme olasılığı olması...
View OriginalReply0
DefiPlaybook
· 07-10 19:45
Tarayıcıda da airdrop mu oldu? Bu dalgadan yararlanabilir miyiz?
V8 motoru Sentinel değer sızıntısı açığı: Chrome sandık kaçışının yeni yöntem analizi
Chrome V8 motorundaki Sentinel Value'nin güvenlik risklerini tartışmak
Sentinel değeri, algoritmalardaki özel bir değerdir ve genellikle döngü veya özyinelemeli algoritmalarda sonlandırma koşulu olarak bulunur. Chrome kaynak kodunda birçok Sentinel değeri bulunmaktadır. Son araştırmalar, belirli Sentinel değeri nesnelerinin sızdırılmasının Chrome kumanda içinde rastgele kod yürütülmesine yol açabileceğini göstermektedir.
Bu makale, yeni bir Sentinel value nesnesini tartışacaktır: Uninitialized Oddball. Bu istismar yöntemi, ilk olarak bir güvenlik açığı raporunda ortaya çıkmış ve güvenlik araştırmacıları tarafından tam kod sağlanmıştır. Dikkate değer bir nokta, bu yöntemin halen V8'in en son sürümünde kullanılabilir olması ve henüz düzeltilmemiş olmasıdır.
Bu yöntem güçlü bir genel geçerliliğe sahiptir:
Belirli bir CVE açığında, ilk PoC, internal uninitialized oddball'ın sızdırılmasıdır.
Başka bir CVE güvenlik açığı raporunda, araştırmacılar UninitializedOddball'ı doğrudan ifşa etti, o zaman saldırı zinciri eksik olmasına rağmen, güvenlik riski gösterdi.
Son bir güvenlik açığı raporunda tam istismar yöntemi verilmiştir.
Bu örnekler, sorunun yaygınlığını ve ciddiyetini göstermektedir. Şu ana kadar, bir iletişim yazılımı bu açığı henüz düzeltmemiştir.
Sentinel değerinin V8'deki kullanımı
V8 kaynak kodunda çok sayıda yerel nesne tanımlanmıştır; bunlar bellek içinde ardışık olarak yan yana dizilir. Eğer ifşa edilmemesi gereken yerel nesneler JavaScript'e açılırsa, sandbox içinde herhangi bir kodun çalıştırılması mümkün hale gelebilir.
Bu yöntemin en son V8'deki geçerliliğini doğrulamak için, V8'in yerel işlevini değiştirebiliriz ve Uninitialized Oddball'ı JavaScript'e sızdırabiliriz.
HardenType korumasını geçme
Belirli bir işlev UninitializedOddball döndüğünde, görece olarak herhangi bir okunabilirlik sağlamak için kod oluşturabiliriz. Optimize edilmiş derleme kodunu analiz ettiğimizde, işlevin yalnızca nesnenin özelliklerinin doğru olup olmadığını kontrol ettiğini, ancak özelliklere karşılık gelen değerleri kontrol etmediğini, doğrudan JavaScript semantiğine göre kaydırma hesaplayarak dizi elemanlarını elde ettiğini, böylece tür karışıklığına neden olduğunu ve herhangi bir okunabilirlik sağladığını görebiliriz.
Benzer şekilde, rastgele yazma da benzer yöntemlerle oluşturulabilir. Fonksiyonun döndürdüğü dizi elemanlarını optimize ederken, doğrudan ofset döndürme değerlerini hesaplamaktan kaçınmak için dizi haritasının kontrolünü eklemenizi öneririm.
Güvenlik Tehlikesi Hatırlatması
Analizler, belirli bir iletişim yazılımının şu anda bu açığı henüz düzeltmediğini göstermektedir. x86 sisteminde, adres sıkıştırması eksik olduğu için, herhangi bir okuma/yazma işlemi doğrudan tüm süreçle ilişkilidir. ASLR etkinleştirilmiş olmasına rağmen, dosyanın boyutu nedeniyle kritik içeriklere okuma/yazma yapılma olasılığı hala yüksektir. PE çözümleme gibi yöntemler bir araya getirildiğinde, tam bir istismar zincirinin kısa sürede tamamlanması mümkün olabilir.
Bu güvenlik açığı sadece tek bir açıkla ilgili değil, aynı zamanda daha önceki bazı benzer açıkların istismar edilme zorluğunu da büyük ölçüde azaltmıştır. Hackerlar, daha önce rapor edilen tüm benzer açıklar dahil olmak üzere, tam istismar sağlamak için neredeyse ek bir araştırma yapmaya ihtiyaç duymuyor.
Özet
Bu makale, Uninitialized Oddball'ın sızdırılması yoluyla rastgele okuma yöntemini kısaca tartışmaktadır. V8'de başka birçok Sentinel değeri bulunmaktadır, benzer güvenlik açıkları bulunabilir. Bu bize bazı ipuçları veriyor:
Diğer Sentinel değer sızıntıları V8 sandbox kaçışına neden olabilir mi?
Bu tür sorunlar resmi olarak bir güvenlik açığı olarak mı değerlendirilmelidir?
Fuzz testlerinde daha fazla potansiyel sorun keşfetmek için Sentinel value ile ilgili değişkenlerin eklenmesi gerekli mi?
Her halükarda, bu tür sorunlar, hackerların tam istismar süresini büyük ölçüde kısaltabilir, bu nedenle büyük önem taşımaktadır.