Tiện ích mở rộng có thể truy cập toàn bộ dữ liệu web của bạn. Tìm hiểu cách đánh giá độ an toàn và bảo vệ quyền riêng tư khi duyệt web.
Đúng vậy, một tiện ích mở rộng trình duyệt có thể đọc và sửa đổi gần như mọi thứ bạn làm trên mạng nếu bạn cấp cho nó các quyền rộng. Một add-on có quyền truy cập "toàn bộ dữ liệu của bạn trên tất cả các trang web" có thể nhìn thấy những trang bạn ghé thăm, văn bản bạn gõ vào biểu mẫu, cookie và lịch sử duyệt web của bạn. Hầu hết tiện ích mở rộng đều trung thực, nhưng điều quan trọng là mô hình cấp quyền: cách an toàn nhất là cài đặt ít tiện ích, cấp quyền truy cập hẹp nhất có thể và kiểm tra chúng định kỳ.
Một tiện ích mở rộng thực sự có thể làm gì
Khi bạn cài đặt một tiện ích mở rộng, bạn cấp cho nó một tập hợp quyền được khai báo trong manifest của nó. Những quyền đó quyết định tiện ích có thể nhìn thấy và thay đổi bao nhiêu hoạt động duyệt web của bạn. Người dùng thường nhấn "Thêm vào trình duyệt" mà không đọc lời nhắc, vì vậy việc hiểu các loại quyền này thực sự nghĩa là gì sẽ rất hữu ích.
Một tiện ích mở rộng có quyền truy cập máy chủ rộng thường có thể:
- Đọc nội dung trang — toàn bộ văn bản, liên kết và cấu trúc của mỗi trang bạn mở
- Đọc và điền các trường biểu mẫu — bao gồm ô tìm kiếm, biểu mẫu đăng nhập và trường thanh toán
- Truy cập cookie — có thể chứa token phiên giúp giữ bạn luôn đăng nhập
- Đọc lịch sử duyệt web — danh sách các trang và URL bạn ghé thăm
- Chèn script — chạy JavaScript của riêng nó bên trong các trang web khác
- Thực hiện yêu cầu mạng — gửi dữ liệu thu thập được đến một máy chủ từ xa
Điểm mấu chốt là tiện ích mở rộng chạy bên trong trình duyệt của bạn với phiên đang hoạt động của bạn. Nó không phải là một trang web từ xa chịu sự ràng buộc của chính sách cùng nguồn gốc; nó là một người trong cuộc đáng tin cậy. Đó chính là lý do tại sao một sai sót nhỏ về quyền có thể gây tác động lớn đến quyền riêng tư. Việc cấp quyền ở cấp manifest này là một khái niệm hoàn toàn khác, rộng hơn nhiều so với quyền ở cấp trang mà chính website có thể kiểm tra qua navigator.permissions.query() — xem Lấy dấu vân tay Permissions API để biết cơ chế riêng biệt, hẹp hơn đó hoạt động ra sao.
Mô hình cấp quyền nói một cách dễ hiểu
Các trình duyệt hiện đại (Manifest V3 của Chrome, WebExtensions của Firefox) mô tả phạm vi của một tiện ích mở rộng thông qua một tệp manifest. Dưới đây là ví dụ đơn giản hóa về phần quyền mà bạn đang ngầm phê duyệt:
{
"name": "Example Extension",
"permissions": ["cookies", "tabs", "storage"],
"host_permissions": ["<all_urls>"],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
]
}
Giá trị <all_urls> đó là thứ cần để mắt tới. Nó có nghĩa là tiện ích mở rộng có thể chạy content script của nó trên mọi trang bạn ghé thăm, đọc các trang đó và tác động lên chúng. Hãy so sánh với một tiện ích chỉ giới hạn ở một tên miền duy nhất, vốn chỉ có thể chạm đến một trang đó mà thôi.
Quyền truy cập máy chủ và <all_urls>
Quyền truy cập máy chủ xác định những trang nào một tiện ích mở rộng có thể hoạt động. Một mẫu như https://*.example.com/* giới hạn nó trong một dịch vụ. Một mẫu <all_urls> hoặc *://*/* cấp quyền truy cập toàn bộ web. Quyền truy cập máy chủ rộng là yếu tố lớn nhất quyết định dấu vết riêng tư của một tiện ích mở rộng.
activeTab và quyền truy cập khi nhấp
Quyền activeTab an toàn hơn nhiều: nó chỉ cấp quyền truy cập tạm thời vào tab hiện tại khi bạn nhấp vào biểu tượng của tiện ích, và quyền truy cập bị thu hồi khi bạn rời khỏi trang. Một tiện ích được xây dựng quanh activeTab không thể âm thầm theo dõi bạn ở chế độ nền. Ở nơi trình duyệt cung cấp, quyền truy cập trang "chạy khi nhấp" biến các tiện ích có phạm vi rộng thành các tiện ích chạy theo yêu cầu.
Content script
Content script là đoạn mã mà tiện ích mở rộng chèn vào các trang bạn ghé thăm. Nó có thể đọc DOM, quan sát những gì bạn gõ và viết lại trang. Content script là cơ chế đằng sau cả các tính năng hợp pháp (so sánh giá, kiểm tra ngữ pháp) lẫn việc thu thập dữ liệu lạm dụng. Độ rộng của mẫu matches của chúng cho bạn biết chúng có thể nhìn thấy bao nhiêu hoạt động duyệt web của bạn.
Khi tiện ích tốt trở nên xấu
Rủi ro không chỉ đến từ những tiện ích mở rộng độc hại được phát hành với ý đồ xấu. Có vài con đường ít rõ ràng hơn cũng dẫn đến cùng một kết cục.
- Tiện ích bị bỏ hoang. Nhà phát triển ngừng bảo trì một add-on. Mã vẫn hoạt động, nhưng các lỗ hổng bảo mật không được vá và tiện ích trở thành một điểm xâm nhập cũ kỹ với quyền truy cập rộng.
- Tiện ích bị mua lại rồi kiếm tiền. Một tiện ích phổ biến, đáng tin cậy được bán cho chủ sở hữu mới, người âm thầm đẩy một bản cập nhật chèn quảng cáo, liên kết tiếp thị hoặc theo dõi. Trình duyệt của bạn tự động cập nhật nó, và những quyền bạn đã cấp từ nhiều năm trước vẫn còn hiệu lực.
- Xâm phạm chuỗi cung ứng. Một tiện ích mở rộng đóng gói hợp pháp một thư viện bên thứ ba hoặc một cấu hình từ xa; nếu phụ thuộc đó hoặc máy chủ đó bị xâm phạm, payload độc hại sẽ tiếp cận tất cả những ai đã cài đặt tiện ích.
Thời điểm nguy hiểm hiếm khi là ngày cài đặt. Đó là bản cập nhật tự động âm thầm nhiều tháng sau, dựa trên những quyền bạn đã phê duyệt và quên mất.
Đây là lý do tại sao câu "lúc tôi cài thì nó vẫn ổn mà" không phải là một sự đảm bảo. Quyền truy cập rộng là một mối nguy thường trực có thể bị kích hoạt ở bất kỳ bản cập nhật nào trong tương lai.
Tiện ích mở rộng và fingerprinting
Ngoài việc đọc dữ liệu của bạn một cách trực tiếp, tiện ích mở rộng có thể khiến bạn dễ bị theo dõi hơn trên các trang khác nhau. Tập hợp cụ thể các tiện ích bạn đã cài đặt, và những thay đổi chúng tạo ra trên trang, có thể trở thành một phần dấu vân tay trình duyệt của bạn.
Một số cách điều này xảy ra:
- Tài nguyên có thể truy cập từ web bị phát hiện. Nhiều tiện ích mở rộng phơi bày các tệp nội bộ mà một trang web có thể dò tìm, qua đó tiết lộ những add-on bạn đang dùng.
- Sửa đổi DOM. Các tiện ích chèn phần tử hoặc viết lại trang để lại những dấu vết nhất quán, có thể phát hiện được mà một bộ theo dõi có thể đọc.
- Tác dụng phụ về hành vi. Các trình chặn và công cụ riêng tư thay đổi hành vi mạng và kết xuất theo những cách mà, trớ trêu thay, lại có thể đo lường được.
Kết quả là một nghịch lý: một tiện ích bảo mật hiếm gặp có thể khiến trình duyệt của bạn dễ nhận dạng hơn chứ không phải khó hơn, bởi vì ít người dùng khác có cấu hình giống hệt như vậy. Để xem dấu vân tay tổng thể của bạn trông như thế nào, hãy đọc hướng dẫn về fingerprinting trình duyệt của chúng tôi, và để so sánh các cách tăng cường bảo vệ, hãy xem so sánh các công cụ bảo vệ quyền riêng tư của chúng tôi.
Cách đánh giá một tiện ích mở rộng trước khi cài đặt
Hãy đối xử với mỗi tiện ích mở rộng như việc cấp cho một ứng dụng quyền truy cập vào các tài khoản của bạn, bởi vì về mặt chức năng đó gần như chính là điều bạn đang làm. Hãy rà soát qua danh sách kiểm tra này.
| Tín hiệu | Rủi ro thấp hơn | Rủi ro cao hơn |
|---|---|---|
| Phạm vi quyền | activeTab, mẫu một máy chủ | <all_urls>, quyền truy cập máy chủ rộng |
| Nhà phát hành | Công ty đã biết hoặc nhà phát triển uy tín | Tài khoản ẩn danh hoặc mới toanh |
| Lượng người dùng và đánh giá | Lượng cài đặt lớn, đánh giá ổn định | Ít người dùng, hoặc đánh giá tăng vọt đột ngột |
| Lần cập nhật cuối | Cập nhật gần đây và đều đặn | Không động đến trong nhiều năm (bị bỏ hoang) |
| Mã nguồn | Mã nguồn mở, có thể kiểm toán | Đóng, bị làm rối, chỉ được minify |
| Cách xử lý dữ liệu | Công bố quyền riêng tư rõ ràng, tối thiểu | Chính sách mơ hồ hoặc không có |
Không một tín hiệu đơn lẻ nào mang tính quyết định, nhưng sự kết hợp của chúng kể nên một câu chuyện. Một tiện ích mã nguồn mở giới hạn ở activeTab từ một nhà phát triển đang hoạt động là một lựa chọn rất khác so với một add-on mã nguồn đóng, dùng <all_urls>, lần cuối được động đến cách đây ba năm.
Bạn cũng có thể kiểm tra những gì hiện đang hoạt động trong chính trình duyệt của mình. Kiểm tra plugin và tiện ích mở rộng của BrowserInsight giúp bạn thấy các add-on có thể phát hiện được và hiểu dấu vết của chúng, còn kiểm tra dấu vân tay cho thấy cấu hình tổng thể của bạn góp phần vào khả năng bị theo dõi như thế nào.
Các bước thực tế để giảm rủi ro
Bạn không cần phải từ bỏ tiện ích mở rộng — bạn cần quản lý chúng một cách có chủ đích.
1. Áp dụng nguyên tắc đặc quyền tối thiểu
Hãy ưu tiên các tiện ích yêu cầu quyền hẹp nhất. Nếu hai add-on làm cùng một việc, hãy chọn cái giới hạn ở activeTab hoặc các máy chủ cụ thể thay vì cái đòi quyền truy cập tất cả các trang.
2. Dùng quyền truy cập trang "khi nhấp"
Đối với các tiện ích hỗ trợ điều này, hãy đặt quyền truy cập trang thành "khi nhấp" để chúng chỉ chạy khi bạn gọi đến. Điều này vô hiệu hóa phần lớn việc thu thập dữ liệu ở chế độ nền mà không mất đi chức năng.
3. Kiểm tra định kỳ
Một hoặc hai lần mỗi năm, hãy mở trang tiện ích mở rộng của trình duyệt và gỡ bỏ bất cứ thứ gì bạn không còn dùng nữa. Mỗi tiện ích đã cài đặt là một bề mặt tấn công; một tiện ích không dùng đến chỉ toàn là mặt hại.
4. Để mắt đến cập nhật và thay đổi chủ sở hữu
Hãy cảnh giác nếu một tiện ích trước đây đơn giản bỗng bắt đầu yêu cầu các quyền mới, rộng hơn — trình duyệt thường sẽ nhắc bạn. Sự mở rộng quyền đột ngột có thể là dấu hiệu của việc thay đổi chủ sở hữu hoặc ý đồ.
5. Dùng chính sách doanh nghiệp khi phù hợp
Trong các môi trường được quản lý, quản trị viên có thể đưa các tiện ích được phê duyệt vào danh sách cho phép và chặn mọi thứ khác thông qua chính sách trình duyệt. Đây là biện pháp kiểm soát đáng tin cậy nhất ở quy mô lớn, loại bỏ hoàn toàn việc phán đoán của từng người dùng.
Câu hỏi thường gặp
Một tiện ích mở rộng trình duyệt có thể đọc mật khẩu của tôi không?
Nếu một tiện ích mở rộng có quyền chạy trên các trang nơi bạn đăng nhập và đọc các trường biểu mẫu, về mặt kỹ thuật nó có thể quan sát những gì bạn gõ, bao gồm cả mật khẩu, trước khi chúng được gửi đi. Đây là lý do tại sao việc cấp quyền truy cập máy chủ rộng cho các tiện ích không đáng tin cậy lại rủi ro. Các trường mật khẩu không hề được miễn nhiễm một cách thần kỳ trước một content script đang chạy trên trang.
Tiện ích từ cửa hàng chính thức có luôn an toàn không?
Không. Các cửa hàng chính thức thực hiện kiểm duyệt tự động và một phần thủ công, vốn lọc bỏ phần lớn phần mềm độc hại trắng trợn, nhưng việc kiểm duyệt không hoàn hảo. Tiện ích bị bỏ hoang, việc chuyển giao quyền sở hữu và các bản cập nhật đưa thêm theo dõi vào đều có thể lọt qua. Sự hiện diện trên cửa hàng làm giảm rủi ro nhưng không loại bỏ nó.
Tiện ích bảo mật có khiến tôi khó bị theo dõi hơn không?
Đôi khi có, và đôi khi thì ngược lại. Các trình chặn nội dung có thể ngăn nhiều bộ theo dõi, nhưng tập hợp đặc trưng các tiện ích bạn dùng và những thay đổi chúng tạo ra trên trang có thể bổ sung vào dấu vân tay của bạn. Hãy nhắm đến các công cụ được dùng rộng rãi, được bảo trì tốt thay vì những công cụ hiếm gặp, kỳ lạ, và hãy xác minh hiệu quả thực tế bằng một lần kiểm tra dấu vân tay.
Bao nhiêu tiện ích mở rộng là quá nhiều?
Không có con số cố định, nhưng mỗi tiện ích đều thêm quyền, bề mặt tấn công và một tín hiệu fingerprinting tiềm tàng. Một quy tắc tốt là chỉ giữ lại những gì bạn dùng tích cực, ưu tiên các quyền hẹp và gỡ bỏ phần còn lại. Ít tiện ích được chọn lọc kỹ tốt hơn một danh sách dài những tiện ích bị quên lãng.


