1 puan yazan GN⁺ 2026-05-02 | 1 yorum | WhatsApp'ta paylaş
  • LinkedIn, Chrome’da chrome-extension:// URL istekleri göndererek belirli uzantıların kurulu olup olmadığını kontrol ediyor; kurulu olmayan öğeler geliştirici araçları konsolunda istek başarısızlığı hatası olarak görünüyor
  • LinkedIn zaten kullanıcının adı, işvereni, unvanı, kariyer geçmişi ve konumu gibi bilgilerine sahip olduğundan, bu uzantı taraması anonim bir cihaz parmak izi oluşturmaktan ziyade doğrulanmış profesyonel kimliğe bir yazılım listesi eklemek anlamına geliyor
  • browsergate.eu kayıtları ve GitHub takip deposuna göre tarama en az 2017’den beri sürüyor; hedef liste 38 öğeden 2026 Nisan itibarıyla 6.278 öğeye çıktı
  • Tarama, LinkedIn’in APFC cihaz parmak izi toplama sisteminin bir parçası; canvas fingerprint, WebGL, ses davranışı, fontlar, ekran bilgisi, cihaz belleği, WebRTC yerel IP’si gibi 48 tarayıcı ve cihaz özelliğiyle birlikte bir profil oluşturuyor
  • Tespit sonuçları AedEvent ve SpectroscopyEvent olarak paketlenip RSA açık anahtarıyla şifrelenerek LinkedIn’in li/track uç noktasına gönderiliyor; browsergate.eu bu yöntemin AB Dijital Pazarlar Yasası’nı ihlal ettiğini savunuyor ve bu konuda cezai soruşturma açıldığını belirtiyor

Kişisel olarak tanımlanabilir profile eklenen yazılım listesi

  • Genel parmak izi toplama yaklaşımı, anonim ziyaretçilerin tarayıcılarını çerez olmadan yeniden tanımaya yönelik bir yöntem olarak ele alınır
  • Bu durumda profil cihaz düzeyinde tanımlanabilir olsa da mutlaka kişinin kimliğiyle bağlantılı olmak zorunda değildir
  • LinkedIn ise anonim bir ziyaretçiyi değil, kullanıcının adı, işvereni, unvanı, kariyer geçmişi, maaş aralığı, profesyonel ağı ve konumu gibi bilgileri zaten elinde tutuyor
  • LinkedIn’in uzantı taraması, bilinmeyen bir ziyaretçinin cihaz profilini oluşturmaktan çok, zaten doğrulanmış profesyonel kimliğe ayrıntılı bir yazılım listesi ekleme yöntemi haline geliyor
  • LinkedIn’in tarama listesinde yüzlerce iş aramayla ilgili uzantı yer alıyor; bu da kullanıcının işverenine söylemeden sessizce iş arayıp aramadığının anlaşılmasını sağlayabilir
  • Siyasi içerik, dini pratikler, engellilik desteği ve nöroçeşitlilikle ilgili uzantılar da listede bulunduğundan, tarayıcı yazılımı kişinin özel hayatı hakkında çıkarım yapmak için temel oluşturabilir
  • LinkedIn kullanıcının nerede çalıştığını bildiği için, tek bir çalışanın tarama sonucu yalnızca o kişiyi değil, çalıştığı kuruluşun iç araçlarını, güvenlik ürünlerini, rakip aboneliklerini ve iş akışlarını anlamaya da katkı sağlayabilir
  • LinkedIn’in privacy policy belgesinde uzantı taramasından söz edilmiyor; kullanıcılardan buna ilişkin onay istenmiyor ve bilgilendirme de yapılmıyor

LinkedIn’in ötesine geçen sorun

  • Yaptırım ve emsal

    • LinkedIn, uzantı listesini kullanarak belirli uzantıları kurmuş kullanıcılar hakkında çıkarım yapıyor ve yaptırım uyguluyor
    • browsergate’e göre Milinda Lakkam, yeminli ifadesinde “LinkedIn took action against users who had specific extensions installed.” sözleriyle bunu doğruladı
    • Kullanıcıların, yazılımlarının listelendiğini, bu listenin kendi aleyhlerine kullanıldığını ve bunun LinkedIn gizlilik politikasında yer almadığını öğrenmelerinin bir yolu yok
  • Parmak izi ekosistemi

    • Tarayıcı parmak izi toplama genelde bir sitenin sinyaller toplayıp profil oluşturması ve kullanıcıyı oturumlar arasında tanıması sorunu olarak ele alınır
    • LinkedIn’in uzantı taraması, doğrulanmış kimliğe bağlı ayrıntılı bir yazılım listesi üretir ve bu profilin LinkedIn içinde kalması gerekmez
    • LinkedIn üçüncü taraf davranış veri setleri satın alır ve bunların içinde kullanıcının parmak izi bulunursa, bunu zaten elindeki kullanıcı bilgilerine ekleyebilir
    • LinkedIn dışındaki gezinme davranışı, satın alma geçmişi, konum örüntüleri ve ilgi alanları, LinkedIn hesabına bağlı profilin bir parçası haline gelebilir
    • Ters yönde ise LinkedIn, her sayfa ziyaretinde yüklenen Google reCAPTCHA enterprise dahil üçüncü taraf script’ler entegre ediyor; böylece platformlar arasında veri akışı oluşuyor
    • LinkedIn’in doğrulanmış kimliğe bağladığı parmak izi, linkedin.com dışındaki reklam ve takip sistemlerini de etkileyebilir
    • LinkedIn’e bir kez giriş yapıldığında, o ziyarette oluşturulan parmak izi web genelinde kullanıcıyı takip edebilir
    Reklam
  • Gerçek risk altındaki kullanıcı grupları

    • Gazeteciler, avukatlar, araştırmacılar ve insan hakları soruşturmacıları için LinkedIn profili internetteki en ayrıntılı doğrulanmış kimlik belgelerinden biri olabilir
    • LinkedIn profili, gerçek adla ve profesyonel amaçlarla kasıtlı olarak inşa edilmiş bir bilgi kümesidir
    • Uzantı taraması, kullanıcının farkında olmadan bu profile gizlilik araçları, güvenlik uzantıları, araştırma araçları ve üretkenlik uygulamalarının kurulum kayıtlarını bağlıyor
    • LinkedIn ve Chrome kullanıyorsanız bu toplama işlemi şu anda gerçekleşiyor

APFC ve gelişmiş JavaScript parmak izi toplama

  • Uzantı taraması tek başına çalışan bir özellik değil; LinkedIn’in içeride APFC dediği daha geniş bir cihaz parmak izi toplama sisteminin parçası
  • APFC, Anti-fraud Platform Features Collection’ın kısaltması; içeride DNA, yani Device Network Analysis olarak da anılıyor
  • LinkedIn bu takip yöntemleri konusunda uzantı taramasına kıyasla daha açıktı, ancak bu yöntemler ticari web sitelerinde yaygın olarak bulunuyor
  • Bu sistem her ziyarette 48 tarayıcı ve cihaz özelliği topluyor
  • Toplananlar arasında canvas fingerprint, WebGL renderer ve parametreleri, ses işleme davranışı, kurulu fontlar, ekran çözünürlüğü, piksel oranı, donanım eşzamanlılığı, cihaz belleği, pil seviyesi, WebRTC üzerinden yerel IP adresi, saat dilimi ve dil yer alıyor
  • Uzantı taraması, daha büyük profilin oluşmasına katkı veren girdilerden yalnızca biri

Teknik olarak ne oluyor

  • LinkedIn’in kodu, Chrome’da kurulu belirli dosyaları aramak için chrome-extension:// URL’lerine fetch() istekleri gönderiyor
  • Uzantı kurulu değilse Chrome isteği engelliyor ve başarısızlığı logluyor
  • Uzantı kuruluysa istek sessizce başarılı oluyor ve LinkedIn bunu kaydediyor
  • Doğrulanmış bir ortamda tarama yaklaşık 15 dakika sürdü ve 6.000’den fazla uzantıyı yokladı
  • Kullanıcılar bunu Chrome’da LinkedIn’i açıp geliştirici araçlarındaki konsol sekmesinden doğrudan görebilir
  • Konsoldaki her kırmızı hata, kullanıcının parmak izinin bir parçasına karşılık geliyor
Reklam

Kod yapısı ve tespit yöntemi

  • LinkedIn tüm Chrome ziyaretçilerinin tarayıcısında JavaScript kodu çalıştırıyor ve uzantı taramasını yapan sistem bunun içinde yer alıyor
  • İlgili dosya yaklaşık 1,6 MB boyutunda, küçültülmüş ve kısmen obfuscate edilmiş bir JavaScript dosyası
  • Olağan minification, performans için kodu sıkıştırma işlemidir; obfuscation ise kodun okunmasını ve anlaşılmasını zorlaştıran ayrı bir adımdır
  • LinkedIn, uzantı tarama sistemini içeren tam modülü obfuscate ediyor ve bunu binlerce satırlık JavaScript dosyasının içine gömüyor
  • Dosyanın içinde tarayıcı uzantısı ID’lerinden oluşan hard-coded bir dizi bulunuyor
  • 2026 Şubat itibarıyla bu dizide 6.278 kayıt vardı
  • Her kayıtta iki alan bulunuyor: Chrome Web Store uzantı ID’si ve o uzantı paketinin içindeki belirli bir dosya yolu
  • Dosya yolu rastgele bir değer değil; çünkü Chrome uzantıları web_accessible_resources alanı üzerinden dahili dosyalarını web sayfalarına açabiliyor
  • Uzantı kuruluysa ve belirli dosyayı erişilebilir olarak tanımladıysa, chrome-extension://{id}/{file} adresine gönderilen fetch() isteği başarılı oluyor
  • Kurulu değilse Chrome isteği engelliyor
  • LinkedIn listedeki 6.278 uzantının her biri için belirli erişilebilir dosyaları tespit edip doğrudan algılıyor
  • Liste sürekli korunup genişletiliyor; görünüşe göre Chrome Web Store uzantı paketlerini crawl eden ve her manifestteki web erişilebilir kaynakları parse ederek tespit hedeflerine ekleyen araçlar da vardı

İki tarama modu ve Spectroscopy

  • Uzantı taraması iki modda çalışıyor
  • İlk mod, Promise.allSettled() kullanarak tüm istekleri aynı anda gönderiyor ve bütün uzantıları paralel olarak tespit ediyor
  • İkinci mod, her istek arasına yapılandırılabilir gecikme koyarak istekleri sıralı şekilde gönderiyor; böylece ağ etkinliğini zamana yayıp izleme araçlarında daha az görünür hale geliyor
  • LinkedIn, dahili özellik bayraklarıyla bu iki mod arasında geçiş yapabiliyor
  • Tarama requestIdleCallback ile ertelenebiliyor; bu sayede tarayıcı boştayken çalışıyor ve kullanıcı performans etkisini fark etmiyor
  • Spectroscopy adlı ikinci tespit sistemi, uzantı listesinden bağımsız çalışıyor
  • Spectroscopy, tüm DOM ağacını tarayarak bütün metin düğümlerinde ve öğe özniteliklerinde chrome-extension:// URL referanslarını denetliyor
  • Bu yöntem, LinkedIn’in hard-coded listesinde olmasa bile sayfayı değiştiren uzantıları yakalayabiliyor
  • İki sistem birlikte, hem kurulu uzantıları hem de gerçekten sayfayla etkileşime giren uzantıları kapsıyor

Telemetri aktarımı

  • Her iki tespit sistemi de sonuçları aynı telemetri hattına gönderiyor
  • Tespit edilen uzantı ID’leri AedEvent ve SpectroscopyEvent nesneleri olarak paketleniyor
  • Bu nesneler RSA açık anahtarıyla şifrelenip LinkedIn’in li/track uç noktasına gönderiliyor
  • Şifrelenmiş parmak izi daha sonra oturum boyunca yapılan tüm API isteklerinin HTTP header’larına ekleniyor
  • LinkedIn, ziyaret süresince kullanıcının gerçekleştirdiği tüm eylemlerle birlikte bu değeri de alıyor

Hukuki bağlam

  • browsergate.eu, ilgili hukuki gerekçeyi ayrıntılı biçimde açıklıyor
  • 2024’te Microsoft, AB Dijital Pazarlar Yasası kapsamında gatekeeper olarak tanımlandı ve LinkedIn de düzenlemeye tabi ürünlerden biri oldu
  • DMA, gatekeeper’ların üçüncü taraf araçların kullanıcı verilerine erişimine izin vermesini gerektiriyor ve bu araçların kullanıcılarına karşı işlem yapılmasını yasaklıyor
  • browsergate.eu, LinkedIn’in üçüncü taraf araç kullanıcılarına sistematik şekilde yaptırım uygulamasının ve bunları belirlemek için gizli uzantı taraması kullanmasının bu kuralları ihlal ettiğini savunuyor
  • Bu iddianın hukuken kabul görüp görmeyeceği ayrı bir değerlendirme konusu
  • Bamberg’deki Bavarian Central Cybercrime Prosecution Office’in Cybercrime Unit’i cezai soruşturma açıldığını doğruladı
  • Bu kurum, yargı alanlarını aşan ciddi siber suç vakalarıyla ilgileniyor
  • browsergate.eu, cezai soruşturmayı doğruladığını, dosya numarasını paylaştığını ve tam mahkeme belgelerini yayıma hazırladığını belirtiyor

1 yorum

 
GN⁺ 2026-05-02
Hacker News görüşleri
  • “Adli soruşturmanın başladığı konusunda hiçbir şüphe yok.” Güzel. Böyle şirketler taşlanmayı hak ediyor, hatta daha fazlasını da göze almalı

    • Asıl gerekli olan, bunun en başta kimin fikri olduğunu ortaya çıkarmak
      Bir web sitesini ortalamanın altına düşürmeyeceğini söyleyen ekipler, bilinen hizmet kötüleştirme öncülerinin listesiyle adayları filtreleyebilmeli
      Filiz halindeyken kesmek için artık geç olabilir ama bu kişilerin hiçbir kısıtlama olmadan faaliyet göstermeye ve büyümeye devam etmesine izin vermek için de bir sebep yok
  • “Sonra mastodon'da browsergate konuşmalarının patladığını görünce ‘yok artık’ dedim, ama gerçekten dava hazırlanıyormuş.” - un-nf
    Farrell v LinkedIn Corporation 4:26-cv-02953-KAW (N.D. Cal. Apr. 6, 2026)
    https://ia601503.us.archive.org/33/items/gov.uscourts.cand.4...

  • Neden benim Chrome'um, yüklediğim uzantıların listesini herhangi bir web sitesine bildiriyor?

    • Teknik olarak tam olarak öyle değil. Uzantıların ID'lerinden ve o uzantılarda bulunduğu bilinen dosyaların listesinden bir tablo oluşturuluyor; site de her çifti dolaşıp o dosyaları yüklemeyi deniyor
      Hata oluşmazsa ilgili uzantının kurulu olduğu anlaşılıyor. Zekice ama zahmetli bir yöntem; yine de bunu engellemeye çalışan güvenlik önlemlerini atlatıyor
      Bunu kullanma gerekçesinin, kullanım şartlarını aşan bilinen scraper uzantılarını kullananları engellemek olduğu yazıyordu ama bana tamamen ikna edici gelmiyor
    • Yazıdaki ilgili kısım şu:
      “Chrome uzantıları, manifest.json içindeki web_accessible_resources alanı üzerinden dahili dosyaları web sayfalarına açabilir. Uzantı kuruluysa ve kaynağı açtıysa chrome-extension://{id}/{file} adresine yapılan fetch() isteği başarılı olur. Kurulu değilse Chrome isteği engeller ve promise reject edilir.
      LinkedIn listedeki tüm uzantıları bu şekilde test ediyor.”
    • Web tarayıcılarının onlarca yıldır yaptığı korkunç güvenlik hataları için de aynı soru sorulabilir
    • Bu bilgi gerçekten web sitesine mi veriliyor? Ben, yalnızca belirli bir uzantı kurulu olduğunda görülen davranışları kullanarak kendi kendine tespit eden yeni bir hack sanmıştım
      Ama bunu 6.300 uzantı için yapmak çok fazla iş olurdu. Acaba bunu servis olarak sunan bir yer mi var?
    • Brave bunu açıkça engelliyor
  • Arkadaşlar, iş yerinde size böyle bir şeyi uygulamanız söylense ne yaparsınız: karşı çıkıp direnerek işi kaybetmek mi, yoksa uyup işi korumak mı?
    Uygulayıcı olarak telemetri ile gözetim arasındaki çizgiyi nerede çekmek gerekir?

    • LinkedIn, Meta veya Suudi ya da İsrail fonu alan yerlerde çalışmamayı seçerim. İş bulmak biraz daha zorlaşır ama geceleri daha rahat uyurum
    • Üçüncü bir seçenek de var. Yapacağınızı söyleyip bilerek becerememek ya da işi sonsuza kadar süründürmek. Kasıtlı olarak işi sabote ettiğinizi kanıtlamak zordur
      Ama böyle oyunlar oynuyorsanız, belki de yeni bir iş arama zamanı gelmiştir ;)
    • Dünyayı anonim olarak neler olacağı konusunda uyarmak da bir seçenek bence. Böylece işinizi korurken insanlar en azından haberdar olur
      Tabii bunu bilen kişi sayısı üç civarındaysa, kimin yaptığı hemen anlaşılabilir
    • Ben de aynı şeyi düşünüyorum. Belki de bunu yapanlar kolayca başka iş bulamayan, sağlık sigortası ya da maddi nedenlerle bu işe muhtaç insanlar. Belki maaşla zar zor geçiniyorlardır
      Talimatı verenler de benzer durumdaki yöneticiler olabilir ve onların üstündekiler yalnızca gelir artışına bakıp yöntemi umursamıyor olabilir. Yine de bir yerlerde birinin “Biz şu anda ne yapıyoruz?” demesi gerekiyormuş gibi geliyor, garip
      Soruna cevap verecek olursam, elbette karşı çıkardım. Şu an bunu ciddi bir bedel ödemeden yapabilecek kadar şanslı durumdayım. Ama HN'ye çıkıp “Evet, ahlaki pusulam yok!” diyecek kim var? Burner hesapla yazılsa bile gerçek olup olmadığını bilemezsin
    • Dürüst olmak gerekirse ben olsam muhtemelen uygularım. Her web sitesine kurulu uzantıları bildiren şey Chrome'un sorumluluğu. Sonuçta kullanıcıya zarar veren bir tarafı da yok
  • Yazıda bulduğum en ilgili bölüm şu:
    “Chrome uzantıları, manifest.json içindeki web_accessible_resources alanı üzerinden dahili dosyaları web sayfalarına açabilir. Uzantı kuruluysa ve kaynağı açtıysa chrome-extension://{id}/{file} adresine yapılan fetch() isteği başarılı olur. Kurulu değilse Chrome isteği engeller ve promise reject edilir.
    LinkedIn listedeki tüm uzantıları bu şekilde test ediyor.”

    • O zaman bu tür sorgulara rastgele evet/hayır döndürerek sahte kurulu uzantılar oluşturmak mümkün mü? LinkedIn veya diğer parmak izi sitelerinin hangi dosyaları test ettiği, orijinal yazının yazarının da dediği gibi epey gözlemlenebilir görünüyor
      Aynı dosyaları test eden başka hangi siteler var diye bakmak da ilginç olurdu; bunu inceleyen biri oldu mu acaba?
    • Siteden gelen kodun, uzantıdan gelen kod bile değilken, buna erişebilmesine izin verilmemeli gibi geliyor
  • Bu, cihaz parmak izi çıkarma konusunda oldukça standart bir uygulama. LinkedIn bunu muhtemelen scraping gibi şeylere karşı platformunu korumak için kullanıyor ve uzantı listesi kullanıcıyı tanımlamak için yeterli entropi sağladığından parmak izinin kullanışlı bir bileşeni oluyor

    • Scraping'e yardımcı olan uzantıları tek seferde üretip kullanmak zaten oldukça kolay ve LinkedIn'in engelleyebileceği pek bir şey yok
      İnsanların birkaç gün içinde yerel Chrome uzantıları geliştirip kurduğunu, ardından yapay zekanın geliştirici araçlarına enjekte edilerek neredeyse her web sitesini scrape eder hale geldiğini gördüm. Hem de bu birkaç ay önceydi
      Artık buna karşı kolay bir savunma yolu olduğunu sanmıyorum. Bu tür savunmacı programlama önlemlerinin işe yaramaz hale gelmesi sadece zaman meselesi
  • Bu bir halüsinasyon mu? Bu alıntıyı başka hiçbir yerde bulamıyorum
    “browsergate'e göre Milinda Lakkam yeminli ifadesinde ‘LinkedIn'in belirli uzantıları kurulu olan kullanıcılara karşı işlem yaptığını’ doğruladı.”

    • Kısmen doğru ama gerçek alıntı bu değil. Bu bağlantıdan daha geriye gitmedim:
      https://browsergate.eu/the-evidence-pack/
      LinkedIn sistemleri, “[XXXXXX] kurulu olan LinkedIn kullanıcılarına karşı işlem yapmış olabilir.”
      Düzenleme: Güzel! Girintili metnin artık mobil tarayıcıda da satır kırdığını yeni fark ettim. En azından ffm'de öyle. Bunun ne zaman düzeltildiğini merak ediyorum
  • Adil olmak gerekirse, LinkedIn'in gizlilik politikası bu bilgiyi topladığını açıkça belirtiyor. Bkz. https://www.linkedin.com/legal/privacy-policy?ref=cms.hondas...
    “1.5 Cihaz ve konum
    Hizmetlerimizi ziyaret ettiğinizde veya terk ettiğinizde (bazı eklentiler ve diğer sitelerdeki çerezlerimiz ya da benzer teknolojiler dahil), geldiğiniz ve gittiğiniz sitelerin URL'lerini ve ziyaret zamanlarınızı alırız. Ayrıca ağınız ve cihazınız hakkında bilgiler de alırız; örneğin IP adresiniz, proxy sunucunuz, işletim sisteminiz, web tarayıcınız ve eklentileriniz, cihaz tanımlayıcılarınız ve özellikleriniz, çerez kimliğiniz ve/veya ISP ya da mobil operatörünüz. Hizmetlerimizi mobil cihazdan kullanıyorsanız, telefon ayarlarınıza bağlı olarak bu cihaz bize konum verisi gönderir. GPS veya başka araçlarla kesin konumunuzu tespit etmeden önce onay isteriz.”
    Buradaki ilgili bölüm “bazı eklentiler dahil” kısmı

  • LinkedIn hesabımı sildim ve artık hayatım daha iyi

    • Bunu söylemek, şu anda işi olan birinin rahatlığı. LinkedIn hesabı olmadan iş aramak o kadar kolay değil