- LinkedIn web sitesi, sayfa her yüklendiğinde 2.953 Chrome uzantısının varlığını tespit ediyor
- Depo, LinkedIn'in kontrol ettiği tüm uzantı kimliklerini, adlarını ve Chrome Web Store bağlantılarını belgeliyor
- Tüm uzantıların yaklaşık %78'i Chrome Web Store üzerinden, yaklaşık %22'si ise Extpose aracılığıyla doğrulandı
- Sunulan betik (
fetch_extension_names.js), uzantı adlarını otomatik olarak topluyor ve silinmiş uzantılar için Extpose üzerinden alternatif sorgu yapıyor
- Bu veri, web sitelerinin kullanıcı tarayıcı uzantılarını tanımlama uygulamasının ölçeğini gösteriyor
LinkedIn Chrome Extension Fingerprinting
- LinkedIn, her sayfa yüklemesinde 2.953 Chrome uzantısını gizlice kontrol ediyor
- Bu süreç, kullanıcının tarayıcısına yüklü uzantıları belirlemek için bir fingerprinting yöntemi olarak yürütülüyor
- Depo, LinkedIn'in kontrol ettiği tüm uzantı listesini ve ilgili araçları içeriyor
chrome_extensions_with_names_all.csv dosyasında uzantı kimliği, adı ve Chrome Web Store veya Extpose bağlantısı düzenli şekilde yer alıyor
Veri yapısı
- Veri dosyasında üç sütun bulunuyor: Extension ID, Name, URL
- Extension ID 32 karakterli bir tanımlayıcıdır; URL ise Chrome Web Store veya Extpose bağlantısına gider
- Listenin tamamı
chrome_extensions_with_names_all.csv dosyasında görülebilir
Betikler
- fetch_extension_names.js, uzantı adlarını Chrome Web Store'dan alır; silinmiş ya da erişilemeyen durumlarda Extpose üzerinden alternatif sorgu yapar
- Komut örnekleri:
node fetch_extension_names.js, node fetch_extension_names.js --offset 0 --limit 500
- test_fetch.js, ilk 3 uzantıyı işler ve ayrıntılı çıktı (verbose) modunda test edilebilir
İstatistikler
- LinkedIn'in fingerprint listesinde toplam 2.953 uzantı bulunuyor
- Bunların yaklaşık %78'i Chrome Web Store üzerinden, yaklaşık %22'si ise Extpose aracılığıyla doğrulanmış durumda
Kaynak dosyalar
chrome_extension_ids.txt : LinkedIn'in fingerprint.js dosyasından çıkarılan ham uzantı kimlikleri listesi
fingerprint.js : LinkedIn sayfasına gömülü uzantı tespit betiği (kısaltılmış sürüm)
fetch_extension_names.js : Uzantı adlarını otomatik toplayan yardımcı betik
Özet
- LinkedIn, tarayıcı uzantısı bilgilerini büyük ölçekte kontrol ediyor ve
bu depo, tam listeyi ve toplama yöntemini şeffaf biçimde yayımlıyor
1 yorum
Hacker News yorumları
Firefox bu soruna karşı bağışık gibi görünüyor
Chrome, uzantıların web erişimli kaynaklarını
chrome-extension://[PACKAGE ID]/[PATH]biçiminde açığa çıkarırken,Firefox buna
moz-extension://<extension-UUID>/myfile.pngbiçimiyle erişiyor.Burada
<extension-UUID>her tarayıcı için rastgele oluşturuluyor; böylece sitelerin, yüklü uzantılar üzerinden tarayıcıda parmak izi çıkarma (fingerprinting) yapması engelleniyorİlgili belgeler: Chrome dokümanı, Firefox dokümanı
“Bu tarayıcıda X, Y, Z uzantıları var”dan “Bu Jim Bob'un tarayıcısı”na dönüşmüş olmuyor mu?
Uzantı listesine bakınca çoğunun LinkedIn veri kazıma ya da otomasyonla ilgili uzantılar olduğu görülüyor
LinkedIn'de çalışırken de bu tür suistimaller çok yaygındı; içeride tespit ve önleme sistemlerini epey gelişmiş hale getirmiştik ama bu hiç bitmeyen bir savaştı
Bu, Chrome Web Store TOS ihlali de olabilir
Chrome artık yeni IE6 gibi
Google kendini yeni Microsoft'a dönüştürdü ve reklam dostu bir yöne gidiyor.
Güvenliği artırmaktan çok reklam engelleyicileri etkisizleştirme ve zararlı yazılıma alan açma yönünde katkı sunduğu hissi veriyor
Yama hızı ve güvenlik testleri de kötü değil
LinkedIn'i açıp F12'ye bastığınızda hata sayacı sürekli artıyor
Ekran görüntüsü burada görülebilir
Yakın zamanda LinkedIn'in uzantı tespit tekniğini ve yan etkisi daha az olan başka yöntemleri bir blog yazısında derledim
Castle blog yazısı
navigator.webdriverdeğerini sürekli false yaparsanız uzaktan kontrol mümkün olur.Tespit edilmesi zorlaşır ama giriş hızı örüntüleri üzerinden yine de yakalanabilir
Birkaç ay önce bununla ilgili bir yazı yazmıştım.
Bunun neden mümkün olduğunu ve nasıl önlenebileceğini de anlatmıştım
Yazı bağlantısı
LinkedIn son zamanlarda garip dark pattern'ler çok kullanıyor
Bunun nedenini bilen biri var mı diye merak ediyorum
Web crawling'den insan eliyle yapılan manuel çalışmaya kadar uzanan süreçte çeşitli savunma stratejileri kullanıyorlar
Bu yöntem aslında 2019'dan beri biliniyor
Nymeria blog yazısı
LinkedIn'in taradığı uzantı listesi açık ama asıl ilginç olan, taramadığı uzantılar
Mesela “Contact Out” taranabilir durumda ama LinkedIn buna karşı görmezden geliyor gibi duruyor.
Arka planda bir anlaşma mı vardı diye insan şüpheleniyor
Contact Out uzantı bağlantısı
“Bu depo, LinkedIn'in incelediği tüm uzantıları belgeliyor ve bunları tanımlamaya yarayan araçlar sunuyor” deniyor ama,
LinkedIn'in bu kimlikleri gerçekten taradığını nasıl doğruladıklarını merak ediyorum.
Ayrıca bunun Chrome dışı kullanıcılar için de geçerli olup olmadığını bilmek isterim
kendi yaklaşımlarının “daha sessiz, daha az görünür ve büyük ölçekte çalıştırması daha kolay” olduğunu övüyordu
Castle blog yazısı