Chromium’daki prototip kirlilik hatası Sanitizer API’yi atladı


Sorun, istemci tarafı saldırılarını önlemenin zorluklarını vurguluyor

Chromium'daki prototip kirlilik hatası Sanitizer API'yi atladı

Chromium projesindeki bir prototip kirlilik hatası, saldırganların, kullanıcı tarafından kontrol edilen giriş kaynaklarından potansiyel olarak kötü amaçlı kodları kaldırmak için yerleşik bir tarayıcı kitaplığı olan Sanitizer API’yi atlamasına izin verdi.

Prototip kirliliği, saldırganların bir uygulamanın davranışını değiştirmek ve onu çeşitli şekillerde tehlikeye atmak için programlama dilinin kurallarından yararlanmasına olanak tanıyan bir JavaScript güvenlik açığı türüdür.

Güvenlik araştırmacısı Michał Bentkowski tarafından bildirilen hata, istemci tarafı prototip kirlilik saldırılarını önlemenin zorluklarını vurguluyor.

İstemci tarafı prototip kirliliği

Prototip kirliliği hem istemci tarafında (tarayıcı) hem de sunucu tarafında (Node.js sunucuları) olabilir. Konuyla ilgili kapsamlı araştırmalar yapan Bentkowski, Chromium’daki istemci tarafı prototip kirliliği güvenlik açıklarını keşfederken yeni hatayı keşfetti.

Sanitizer API, DOMPurify gibi üçüncü taraf kitaplıkların yerine yerel temizlemeyi desteklemek için Chromium tarayıcılarına eklendi.

Bentkowski’nin bulgularına göre, JavaScript nesnesi Sanitizer argüman olarak boş bir nesneyle başlatılırsa, temizleme akışını atlayan dahili bir mekanizmayı tetikleyecektir. Bentkowski anlattı Günlük Swig boş nesne tarayıcının “prototip zincirini geçmesine” neden olur.

ARKA FON Prototip kirliliği: JavaScript uygulamalarını etkileyen tehlikeli ve yetersiz kusur

Kavram kanıtı olarak Bentkowski, API’nin bir SVG nesnesine gömülü bir JavaScript pasajını temizlemeyi özlediğini gösterdi. Sözde sterilize edilmiş SVG sayfaya eklendiğinde, JavaScript kodu yürütülür.

Bentkowski raporunda, güvenlik açığının çalışması için tarayıcının etkinleştirilmesi gerektiğini belirtiyor.

Bentkowski, “Tahminim, bu bayrağı etkinleştiren az sayıda insan var,” dedi. “Ancak Sanitizer API, Chrome 105’te varsayılan olarak etkindir (Ağustos sonunda yayınlandı), bu nedenle etkilenen kullanıcı tabanı artık daha büyük.”

Hata mı, özellik mi?

Chromium hata izleyicisindeki tartışma dizisi, prototip kirlilik hatalarına sınırlar çizmenin bazı karmaşıklıklarını gösterir. Prototipleri manipüle etmek, JavaScript’i esnek ve çok yönlü yapan özelliklerden biridir; bu, uygulamaların prototip kirliliği saldırılarına karşı güçlendirilmesinin her zaman web geliştiricilerinin titiz çabalarını gerektireceği anlamına gelir.

Bir güvenlik araştırmacısının tartışma başlığında belirttiği gibi, prototip kirlilik vektörü, Sanitizer API’sinde ele alınması gereken bir şey değildir.

“Nesne prototiplerinin kirlendiği ortamlar zaten tehlikeye girdi ve seçilen web API’lerini buna karşı seçici olarak sertleştirmenin pek pratik fayda sağlayacağını düşünmüyorum ve API bilişsel karmaşıklığı pahasına yalnızca yanlış bir güvenlik hissi sunabilir, ” araştırmacı yazdı.

Bentkowski, “Hatayı bildirmeden önce, prototip zincirinin Web API’leri tarafından geçilmesi gerektiğini özel olarak tanımlayan bir WebIDL özelliğinin varlığından haberdar değildim,” dedi.

“Bu, aslında bunun bir özellik olduğu ve bu şu anda değiştirilemeyeceği anlamına geliyor çünkü bu geriye dönük uyumsuzluk olurdu; yani birçok uygulama bozulur.”

Bu nedenle geliştiricilerin, prototipleri kirleten tüm gadget’ları kullanıcı kontrollü kaynaklardan tanımlaması ve kaldırması gerekir.

Bununla birlikte, Bentkowski’nin keşfi bazı düzeltmelerle sonuçlandı. “[The bug] yalnızca SVG örneğinde çalıştı. Sonunda, başvurudaki gerçek hata buydu” dedi.

“Prototip kirliliği kendi başına bir ‘özellik’ olarak kabul edildi. Ancak, özel olarak oluşturulmuş konfigürasyon nesnesi tarafından Sanitizer’ı atlamak mümkün olmamalıydı.”

KAÇIRMAYIN PowerShell komut dosyasında tespit edilen sabit kodlanmış sırlarla bağlantılı Uber hack



Source link