- LinkedIn mengirim permintaan URL
chrome-extension:// di Chrome untuk memeriksa apakah ekstensi tertentu terpasang, dan item yang tidak terpasang tercatat sebagai error kegagalan permintaan di konsol alat pengembang
- Menurut catatan browsergate.eu dan repositori pelacakan GitHub, pemindaian ini telah berlangsung setidaknya sejak 2017, dan daftar target bertambah dari 38 menjadi 6.278 per April 2026
- LinkedIn sudah memiliki nama, pemberi kerja, jabatan, riwayat karier, dan lokasi pengguna, sehingga pemindaian ekstensi bukan sekadar sidik jari perangkat anonim, melainkan cara menambahkan daftar perangkat lunak ke identitas profesional yang telah terverifikasi
- Pemindaian ini merupakan bagian dari sistem pengambilan sidik jari perangkat APFC milik LinkedIn, yang membangun profil bersama 48 karakteristik browser dan perangkat lain seperti canvas fingerprint, WebGL, perilaku audio, font, informasi layar, memori perangkat, dan IP lokal WebRTC
- Hasil deteksi dikemas sebagai
AedEvent dan SpectroscopyEvent, lalu dienkripsi dengan kunci publik RSA sebelum dikirim ke endpoint li/track milik LinkedIn; browsergate.eu menyatakan metode ini melanggar EU Digital Markets Act dan investigasi pidana telah dibuka
Daftar perangkat lunak yang ditempelkan ke profil identitas pribadi
- Pengambilan sidik jari pada umumnya dibahas sebagai cara untuk mengenali kembali browser pengunjung anonim tanpa cookie
- Dalam kasus itu, profil dapat diidentifikasi di tingkat perangkat, tetapi tidak selalu terhubung ke identitas pribadi
- LinkedIn tidak hanya berurusan dengan pengunjung anonim; platform ini sudah memiliki nama, pemberi kerja, jabatan, riwayat karier, kisaran gaji, jaringan profesional, dan lokasi pengguna
- Pemindaian ekstensi LinkedIn bukan membuat profil perangkat untuk pengunjung yang tidak dikenal, melainkan menambahkan daftar perangkat lunak yang rinci ke identitas profesional yang sudah terverifikasi
- Daftar pemindaian LinkedIn mencakup ratusan ekstensi terkait pencarian kerja, sehingga dapat digunakan untuk mengetahui apakah seseorang diam-diam sedang mencari pekerjaan sebelum memberi tahu pemberi kerjanya
- Ekstensi yang berkaitan dengan konten politik, praktik keagamaan, bantuan disabilitas, dan neurodiversitas juga masuk dalam daftar, sehingga perangkat lunak browser dapat menjadi dasar untuk menyimpulkan kehidupan pribadi seseorang
- Karena LinkedIn mengetahui tempat kerja pengguna, hasil pemindaian seorang karyawan dapat membantu mengungkap alat internal, produk keamanan, langganan pesaing, dan alur kerja organisasi tersebut, bukan hanya informasi tentang individu
- Dalam privacy policy LinkedIn, pemindaian ekstensi tidak diungkapkan, dan pengguna tidak diminta persetujuan maupun diberi tahu
Masalah yang melampaui LinkedIn
-
Penindakan dan preseden
- LinkedIn menggunakan daftar ekstensi untuk menarik kesimpulan tentang pengguna yang memasang ekstensi tertentu dan mengambil tindakan penegakan terhadap mereka
- Menurut browsergate, Milinda Lakkam mengonfirmasi di bawah sumpah bahwa “LinkedIn took action against users who had specific extensions installed.”
- Pengguna tidak punya cara untuk mengetahui bahwa perangkat lunak mereka sedang didaftarkan, bahwa daftar itu dipakai merugikan mereka, dan bahwa praktik tersebut tidak muncul dalam kebijakan privasi LinkedIn
-
Ekosistem pengambilan sidik jari
- Pengambilan sidik jari browser biasanya dibahas sebagai masalah satu situs yang mengumpulkan sinyal, membangun profil, dan mengenali pengguna di berbagai sesi
- Pemindaian ekstensi LinkedIn menghasilkan daftar perangkat lunak yang rinci dan terhubung ke identitas yang telah terverifikasi, dan profil itu tidak harus tetap berada di dalam LinkedIn
- Jika LinkedIn membeli dataset perilaku pihak ketiga dan sidik jari pengguna ada di dalamnya, LinkedIn dapat menambahkannya ke informasi pengguna yang sudah dimilikinya
- Perilaku penelusuran di luar LinkedIn, riwayat pembelian, pola lokasi, dan minat dapat menjadi bagian dari profil yang dikaitkan dengan akun LinkedIn
- Sebaliknya, LinkedIn mengintegrasikan skrip pihak ketiga, termasuk reCAPTCHA enterprise dari Google yang dimuat pada setiap kunjungan halaman, sehingga data mengalir lintas platform
- Sidik jari yang ditautkan LinkedIn ke identitas terverifikasi dapat memengaruhi sistem iklan dan pelacakan di luar linkedin.com
- Sekali masuk ke LinkedIn, sidik jari yang dibuat pada kunjungan itu dapat mengikuti pengguna di seluruh web
-
Kelompok pengguna yang benar-benar terancam
- Bagi jurnalis, pengacara, peneliti, dan penyelidik hak asasi manusia, profil LinkedIn dapat menjadi salah satu dokumen identitas terverifikasi paling rinci di internet
- Profil LinkedIn adalah informasi yang sengaja dibangun dengan nama asli untuk tujuan profesional
- Pemindaian ekstensi menautkan riwayat pemasangan alat privasi, ekstensi keamanan, alat investigasi, dan aplikasi produktivitas ke profil tersebut tanpa sepengetahuan pengguna
- Jika menggunakan LinkedIn dan Chrome, pengumpulan ini sedang terjadi sekarang
APFC dan pengambilan sidik jari JavaScript tingkat lanjut
- Pemindaian ekstensi bukan fitur yang berdiri sendiri, melainkan bagian dari sistem pengambilan sidik jari perangkat yang lebih luas yang secara internal disebut LinkedIn sebagai APFC
- APFC adalah singkatan dari Anti-fraud Platform Features Collection, dan secara internal juga disebut DNA, Device Network Analysis
- LinkedIn lebih terbuka soal metode pelacakan ini dibanding pemindaian ekstensi, tetapi metode seperti ini umum ditemukan di situs web komersial
- Sistem ini mengumpulkan 48 karakteristik browser dan perangkat pada setiap kunjungan
- Yang dikumpulkan mencakup canvas fingerprint, renderer dan parameter WebGL, perilaku pemrosesan audio, font yang terpasang, resolusi layar, rasio piksel, hardware concurrency, memori perangkat, level baterai, alamat IP lokal melalui WebRTC, zona waktu, bahasa, dan lainnya
- Pemindaian ekstensi adalah salah satu input yang membentuk profil yang lebih besar
Apa yang terjadi secara teknis
- Kode LinkedIn mengirim permintaan
fetch() ke URL chrome-extension:// untuk mencari file tertentu yang dipasang di Chrome
- Jika ekstensi tidak terpasang, Chrome memblokir permintaan tersebut dan mencatat kegagalannya
- Jika ekstensi terpasang, permintaan akan berhasil secara diam-diam dan LinkedIn mencatatnya
- Dalam lingkungan yang terverifikasi, pemindaian berjalan sekitar 15 menit dan mencari lebih dari 6.000 ekstensi
- Pengguna dapat melihatnya sendiri dengan membuka LinkedIn di Chrome lalu membuka tab konsol di alat pengembang
- Error merah di konsol masing-masing merepresentasikan bagian dari sidik jari pengguna
Struktur kode dan cara deteksi
- LinkedIn menjalankan kode JavaScript di browser semua pengunjung Chrome, dan sistem yang menangani pemindaian ekstensi ada di dalamnya
- File tersebut adalah file JavaScript yang diminifikasi dan sebagian diobfuscasi, berukuran sekitar 1,6MB
- Minifikasi pada umumnya adalah pemadatan kode untuk performa, sedangkan obfuscation adalah langkah terpisah yang membuat kode lebih sulit dibaca dan dipahami
- LinkedIn mengobfuscasi modul persis yang berisi sistem pemindaian ekstensi, lalu menyembunyikannya di dalam file JavaScript yang panjangnya ribuan baris
- Di dalam file itu terdapat array hardcoded berisi ID ekstensi browser
- Per Februari 2026, array ini berisi 6.278 item
- Setiap item memiliki dua field: ID ekstensi Chrome Web Store dan path file tertentu di dalam paket ekstensi itu
- Path file tersebut bukan nilai acak, karena ekstensi Chrome dapat mengekspos file internal ke halaman web melalui field
web_accessible_resources
- Jika ekstensi terpasang dan menyatakan file tertentu dapat diakses, maka permintaan
fetch() ke chrome-extension://{id}/{file} akan berhasil
- Jika tidak terpasang, Chrome akan memblokir permintaan itu
- LinkedIn mengidentifikasi file tertentu yang dapat diakses untuk masing-masing dari 6.278 ekstensi dalam daftar dan mendeteksinya secara langsung
- Daftar ini terus dipelihara dan diperluas, dan tampaknya ada alat yang merayapi paket ekstensi Chrome Web Store serta mem-parsing web accessible resources dari tiap manifest untuk menambahkan target deteksi
Dua mode pemindaian dan Spectroscopy
- Pemindaian ekstensi berjalan dalam dua mode
- Mode pertama menggunakan
Promise.allSettled() untuk mengirim semua permintaan sekaligus, sehingga seluruh ekstensi dideteksi secara paralel
- Mode kedua mengirim permintaan secara berurutan dengan jeda yang dapat dikonfigurasi di antara tiap permintaan, menyebarkan aktivitas jaringan sepanjang waktu agar kurang terlihat oleh alat pemantauan
- LinkedIn dapat beralih di antara kedua mode itu menggunakan feature flag internal
- Pemindaian juga dapat ditunda dengan
requestIdleCallback, sehingga dijalankan saat browser sedang idle dan pengguna tidak merasakan dampak performa
- Sistem deteksi kedua bernama Spectroscopy bekerja secara independen dari daftar ekstensi
- Spectroscopy menelusuri seluruh pohon DOM dan memeriksa referensi URL
chrome-extension:// di semua node teks dan atribut elemen
- Cara ini dapat menangkap ekstensi yang memodifikasi halaman meskipun tidak ada dalam daftar hardcoded LinkedIn
- Jika kedua sistem digabungkan, hasilnya mencakup baik ekstensi yang terpasang maupun ekstensi yang benar-benar berinteraksi dengan halaman
Pengiriman telemetri
- Kedua sistem deteksi mengirim hasil ke pipeline telemetri yang sama
- ID ekstensi yang terdeteksi dikemas sebagai objek
AedEvent dan SpectroscopyEvent
- Objek-objek ini dienkripsi dengan kunci publik RSA lalu dikirim ke endpoint
li/track milik LinkedIn
- Sidik jari yang telah dienkripsi kemudian disisipkan ke header HTTP pada semua permintaan API yang terjadi selama sesi berikutnya
- LinkedIn menerima nilai ini bersama semua tindakan yang diambil pengguna selama kunjungan
Konteks hukum
- browsergate.eu merangkum logika hukum terkait secara rinci
- Pada 2024, Microsoft ditetapkan sebagai gatekeeper berdasarkan EU Digital Markets Act, dan LinkedIn adalah salah satu produk yang tercakup regulasi tersebut
- DMA mewajibkan gatekeeper mengizinkan alat pihak ketiga mengakses data pengguna, dan melarang tindakan terhadap pengguna alat tersebut
- browsergate.eu menilai bahwa LinkedIn secara sistematis menindak pengguna alat pihak ketiga dan memakai pemindaian ekstensi tersembunyi untuk mengidentifikasi mereka, sehingga melanggar ketentuan tersebut
- Apakah klaim ini akan diterima secara hukum adalah masalah penilaian hukum
- Cybercrime Unit dari Bavarian Central Cybercrime Prosecution Office in Bamberg mengonfirmasi bahwa investigasi pidana telah dibuka
- Lembaga ini menangani kasus kejahatan siber berat lintas yurisdiksi
- browsergate.eu menyatakan telah mengonfirmasi investigasi pidana dan memberikan nomor perkara, serta sedang menyiapkan publikasi dokumen pengadilan lengkap
1 komentar
Opini Hacker News
“Bahwa penyelidikan kriminal telah dimulai sudah tidak diragukan lagi.” Bagus. Perusahaan seperti ini memang pantas dilempari batu, dan harus siap menerima yang lebih buruk dari itu
Jika ada tim yang berkomitmen untuk tidak merusak situs web sampai di bawah standar rata-rata, mereka seharusnya bisa menyaring pelamar berdasarkan daftar tokoh utama perusak layanan yang sudah diketahui
Mungkin sudah terlambat untuk memotongnya dari akarnya, tetapi tidak ada alasan membiarkan orang-orang seperti ini terus bergerak tanpa batasan dan makin membesar
“Lalu saya melihat pembicaraan soal browsergate meledak di mastodon dan berpikir ‘masa iya’, ternyata gugatan hukumnya memang sedang disiapkan.” - 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...
Kenapa Chrome saya memberi tahu situs web mana pun daftar ekstensi yang saya pasang?
Jika tidak terjadi error, maka mereka tahu ekstensi itu terpasang. Cara ini cerdik dan merepotkan, tetapi bisa melewati mekanisme keamanan yang dibuat untuk mencegah hal seperti ini
Saya membaca bahwa alasannya adalah untuk memblokir pengguna ekstensi scraper yang diketahui dipakai untuk mengakali syarat layanan, tetapi saya tetap belum sepenuhnya yakin
“Ekstensi Chrome dapat mengekspos file internal ke halaman web melalui field web_accessible_resources di manifest.json. Jika ekstensi terpasang dan resource tersebut diekspos, request
fetch()kechrome-extension://{id}/{file}akan berhasil. Jika tidak terpasang, Chrome memblokir request dan promise akan di-reject.LinkedIn menguji semua ekstensi dalam daftar dengan cara ini.”
Tapi untuk melakukan itu pada 6.300 ekstensi rasanya terlalu banyak kerja. Apakah ada layanan yang menyediakan ini?
Teman-teman, jika di tempat kerja kalian diminta mengimplementasikan hal seperti ini, apa yang akan kalian pilih: menolak dan bertahan sampai kehilangan pekerjaan, atau menurut dan mempertahankan pekerjaan?
Sebagai praktisi, di mana batas antara telemetri dan pengawasan seharusnya ditarik?
Tapi kalau sudah main permainan seperti itu, mungkin memang sudah waktunya cari kerja baru ;)
Namun, kalau yang tahu fakta itu cuma sekitar tiga orang, identitasmu bisa langsung ketahuan
Bisa juga diperintahkan oleh manajer yang kondisinya serupa, sementara atasan di atasnya hanya peduli peningkatan pendapatan dan tidak peduli caranya. Meski begitu, rasanya aneh kalau tidak ada seorang pun yang berkata, “Sebenarnya kita sedang melakukan apa?”
Untuk menjawab pertanyaannya, tentu saya akan menolak. Saat ini saya cukup beruntung bisa mengambil keputusan seperti itu tanpa konsekuensi besar. Tapi siapa yang akan datang ke HN dan berkata, “Ya, saya memang tidak punya moral!”? Bahkan dengan akun burner pun belum tentu bisa dipastikan nyata
Bagian paling relevan yang saya temukan di tulisan aslinya adalah ini:
“Ekstensi Chrome dapat mengekspos file internal ke halaman web melalui field web_accessible_resources di manifest.json. Jika ekstensi terpasang dan resource tersebut diekspos, request
fetch()kechrome-extension://{id}/{file}akan berhasil. Jika tidak terpasang, Chrome memblokir request dan promise akan di-reject.LinkedIn menguji semua ekstensi dalam daftar dengan cara ini.”
Akan menarik juga melihat situs lain mana yang menguji file-file yang sama; apakah sudah ada yang menelitinya?
Ini praktik yang cukup standar dalam pelacakan sidik jari perangkat. LinkedIn kemungkinan memakai ini untuk melindungi platform dari scraping dan semacamnya, dan daftar ekstensi punya entropi yang cukup untuk mengidentifikasi pengguna serta menjadi komponen sidik jari yang berguna
Saya sudah melihat orang membuat dan memasang ekstensi Chrome lokal hanya dalam beberapa hari, lalu AI disuntikkan ke developer tools agar bisa men-scrape hampir situs web apa pun. Itu pun sudah beberapa bulan lalu
Menurut saya sekarang tidak ada cara mudah untuk mempertahankan diri dari itu. Tinggal soal waktu sebelum langkah-langkah pemrograman defensif seperti ini menjadi tidak berguna
Apakah ini halusinasi? Kutipan ini tidak bisa saya temukan di tempat lain
“Menurut browsergate, Milinda Lakkam mengonfirmasi di bawah sumpah bahwa ‘LinkedIn mengambil tindakan terhadap pengguna yang memasang ekstensi tertentu.’”
https://browsergate.eu/the-evidence-pack/
Sistem LinkedIn “mungkin telah mengambil tindakan terhadap pengguna LinkedIn yang memasang [XXXXXX].”
Edit: bagus! Saya baru sadar teks yang diindent sekarang terbungkus baris juga di browser mobile. Setidaknya begitu di ffm. Penasaran kapan itu diperbaiki
Secara adil, kebijakan privasi LinkedIn memang menyatakan bahwa mereka mengumpulkan informasi ini. Lihat https://www.linkedin.com/legal/privacy-policy?ref=cms.hondas...
“1.5 Perangkat dan lokasi
Saat Anda mengunjungi atau meninggalkan layanan kami (termasuk beberapa plugin serta cookie kami atau teknologi serupa di situs pihak lain), kami menerima URL dari situs yang Anda datangi dan situs yang Anda tuju berikut waktu kunjungan Anda. Kami juga menerima informasi tentang jaringan dan perangkat Anda (misalnya alamat IP, server proxy, sistem operasi, browser web dan add-on, pengenal dan fitur perangkat, ID cookie dan/atau ISP, atau operator seluler Anda). Jika Anda menggunakan layanan kami dari perangkat seluler, perangkat tersebut akan mengirimkan data lokasi kepada kami berdasarkan pengaturan ponsel Anda. Kami akan meminta persetujuan sebelum menggunakan GPS atau alat lain untuk mengidentifikasi lokasi akurat Anda.”
Bagian yang relevan di sini adalah “termasuk beberapa plugin”
Saya sudah menghapus akun LinkedIn, dan hidup jadi lebih baik