Safari’nin WebKit motorunda IndexedDB API’sinin uygulanmasıyla ilgili bir sorun var ve bu, tarama etkinliğinin gerçek zamanlı olarak sızdırılmasına ve hatta bu kusurdan yararlanan herkese kullanıcı kimliklerinin sızdırılmasına neden olabilir.
IndexedDB, kapasite sınırı olmayan çok yönlü bir istemci tarafı depolama sistemi olan, yaygın olarak kullanılan bir tarayıcı API’sidir.
Modüller, geliştirme araçları ve tarayıcı uzantıları bunu hassas bilgileri depolamak için kullanabilirken, genellikle çevrimdışı görüntüleme için web uygulaması verilerini önbelleğe almak için kullanılır.
Siteler arası komut dosyası çalıştırma saldırılarından veri sızıntılarını önlemek için IndexedDB, her bir veri parçasına hangi kaynakların erişebileceğini denetleyen “aynı kaynak” politikasını izler.
Ancak FingerprintJS analistleri, IndexedDB API’sinin, Safari 15 tarafından macOS’ta kullanılan WebKit uygulamasında aynı kaynak ilkesini izlemediğini ve bunun da hassas verilerin ifşa edilmesine yol açtığını keşfetti.
Bu gizlilik ihlali hatası, en son iOS ve iPadOS sürümlerinde aynı tarayıcı motorunu kullanan web tarayıcılarını da etkiler.
Safari 15’teki sorun
Aynı kaynak ilkesini ihlal ederek, IndexedDB’nin iOS, iPadOS ve macOS’ta Safari 15’te uygulanması, herhangi bir web sitesinin aynı oturumda oluşturulan veritabanı adlarını çizmesine olanak tanır.
Veritabanı adları tipik olarak benzersiz ve web sitesine özgü olduğundan, bu aslında tarama geçmişini herhangi birine sızdırmak gibidir.
Daha da kötüsü, bazı veritabanı adları kullanıcıya özel tanımlayıcılara sahiptir (oturum açıldıktan sonra), bu nedenle bu API sızıntısı potansiyel olarak kullanıcı kimliğine yol açabilir.
Etki ve azaltma
Analistlere göre, bu kusur aracılığıyla birini belirlemek, YouTube ve Facebook gibi popüler web sitelerini veya Google Calendar ve Google Keep gibi hizmetleri ziyaret etmeyi ve oturum açmayı gerektiriyor.
Bu sitelerde oturum açmak, yeni bir IndexedDB veritabanı oluşturur ve adına Google Kullanıcı Kimliğini ekler. Birden fazla Google hesabı kullanıldığında, her biri için ayrı veritabanları oluşturulur.
“Kaç web sitesinin IndexedDB kullandığını ve etkileşimde bulundukları veritabanları tarafından benzersiz bir şekilde tanımlanabileceğini anlamak için Alexa’nın en çok ziyaret edilen 1000 web sitesinin ana sayfalarını kontrol ettik” diyor. FingerprintJS raporu.
“Sonuçlar, 30’dan fazla web sitesinin, herhangi bir ek kullanıcı etkileşimi veya kimlik doğrulama ihtiyacı olmadan, dizinlenmiş veritabanlarıyla doğrudan ana sayfalarında etkileşime girdiğini gösteriyor.”
“Web siteleri, belirli kullanıcı eylemlerinden sonra veya sayfanın kimliği doğrulanmış bölümlerinde alt sayfalardaki veritabanlarıyla etkileşime girebildiğinden, bu sayının gerçek dünya senaryolarında önemli ölçüde daha yüksek olduğundan şüpheleniyoruz.”
Alt kaynakların UUID (evrensel olarak benzersiz tanımlayıcılar) veritabanları oluşturduğu bazı durumlarda, Safari’nin izleme önleme sistemleri bilgi sızıntısını engellemek için müdahale eder. Bu olumlu yan azaltıcı etki, reklam engelleme uzantıları kullanılırsa daha da artar.
Safari 15’teki özel mod hala etkileniyor, ancak her göz atma oturumu tek bir sekmeyle sınırlı. Bu nedenle, potansiyel olarak sızdırılabilecek bilgilerin kapsamı, en azından bu sekme aracılığıyla ziyaret edilen web siteleri ile sınırlıdır.
Bu WebKit’te bir sorun olduğundan, bu belirli motoru kullanan herhangi bir tarayıcının (örneğin, Brave veya iOS için Chrome) da savunmasız olduğunu unutmayın.
Hatanın tarayıcınız üzerindeki etkisini belirlemek için şu adresi ziyaret edebilirsiniz: bu tanıtım sayfasıAPI sızıntısını yeniden üreten .
Güvenlik açığı, 28 Kasım 2021’de WebKit Bug Tracker’a bildirildi ve bu yazı yazılırken hâlâ ele alınmamıştı.
Güvenlik güncellemeleri kullanıma sunulana kadar sorunu azaltmanın bir yolu, tüm JavaScript’i engellemektir, ancak bu, birçok web sayfasında işlevsellik sorunlarına neden olacak kesin bir önlemdir.
Tek geçerli çözüm WebKit tabanlı olmayan bir web tarayıcısına geçmektir, ancak bu yalnızca macOS için geçerlidir. iOS ve iPadOS’ta tüm web tarayıcıları etkilenir.