Chào mừng bạn đến với TiemDienThoai.com
Kiến thức · Bảo mật & Dữ liệu

Sandbox ứng dụng là gì, vì sao một app không thể tự ý đọc dữ liệu của app khác

Lớp cách ly sandbox ở tầng hệ điều hành ngăn ứng dụng đọc dữ liệu của nhau, hoạt động độc lập với mọi quyền riêng tư người dùng cấp hay từ chối trong cài đặt.

Mục lục bài viết

Một câu hỏi kỹ thuật ít người đặt ra khi cài app mới: điều gì thực sự ngăn ứng dụng ngân hàng đọc được dữ liệu của app ghi chú, hay ngăn một app trò chơi đọc mật khẩu lưu trong app quản lý mật khẩu? Câu trả lời nằm ở cơ chế sandbox ứng dụng, một lớp cách ly ở tầng hệ điều hành hoạt động độc lập với mọi quyền riêng tư mà người dùng cấp hay từ chối trong phần cài đặt.

Sandbox là gì về mặt kỹ thuật

Sandbox là một vùng lưu trữ và không gian tiến trình riêng mà hệ điều hành cấp cho từng ứng dụng khi cài đặt. Trên iOS, mỗi app được gán một thư mục container riêng với định danh duy nhất; trên Android, mỗi app chạy dưới một user ID Linux riêng biệt do hệ thống tự sinh ra. Vì hai app có user ID khác nhau ở tầng hệ điều hành, một app không có cách nào đọc trực tiếp file trong thư mục dữ liệu của app khác, kể cả khi cả hai đang chạy trên cùng một thiết bị và cùng được người dùng tin tưởng cấp quyền tương tự nhau.

Ranh giới sandbox nằm ở tầng hệ điều hành, không phải ở tầng quyền

Quyền riêng tư như camera, vị trí, danh bạ là lớp kiểm soát bổ sung, quyết định app có được gọi các API nhạy cảm hay không. Sandbox là lớp nằm bên dưới, quyết định app có được đọc file hệ thống hoặc file của app khác hay không, và lớp này áp dụng vô điều kiện, không thể tắt hay bật qua màn hình cài đặt quyền. Ngay cả khi người dùng cấp toàn bộ quyền cho một app, sandbox vẫn ngăn app đó truy cập trực tiếp vùng lưu trữ riêng của ứng dụng khác trừ khi có cơ chế chia sẻ dữ liệu tường minh.

Những cách dữ liệu vẫn có thể đi qua ranh giới sandbox

Sandbox không có nghĩa là các app hoàn toàn cô lập tuyệt đối. Dữ liệu vẫn có thể trao đổi qua các kênh được hệ điều hành cho phép tường minh: chia sẻ qua clipboard khi người dùng chủ động sao chép, chia sẻ qua share sheet hoặc intent khi người dùng chọn gửi nội dung sang app khác, hoặc qua App Group trên iOS và ContentProvider trên Android khi hai app cùng nhà phát triển chủ động thiết lập vùng dữ liệu dùng chung. Mỗi kênh này đều đòi hỏi một hành động thiết lập rõ ràng từ phía nhà phát triển hoặc thao tác chủ động từ người dùng, chứ không xảy ra ngầm định.

Vì sao root hoặc jailbreak phá vỡ ranh giới này

Khi thiết bị bị root hoặc jailbreak, cơ chế phân quyền user ID hoặc container riêng biệt có thể bị vô hiệu hóa, cho phép ứng dụng có quyền root đọc dữ liệu của các app khác bất kể sandbox mặc định. Đây là lý do các app tài chính, ngân hàng thường chủ động kiểm tra thiết bị có bị root hay jailbreak trước khi cho đăng nhập, vì trên thiết bị đã bị phá vỡ ranh giới sandbox, không quyền riêng tư nào ở tầng ứng dụng còn đủ để bảo vệ dữ liệu.

Hiểu nhầm thường gặp

“App đã xin đủ quyền tức là có thể truy cập được dữ liệu của app khác trên máy” là suy nghĩ sai. Quyền riêng tư (camera, vị trí, danh bạ…) chỉ kiểm soát việc app có được gọi các API phần cứng hoặc dữ liệu hệ thống nhất định, hoàn toàn tách biệt với sandbox lưu trữ. Không có quyền nào trong màn hình cài đặt cho phép một app đọc trực tiếp file dữ liệu riêng của ứng dụng khác; việc đó chỉ xảy ra qua các kênh chia sẻ tường minh hoặc khi ranh giới hệ điều hành bị phá vỡ.

Xem thêm

Nội dung này thuộc cụm bài Quyền riêng tư & quyền ứng dụng: tổng hợp bài viết. Xem thêm Quyền truy cập Clipboard của ứng dụng: rủi ro đọc lén dữ liệu sao chép.

Hoàng Gia Bảo - kỹ thuật viên trưởng
Tác giả phụ trách chuyên mục

Kỹ thuật viên trưởng — Kỹ thuật viên trưởng tại trung tâm sửa chữa, trực tiếp chẩn đoán và xử lý hàng nghìn ca lỗi điện thoại mỗi năm.

Xem hồ sơ và chuyên môn →
Bình luận bài viết

Để lại bình luận

Thông tin liên hệ chỉ dùng để phản hồi, không hiển thị công khai.