- LinkedIn gửi các yêu cầu URL
chrome-extension:// trong 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ài, lỗi thất bại yêu cầu sẽ xuất hiện trong bảng điều khiển công cụ dành cho nhà phát triển
- Theo ghi nhận từ browsergate.eu và kho lưu trữ theo dõi trên GitHub, việc quét đã 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 tính đến tháng 4 năm 2026
- LinkedIn vốn đã nắm giữ tên, nhà tuyển dụng, chức danh, kinh nghiệm và vị trí của người dùng, nên việc quét tiện ích mở rộng không còn là tạo dấu vân tay thiết bị ẩn danh mà là gắn thêm một danh sách phần mềm vào danh tính nghề nghiệp đã được xác thực
- Việc quét là một phần của hệ thống thu thập dấu vân tay thiết bị APFC của LinkedIn, vốn xây dựng hồ sơ cùng với 48 đặc tính 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ị, địa chỉ IP cục bộ WebRTC
- Kết quả phát hiện được đóng gói thành
AedEvent và SpectroscopyEvent, mã hóa bằng khóa công khai RSA rồi gửi tới endpoint li/track của LinkedIn; browsergate.eu cho biết cách làm này bị xem là vi phạm Đạo luật Thị trường Số của EU và một cuộc điều tra hình sự đã được mở
Danh sách phần mềm gắn vào hồ sơ nhận diện cá nhân
- Việc thu thập dấu vân tay nói chung 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 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ỉ thấy khách truy cập ẩn danh mà đã nắm giữ tên, nhà tuyển dụng, chức danh, kinh nghiệm, khoảng lương, mạng lưới chuyên môn và 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à là gắn thêm 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 sẵn
- 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ể cho biết người dùng đang âm thầm tìm việc trước cả khi họ nói với nhà tuyển dụng
- 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ợ người khuyết tật và đa dạng thần kinh cũng nằm trong danh sách, nên phần mềm trình duyệt có thể trở thành cơ sở để suy luận về đời sống cá nhân
- Vì LinkedIn biết nơi người dùng làm việc, kết quả quét của 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, dịch vụ của đối thủ và quy trình làm việc của tổ chức đó
- Chính sách quyền riêng tư của LinkedIn không công khai việc quét tiện ích mở rộng, và người dùng không được yêu cầu đồng ý hay được thông báo
Vấn đề không chỉ dừng ở LinkedIn
-
Thực thi và tiền lệ
- LinkedIn sử dụng danh sách tiện ích mở rộng để suy luận về người dùng đã cài những tiện ích nhất định và áp dụng biện pháp thực thi đối với họ
- 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, 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 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
- Dấu vân tay trình duyệt thường được xem là vấn đề một trang web thu thập tín hiệu, tạo hồ sơ và 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ỉ ở trong nội bộ 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 nó 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 hàng, 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 các script của 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 gắn 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 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ể theo người dùng trên khắp web
-
Những nhóm người dùng chịu rủi ro thực sự
- 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à tài liệu danh tính đã được xác thực chi tiết nhất của họ trên mạng
- Hồ sơ LinkedIn là thông tin được xây dựng có chủ đích dưới tên thật nhằm phục vụ mục đích nghề nghiệp
- Việc quét tiện ích mở rộng gắn vào hồ sơ đó lịch sử cài đặt các công cụ 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 đang dùng LinkedIn và Chrome, việc thu thập này đang xảy ra ngay lúc này
APFC và việc 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 tính năng đơn lẻ mà là một phần trong hệ thống lấy dấu vân tay thiết bị rộng hơn mà LinkedIn gọi nội bộ là APFC
- APFC là viết tắt của Anti-fraud Platform Features Collection, và nội bộ cũng được gọi là DNA, Device Network Analysis
- LinkedIn cởi mở hơn về những cách theo dõi này so với việc quét tiện ích mở rộng, nhưng các phương thức đó vốn đã phổ biến trên các website thương mại
- Hệ thống này thu thập 48 đặc tính 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, bộ dựng hình 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ệ điểm ảnh, hardware concurrency, bộ nhớ thiết bị, mức pin, địa chỉ IP cục bộ qua WebRTC, múi giờ và ngôn ngữ
- Việc quét tiện ích mở rộng chỉ là một trong các đầu vào cấu thành hồ sơ lớn hơn
Điều gì diễn ra về mặt kỹ thuật
- Mã của LinkedIn gửi các yêu cầu
fetch() tới URL chrome-extension:// để tìm các tệp cụ thể được cài trong Chrome
- Nếu tiện ích mở rộng chưa được cài, Chrome sẽ chặn yêu cầu và ghi lỗi thất bại vào log
- Nếu tiện ích đã được cài, yêu cầu sẽ âm thầm thành công và LinkedIn sẽ ghi nhận điều đó
- Trong môi trường đã được xác nhận, việc quét chạy trong khoảng 15 phút và tì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 trong Chrome rồi xem tab Console của công cụ dành cho nhà phát triển
- 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 liên quan là một tệp JavaScript rút gọn và được làm rối một phần, có kích thước khoảng 1,6MB
- Rút gọn thông thường là việc nén mã để tăng hiệu năng, còn làm rối là một bước riêng nhằm khiến mã khó đọc và khó hiểu hơn
- LinkedIn làm rối chính xác 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 các ID tiện ích mở rộng của trình duyệt
- Tính đến tháng 2 năm 2026, mảng này chứa 6.278 mục
- Mỗi mục có hai trường: ID tiện ích trên Chrome Web Store và đường dẫn tới một tệp cụ thể bên trong gói tiện ích đó
- Đường dẫn tệp không phải giá trị ngẫu nhiên, vì tiện ích Chrome có thể phơi bày các tệp nội bộ ra trang web thông qua trường
web_accessible_resources
- Nếu tiện ích đã được cài và khai báo rằng tệp cụ thể đó có thể truy cập được, yêu cầu
fetch() gửi tới chrome-extension://{id}/{file} sẽ thành công
- Nếu chưa cài, Chrome sẽ chặn yêu cầu
- LinkedIn xác định một tệp có thể truy cập cụ thể cho từng trong số 6.278 tiện ích trong danh sách rồi trực tiếp phát hiện chúng
- Danh sách này liên tục được duy trì và mở rộng; dường như đã có công cụ crawl các gói tiện ích trên Chrome Web Store và parse tài nguyên truy cập web trong từng manifest để thêm 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 tất cả 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 từng yêu cầu tuần tự với độ trễ có thể cấu hình giữa các lần gửi, giúp phân tán hoạt động mạng theo thời gian và ít bị chú ý hơn trong các công cụ giám sát
- LinkedIn có thể chuyển đổi giữa hai chế độ này bằng các feature flag nội bộ
- Việc quét cũng có thể bị trì hoãn bằng
requestIdleCallback, để chạy khi trình duyệt rảnh và người dùng không nhận thấy ảnh hưởng hiệu năng
- Hệ thống phát hiện thứ hai có tên 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 nút văn bản cũng như thuộc tính phần tử để tìm các tham chiếu URL
chrome-extension://
- Cách này có thể phát hiện 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 lại sẽ bao quát cả các tiện ích đã cài lẫn các tiện ích thực sự 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
- Các ID tiện ích được phát hiện được đóng gói thành các đối tượng
AedEvent và 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/track của LinkedIn
- Dấu vân tay đã mã hóa sau đó được chèn vào header HTTP của mọi yêu cầu API phát sinh trong các phiên tiếp theo
- 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 thời gian 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 Số của EU, và LinkedIn là một trong các sản phẩm chịu điều tiết
- DMA yêu cầu các gatekeeper phải cho phép các công cụ bên thứ ba truy cập dữ liệu người dùng và cấm thực hiện hành động chống lại người dùng của các công cụ đó
- browsergate.eu cho rằng việc LinkedIn có hệ thống thực thi nhắm vào người dùng công cụ bên thứ ba và dùng việc quét tiện ích mở rộng bí mật để nhận diện họ cấu thành hành vi vi phạm quy định này
- Liệu lập luận đó có được chấp nhận về mặt pháp lý hay không vẫn là vấn đề thuộc phán quyết pháp lý
- Đơn vị Cybercrime Unit thuộc Bavarian Central Cybercrime Prosecution Office in Bamberg đã xác nhận rằng 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 có yếu tố vượt qua thẩm quyền địa lý
- 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