LinkedIn đang quét các tiện ích mở rộng trên trình duyệt
(404privacy.com)- LinkedIn gửi các yêu cầu URL
chrome-extension://trên Chrome để kiểm tra xem những tiện ích mở rộng cụ thể có được cài đặt hay không; với các mục chưa được cài đặt, lỗi yêu cầu thất bại sẽ xuất hiện trong bảng điều khiển DevTools - LinkedIn vốn đã nắm giữ tên, công ty, chức danh, kinh nghiệm, vị trí của người dùng, nên việc quét tiện ích mở rộng không chỉ là tạo dấu vân tay thiết bị ẩn danh mà là gắn thêm danh sách phần mềm vào một danh tính nghề nghiệp đã được xác thực
- Theo ghi nhận của browsergate.eu và kho lưu trữ theo dõi trên GitHub, hoạt động quét này đã diễn ra ít nhất từ năm 2017, và danh sách mục tiêu đã tăng từ 38 lên 6.278 vào tháng 4/2026
- Việc quét là một phần trong hệ thống thu thập dấu vân tay thiết bị APFC của LinkedIn, hệ thống này xây dựng hồ sơ cùng với 48 đặc điểm trình duyệt và thiết bị như canvas fingerprint, WebGL, hành vi âm thanh, phông chữ, thông tin màn hình, bộ nhớ thiết bị, IP cục bộ qua WebRTC
- Kết quả phát hiện được đóng gói thành
AedEventvàSpectroscopyEvent, mã hóa bằng khóa công khai RSA rồi gửi tới endpointli/trackcủa LinkedIn; browsergate.eu cho biết cách làm này cấu thành vi phạm Đạo luật Thị trường Kỹ thuật số của EU và đã dẫn tới một cuộc điều tra hình sự
Danh sách phần mềm gắn vào hồ sơ định danh cá nhân
- Việc lấy dấu vân tay thông thường thường được xem là cách nhận diện lại trình duyệt của khách truy cập ẩn danh giữa các phiên mà không cần cookie
- Trong trường hợp đó, hồ sơ có thể được nhận diện ở cấp độ thiết bị nhưng không nhất thiết gắn với danh tính cá nhân
- LinkedIn không chỉ giữ dữ liệu của khách truy cập ẩn danh mà đã có sẵn tên, công ty, chức danh, kinh nghiệm, khoảng lương, mạng lưới nghề nghiệp, vị trí của người dùng
- Việc quét tiện ích mở rộng của LinkedIn không tạo hồ sơ thiết bị cho một khách truy cập chưa rõ danh tính, mà bổ sung một danh sách phần mềm chi tiết vào một danh tính nghề nghiệp đã được xác thực
- Danh sách quét của LinkedIn bao gồm hàng trăm tiện ích liên quan đến tìm việc, nên có thể suy ra người dùng đang âm thầm tìm việc trước khi họ nói với nhà tuyển dụng
- Danh sách này cũng gồm các tiện ích liên quan đến nội dung chính trị, thực hành tôn giáo, hỗ trợ khuyết tật và đa dạng thần kinh, cho thấy phần mềm trên trình duyệt có thể là cơ sở để suy luận về đời sống cá nhân
- Vì LinkedIn biết nơi làm việc của người dùng, kết quả quét từ một nhân viên có thể góp phần tiết lộ không chỉ cá nhân đó mà còn cả công cụ nội bộ, sản phẩm bảo mật, đăng ký với đối thủ và quy trình làm việc của tổ chức
- privacy policy của LinkedIn không công khai việc quét tiện ích mở rộng, và người dùng cũng không được yêu cầu đồng ý hay được thông báo
Vấn đề vượt ra ngoài LinkedIn
-
Thực thi và tiền lệ
- LinkedIn dùng danh sách tiện ích mở rộng để suy luận về người dùng đã cài các tiện ích cụ thể và thực hiện biện pháp xử lý
- Theo browsergate, Milinda Lakkam đã xác nhận dưới lời tuyên thệ rằng “LinkedIn took action against users who had specific extensions installed.”
- Người dùng không có cách nào biết rằng phần mềm của mình đang bị lập danh sách, rằng danh sách đó đang bị dùng theo hướng bất lợi cho họ, và rằng điều này không hề xuất hiện trong chính sách quyền riêng tư của LinkedIn
-
Hệ sinh thái lấy dấu vân tay
- Lấy dấu vân tay trình duyệt thường được xem là vấn đề một website thu thập tín hiệu, tạo hồ sơ rồi nhận diện người dùng qua nhiều phiên
- Việc quét tiện ích mở rộng của LinkedIn tạo ra một danh sách phần mềm chi tiết gắn với danh tính đã được xác thực, và hồ sơ đó không nhất thiết phải chỉ ở lại bên trong LinkedIn
- Nếu LinkedIn mua các bộ dữ liệu hành vi từ bên thứ ba và trong đó có dấu vân tay của người dùng, LinkedIn có thể gắn thêm dữ liệu này vào thông tin người dùng mà họ đã có
- Hành vi duyệt web bên ngoài LinkedIn, lịch sử mua sắm, mẫu vị trí và sở thích có thể trở thành một phần của hồ sơ được gắn với tài khoản LinkedIn
- Theo chiều ngược lại, LinkedIn tích hợp script bên thứ ba, bao gồm Google reCAPTCHA enterprise được tải trên mọi lần truy cập trang, khiến dữ liệu chảy qua lại giữa các nền tảng
- Dấu vân tay mà LinkedIn liên kết với danh tính đã xác thực có thể ảnh hưởng cả đến các hệ thống quảng cáo và theo dõi bên ngoài linkedin.com
- Chỉ cần đăng nhập LinkedIn một lần, dấu vân tay được tạo trong lần truy cập đó có thể đi theo người dùng trên toàn bộ web
-
Nhóm người dùng thực sự bị đe dọa
- Với nhà báo, luật sư, nhà nghiên cứu và điều tra viên nhân quyền, hồ sơ LinkedIn có thể là một trong những tài liệu định danh đã xác thực chi tiết nhất trên mạng
- Hồ sơ LinkedIn là thông tin được cố ý xây dựng dưới tên thật cho mục đích nghề nghiệp
- Việc quét tiện ích mở rộng gắn thêm vào hồ sơ đó lịch sử cài đặt các công cụ bảo vệ quyền riêng tư, tiện ích bảo mật, công cụ điều tra và ứng dụng năng suất mà người dùng không hề hay biết
- Nếu dùng LinkedIn và Chrome, việc thu thập này đang diễn ra ngay lúc này
APFC và lấy dấu vân tay JavaScript nâng cao
- Việc quét tiện ích mở rộng không phải một chức năng đơn lẻ mà là một phần của hệ thống lấy dấu vân tay thiết bị rộng hơn mà LinkedIn nội bộ gọi là APFC
- APFC là viết tắt của Anti-fraud Platform Features Collection, nội bộ cũng được gọi là DNA, Device Network Analysis
- LinkedIn công khai về các phương thức theo dõi này nhiều hơn so với việc quét tiện ích mở rộng, nhưng các kỹ thuật này vẫn thường xuất hiện trên các website thương mại
- Hệ thống này thu thập 48 đặc điểm trình duyệt và thiết bị trong mỗi lần truy cập
- Các mục thu thập gồm canvas fingerprint, renderer và tham số WebGL, hành vi xử lý âm thanh, phông chữ đã cài, độ phân giải màn hình, tỷ lệ pixel, hardware concurrency, bộ nhớ thiết bị, mức pin, địa chỉ IP cục bộ qua WebRTC, múi giờ, ngôn ngữ và nhiều thông tin khác
- Việc quét tiện ích mở rộng là một trong các đầu vào cấu thành nên hồ sơ lớn hơn này
Điều gì đang diễn ra về mặt kỹ thuật
- Mã của LinkedIn gửi các yêu cầu
fetch()tới URLchrome-extension://để tìm các tệp cụ thể đã cài trong Chrome - Nếu tiện ích mở rộng không được cài đặt, Chrome sẽ chặn yêu cầu và ghi lại lỗi thất bại
- Nếu tiện ích được cài, yêu cầu sẽ âm thầm thành công và LinkedIn ghi nhận điều đó
- Trong môi trường đã được xác minh, quá trình quét diễn ra trong khoảng 15 phút và tìm kiếm hơn 6.000 tiện ích mở rộng
- Người dùng có thể tự kiểm tra bằng cách mở LinkedIn trên Chrome rồi xem tab Console trong DevTools
- Mỗi lỗi màu đỏ trong Console tương ứng với một phần trong dấu vân tay của người dùng
Cấu trúc mã và cách phát hiện
- LinkedIn chạy mã JavaScript trên trình duyệt của mọi khách truy cập Chrome, và hệ thống phụ trách quét tiện ích mở rộng nằm trong đó
- Tệp này là một tệp JavaScript đã được minify và có phần bị obfuscate, kích thước khoảng 1,6MB
- Minify thông thường là nén mã để tăng hiệu năng, còn obfuscate là một bước riêng nhằm khiến mã khó đọc và khó hiểu hơn
- LinkedIn obfuscate chính module chứa hệ thống quét tiện ích mở rộng và chôn nó trong một tệp JavaScript dài hàng nghìn dòng
- Bên trong tệp có một mảng hardcode chứa ID của các tiện ích mở rộng trình duyệt
- Tính đến tháng 2/2026, mảng này có 6.278 mục
- Mỗi mục có hai trường: ID tiện ích trên Chrome Web Store và một đường dẫn tệp cụ thể bên trong gói tiện ích đó
- Đường dẫn tệp này không phải giá trị ngẫu nhiên; nó cần thiết vì tiện ích Chrome có thể công khai các tệp nội bộ cho website thông qua trường
web_accessible_resources - Nếu tiện ích được cài và đã khai báo tệp cụ thể là có thể truy cập, yêu cầu
fetch()tớichrome-extension://{id}/{file}sẽ thành công - Nếu không được cài, Chrome sẽ chặn yêu cầu
- LinkedIn xác định và phát hiện trực tiếp một tệp có thể truy cập cụ thể cho từng tiện ích trong số 6.278 tiện ích trong danh sách
- Danh sách này liên tục được duy trì và mở rộng; có vẻ từng tồn tại một công cụ dùng để crawl các gói tiện ích trên Chrome Web Store và parse tài nguyên có thể truy cập web trong từng manifest để bổ sung mục tiêu phát hiện
Hai chế độ quét và Spectroscopy
- Việc quét tiện ích mở rộng hoạt động theo hai chế độ
- Chế độ thứ nhất dùng
Promise.allSettled()để gửi toàn bộ yêu cầu cùng lúc, phát hiện toàn bộ tiện ích theo kiểu song song - Chế độ thứ hai gửi yêu cầu tuần tự với độ trễ có thể cấu hình giữa từng yêu cầu, phân tán hoạt động mạng theo thời gian để bớt nổi bật trước các công cụ giám sát
- LinkedIn có thể chuyển đổi giữa hai chế độ này bằng cờ tính năng nội bộ
- Quá trình quét cũng có thể bị trì hoãn bằng
requestIdleCallback, để chỉ chạy khi trình duyệt đang rảnh và người dùng không nhận thấy tác động hiệu năng - Một hệ thống phát hiện thứ hai tên là Spectroscopy hoạt động độc lập với danh sách tiện ích mở rộng
- Spectroscopy quét toàn bộ cây DOM và kiểm tra mọi text node cùng thuộc tính phần tử để tìm tham chiếu URL
chrome-extension:// - Cách này có thể bắt được các tiện ích sửa đổi trang ngay cả khi chúng không nằm trong danh sách hardcode của LinkedIn
- Kết hợp hai hệ thống này sẽ bao quát cả các tiện ích đã cài đặt lẫn các tiện ích thực sự đang tương tác với trang
Gửi telemetry
- Hai hệ thống phát hiện gửi kết quả vào cùng một pipeline telemetry
- ID tiện ích được phát hiện được đóng gói thành các đối tượng
AedEventvàSpectroscopyEvent - Các đối tượng này được mã hóa bằng khóa công khai RSA rồi gửi tới endpoint
li/trackcủa LinkedIn - Dấu vân tay đã mã hóa sau đó được chèn vào HTTP header của mọi yêu cầu API phát sinh trong phiên
- LinkedIn nhận giá trị này cùng với mọi hành động mà người dùng thực hiện trong suốt lần truy cập
Bối cảnh pháp lý
- browsergate.eu trình bày chi tiết lập luận pháp lý liên quan
- Năm 2024, Microsoft bị chỉ định là gatekeeper theo Đạo luật Thị trường Kỹ thuật số của EU, và LinkedIn là một trong các sản phẩm thuộc diện điều chỉnh
- DMA yêu cầu các gatekeeper phải cho phép công cụ của bên thứ ba tiếp cận dữ liệu người dùng và cấm có hành động đối với người dùng của các công cụ đó
- browsergate.eu cho rằng việc LinkedIn có hệ thống xử lý có hệ thống với người dùng công cụ bên thứ ba và dùng quét tiện ích mở rộng một cách âm thầm để nhận diện họ là vi phạm quy định này
- Việc lập luận này có được chấp nhận về mặt pháp lý hay không là vấn đề thuộc phán quyết pháp lý
- Đơn vị Tội phạm mạng thuộc Bavarian Central Cybercrime Prosecution Office ở Bamberg đã xác nhận một cuộc điều tra hình sự đã được mở
- Cơ quan này xử lý các vụ án tội phạm mạng nghiêm trọng vượt qua nhiều phạm vi tài phán
- browsergate.eu cho biết họ đã xác nhận được cuộc điều tra hình sự, cung cấp số vụ việc và đang chuẩn bị công bố toàn bộ tài liệu tòa án
1 bình luận
Ý kiến trên Hacker News
“Không còn nghi ngờ gì nữa, một cuộc điều tra hình sự đã bắt đầu.” Tốt. Những công ty như thế này xứng đáng bị ném đá, và còn nên chịu nhiều hơn thế
Nếu là một đội ngũ không muốn phá hỏng website xuống mức dưới trung bình, họ phải có khả năng lọc ứng viên bằng danh sách những kẻ đầu têu làm dịch vụ tệ đi
Có thể đã quá muộn để chặn từ trong trứng nước, nhưng cũng không có lý do gì để những cá nhân như vậy tiếp tục hoạt động không bị ràng buộc và ngày càng lớn mạnh
“Sau đó tôi thấy chuyện browsergate bùng lên trên mastodon và nghĩ ‘không thể nào’, nhưng hóa ra vụ kiện thực sự đang được chuẩn bị.” - 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...
Tại sao Chrome của tôi lại cho bất kỳ website nào biết danh sách extension tôi đã cài?
Nếu không có lỗi thì có thể biết extension đó đã được cài. Đây là cách làm khéo léo nhưng tốn công, đồng thời lách qua các cơ chế bảo mật vốn được thiết kế để ngăn kiểu việc này
Tôi đọc thấy lý do họ dùng cách này là để chặn người dùng của các extension scraper đã được biết là dùng để lách điều khoản, nhưng tôi vẫn chưa hoàn toàn bị thuyết phục
“Chrome extensions can expose internal files to web pages via the
web_accessible_resourcesfield inmanifest.json. If an extension is installed and exposes the resource, afetch()tochrome-extension://{id}/{file}succeeds. If not installed, Chrome blocks the request and the promise rejects.LinkedIn tests every extension in the list this way.”
Nhưng làm vậy với 6.300 extension thì quá nhiều việc. Có nơi nào cung cấp việc này như một dịch vụ không?
Mọi người, nếu ở chỗ làm bạn được yêu cầu triển khai thứ như thế này thì bạn sẽ chọn gì: phản đối và cố giữ lập trường đến mức mất việc, hay làm theo để giữ công việc?
Với tư cách người làm thực tế, ranh giới giữa telemetry và giám sát nên được vạch ở đâu?
Nhưng nếu đang chơi kiểu trò đó, có lẽ cũng là lúc nên tìm việc mới ;)
Chỉ là nếu người biết chuyện đó chỉ khoảng ba người thì có thể sẽ bị lộ ngay là ai
Cũng có thể chỉ đạo đến từ những quản lý ở hoàn cảnh tương tự, còn cấp trên của họ chỉ nhìn vào tăng trưởng doanh thu và không quan tâm cách làm. Dù vậy, ở đâu đó vẫn nên có người nói “rốt cuộc chúng ta đang làm cái gì vậy?”, thật kỳ lạ
Trả lời câu hỏi thì tất nhiên tôi sẽ phản đối. Hiện giờ tôi may mắn đủ để có thể chọn như vậy mà không phải trả giá quá lớn. Nhưng ai lại lên HN nói “vâng, tôi chẳng có đạo đức gì cả!” chứ? Kể cả là tài khoản đốt cũng đâu biết có thật hay không
Phần liên quan nhất tôi tìm thấy trong bài gốc là đây:
“Chrome extensions can expose internal files to web pages via the
web_accessible_resourcesfield inmanifest.json. If an extension is installed and exposes the resource, afetch()tochrome-extension://{id}/{file}succeeds. If not installed, Chrome blocks the request and the promise rejects.LinkedIn tests every extension in the list this way.”
Cũng sẽ thú vị nếu xem còn site nào khác đang kiểm tra những file tương tự, không biết đã có ai xem chưa?
Đây là thực hành khá tiêu chuẩn trong fingerprinting thiết bị. Có lẽ LinkedIn dùng nó để bảo vệ nền tảng khỏi những thứ như scraping, và danh sách extension có đủ entropy để vừa nhận diện người dùng vừa trở thành một thành phần hữu ích của dấu vân tay
Tôi đã thấy người ta chỉ trong vài ngày tự tạo và cài một extension Chrome cục bộ, rồi để AI được tiêm vào devtools scrape gần như mọi website. Mà đó là chuyện của vài tháng trước thôi
Giờ tôi không nghĩ còn cách nào dễ để phòng thủ trước chuyện đó nữa. Chỉ còn là vấn đề thời gian trước khi những biện pháp lập trình phòng thủ kiểu này trở nên vô dụng
Cái này là ảo giác à? Tôi không tìm thấy câu trích này ở đâu khác
“Theo browsergate, Milinda Lakkam đã xác nhận dưới lời tuyên thệ rằng ‘LinkedIn đã có hành động với những người dùng cài một số extension cụ thể.’”
https://browsergate.eu/the-evidence-pack/
Hệ thống của LinkedIn “có thể đã có hành động với người dùng LinkedIn cài [XXXXXX].”
Sửa: hay đấy! Tôi vừa thấy văn bản thụt đầu dòng giờ đã xuống dòng cả trên trình duyệt di động. Ít nhất trên ffm là vậy. Không biết họ sửa từ khi nào
Nói công bằng thì chính sách quyền riêng tư của LinkedIn có nêu rõ là họ thu thập thông tin này. Xem https://www.linkedin.com/legal/privacy-policy?ref=cms.hondas...
“1.5 Thiết bị và vị trí
Khi bạn truy cập hoặc rời khỏi dịch vụ của chúng tôi (bao gồm một số plugin và cookie của chúng tôi hoặc công nghệ tương tự trên các website khác), chúng tôi nhận được URL của cả website bạn đến từ và website bạn chuyển sang, cùng thời gian truy cập. Chúng tôi cũng nhận được thông tin về mạng và thiết bị của bạn (ví dụ: địa chỉ IP, máy chủ proxy, hệ điều hành, trình duyệt web và tiện ích bổ sung, mã định danh và tính năng của thiết bị, ID cookie và/hoặc ISP, hoặc nhà mạng di động). Nếu bạn sử dụng dịch vụ của chúng tôi từ thiết bị di động, thiết bị đó sẽ gửi dữ liệu vị trí cho chúng tôi tùy theo cài đặt điện thoại của bạn. Chúng tôi sẽ xin bạn opt-in trước khi dùng GPS hoặc công cụ khác để xác định vị trí chính xác của bạn.”
Phần liên quan ở đây là “bao gồm một số plugin”
Tôi đã xóa tài khoản LinkedIn và cuộc sống giờ tốt hơn