Bảo mật hoạt động nhạy cảm

Tài liệu này trình bày chi tiết các cách giám sát các hoạt động nhạy cảm, chẳng hạn như hoạt động đăng nhập của người dùng và lượt mua hàng trực tuyến.

FLAG_SECURE

FLAG_SECURE là một cờ cửa sổ để yêu cầu Android không cho phép ảnh chụp màn hình hoặc để hiển thị khung hiển thị cửa sổ trên một màn hình không an toàn (chẳng hạn như Truyền màn hình). Thông tin này rất hữu ích đối với những ứng dụng cần bảo vệ dữ liệu nhạy cảm thông tin, chẳng hạn như ứng dụng ngân hàng hoặc trình quản lý mật khẩu. Khi một cửa sổ bị gắn cờ với FLAG_SECURE, Android sẽ ngăn chụp ảnh màn hình và ngăn không cho hiển thị cửa sổ trên một màn hình không an toàn, chẳng hạn như TV hoặc máy chiếu. Điều này giúp bảo vệ thông tin hiển thị trong cửa sổ bị người dùng không được phép truy cập.

Cách điều này giúp giảm thiểu hành vi gian lận

Một ứng dụng hoặc thực thể độc hại có thể truy xuất ảnh chụp màn hình trong nền. Khi trạng thái trong số các thay đổi của ứng dụng sang chế độ nền, bạn có thể dùng FLAG_SECURE. Khi ảnh chụp màn hình thì hình ảnh thu được bị trống.

FLAG_SECURE cũng hỗ trợ các trường hợp sử dụng tính năng chia sẻ màn hình từ xa. Không phải lúc nào cũng ứng dụng độc hại sẽ truy xuất ảnh chụp màn hình, các ứng dụng chia sẻ màn hình hợp pháp cũng thường được sử dụng trong các tình huống gian lận.

Triển khai

Đối với các chế độ xem có thông tin mà bạn muốn được bảo vệ, hãy thêm đoạn mã sau:

Kotlin


window?.setFlags(
    WindowManager.LayoutParams.FLAG_SECURE,
    WindowManager.LayoutParams.FLAG_SECURE
)

Java


window.setFlags(
  WindowManager.LayoutParams.FLAG_SECURE,
  WindowManager.LayoutParams.FLAG_SECURE
);

Các phương pháp hay nhất

Điều quan trọng cần lưu ý là phương pháp này không đáng tin cậy trong việc ngăn chặn lớp phủ cuộc tấn công. Trong một số trường hợp, tính năng này không dự đoán chính xác liệu tính năng ghi màn hình đang hoạt động. Tuy nhiên, nó phù hợp với hầu hết các trường hợp sử dụng. Để giảm thiểu các cuộc tấn công lớp phủ, hãy đọc phần tiếp theo về các quyền HIDE_OVERLAY_WINDOWS.

ẨN_OVERLAY_WINDOWS

HIDE_OVERLAY_WINDOWS là một quyền được thêm vào Android 12 để ứng dụng của bạn có thể chọn không vẽ lớp phủ ứng dụng trên đó. Trên Android 12, chúng tôi đã đưa ra khó có được quyền SYSTEM_ALERT_WINDOW hơn, về cơ bản cho phép ứng dụng của bạn chặn lớp phủ khỏi các ứng dụng bên thứ ba.

Cách điều này giúp giảm thiểu hành vi gian lận

Khi bật quyền HIDE_OVERLAY_WINDOWS, bạn đang chọn không sử dụng có lớp phủ ứng dụng được vẽ trên ứng dụng của bạn. Quyền này cung cấp cơ chế bảo vệ chống lại các cuộc tấn công áo khoác và dao găm.

Triển khai

Để bật quyền này, hãy thêm HIDE_OVERLAY_WINDOWS vào quyền của dự án tệp kê khai.

Các phương pháp hay nhất

Tương tự như với mọi quyền, bạn cũng nên tin tưởng bất kỳ ứng dụng lớp phủ nào, ít nhất là tin tưởng bất kỳ ứng dụng nào khác trên thiết bị. Nói cách khác, ứng dụng của bạn không cho phép các ứng dụng khác vẽ lớp phủ lên trên đó trừ phi bạn biết ứng dụng khác đáng tin cậy. Việc cho phép một ứng dụng vẽ lên các ứng dụng khác có thể nguy hiểm vì ứng dụng đó có thể đánh cắp mật khẩu hoặc đọc thư.