Google cung cấp một bộ API và dịch vụ giúp bạn phát hiện xem ứng dụng của mình có chạy trong một môi trường an toàn và đáng tin cậy. Trọng tâm là API Tính toàn vẹn của Play API này giúp kiểm tra xem hoạt động tương tác có phải là thật hay không bằng cách phát hiện các khả năng tương tác gian lận và tiềm ẩn rủi ro. Ngoài tính toàn vẹn của ứng dụng và thiết bị, Play API Tính toàn vẹn hiện cung cấp thông tin về các rủi ro về quyền truy cập và hỗ trợ tiếp cận, Google Play Protect và hoạt động gần đây trên thiết bị. Để tăng cường chiến lược chống lừa đảo mà nền tảng Android cung cấp API cho các trường hợp cụ thể có thể phù hợp với ứng dụng của bạn.
API Tính toàn vẹn của Play
API Tính toàn vẹn của Play giúp bạn tìm hiểu về trạng thái bảo mật của trên thiết bị mà ứng dụng của họ đang chạy. Điều này giúp bạn chắc chắn rằng đúng người dùng đang truy cập thông tin nhạy cảm.
Công cụ này giúp bạn kiểm tra để đảm bảo các lượt tương tác và yêu cầu gửi tới máy chủ đến từ tệp nhị phân của ứng dụng chính thống trong một môi trường đáng tin cậy:
- Tệp nhị phân của ứng dụng chính thống: Xác định xem bạn có đang tương tác với tệp nhị phân chưa sửa đổi mà Google Play biết.
- Cài đặt Play chính thống: Xác định xem tài khoản người dùng hiện tại có phải được cấp phép, có nghĩa là người dùng đã cài đặt hoặc thanh toán cho ứng dụng hoặc trò chơi của bạn trên Google Play.
- Thiết bị Android chính hãng: Xác định xem ứng dụng của bạn có đang chạy trên thiết bị Android chính hãng hay không Thiết bị chạy Android được Dịch vụ Google Play hỗ trợ.
- Không nhiễm phần mềm độc hại đã biết: Xác định xem bạn đã bật Google Play Protect hay chưa cũng như liệu công cụ đó có tìm thấy ứng dụng gây rủi ro hoặc nguy hiểm được cài đặt trên thiết bị đó hay không.
- Rủi ro các ứng dụng khác truy cập thấp: Xác định xem các ứng dụng khác có đang chạy hay không có thể chụp màn hình hoặc điều khiển thiết bị và dữ liệu đầu vào vào ứng dụng của bạn.
Cách điều này giúp giảm thiểu hành vi gian lận
Khi người dùng thực hiện một hành động quan trọng trong ứng dụng, bạn có thể gọi Play API Tính toàn vẹn. Nếu không, máy chủ phụ trợ của ứng dụng có thể quyết định cần làm gì làm để chống lại các cuộc tấn công và lừa đảo. Ví dụ: bạn có thể yêu cầu xác minh người dùng bổ sung hoặc từ chối cấp quyền sử dụng chức năng nhạy cảm.
Rủi ro truy cập ứng dụng
Tín hiệu Rủi ro truy cập ứng dụng được ra mắt để giúp bạn đánh giá xem trên thiết bị có thể đang xem và chụp màn hình khi ứng dụng của bạn đang chạy hoặc truy cập vào ứng dụng của bạn thông qua quyền hỗ trợ tiếp cận. Đã xác minh các ứng dụng hỗ trợ tiếp cận sẽ tự động bị loại trừ khỏi những kết quả này. Quyền truy cập vào ứng dụng rủi ro này giúp nhà phát triển bảo vệ ứng dụng của họ trong khi vẫn đảm bảo quyền riêng tư của người dùng vì ứng dụng yêu cầu không lấy được danh tính của ứng dụng đã cài đặt cũng như kết quả không được liên kết với mã nhận dạng người dùng hoặc thiết bị.
Nhờ nỗ lực cộng tác này, chúng tôi có thể thu được những tín hiệu cần thiết để cung cấp cho chúng tôi thông tin chi tiết chuyên sâu hơn để bảo vệ khách hàng hiệu quả hơn.
—Nubank, đối tác tiếp cận sớm
Rủi ro truy cập ứng dụng có các mức rủi ro khác nhau:
- Phản hồi chụp ảnh có nghĩa là các ứng dụng khác đang chạy có thể chụp màn hình.
- Phản hồi kiểm soát có nghĩa là các ứng dụng khác đang chạy có thể kiểm soát thiết bị, do đó chúng có thể vừa chụp ảnh màn hình vừa điều khiển đầu vào vào ứng dụng của bạn.
Tính năng đánh giá rủi ro truy cập ứng dụng hiện đã có phiên bản beta công khai và sẽ được triển khai rộng rãi khả dụng trong vài tháng tới.
Thực thi tính năng Rủi ro truy cập ứng dụng
Xác định các hành động có giá trị cao/nhạy cảm trong ứng dụng hoặc trò chơi để bảo vệ bằng API Tính toàn vẹn của Play, thay vì từ chối quyền truy cập ngay lập tức. Khi có thể, hãy thử thách lưu lượng truy cập rủi ro trước khi cho phép các hành động có giá trị cao tiếp tục. Ví dụ: khi tính năng đánh giá rủi ro truy cập ứng dụng cho biết rằng một ứng dụng đang chạy có thể ghi lại màn hình, hãy yêu cầu người dùng tắt hoặc gỡ cài đặt các ứng dụng có thể ghi lại màn hình trước khi cho phép họ tiếp tục sử dụng chức năng mà bạn muốn bảo vệ.
Bảng này chứa một số kết quả mẫu:
Ví dụ về phản hồi đối với kết quả đánh giá rủi ro truy cập ứng dụng | Diễn giải |
---|---|
appsDetected: ["KNOWN_INSTALLED"]
|
Chỉ có những ứng dụng đã cài đặt mà Google Play nhận dạng được hoặc do nhà sản xuất thiết bị tải trước lên phân vùng hệ thống. Không có ứng dụng nào đang chạy dẫn đến việc chụp ảnh, kiểm soát hoặc phủ kết quả. |
appsDetected: ["KNOWN_INSTALLED", "UNKNOWN_INSTALLED", "UNKNOWN_CAPTURING"]
|
Có những ứng dụng do Google Play cài đặt hoặc được tải trước trên phân vùng hệ thống theo nhà sản xuất thiết bị. Có các ứng dụng khác đang chạy và đã cấp quyền có thể được dùng để xem màn hình hoặc ghi lại các dữ liệu đầu vào và đầu ra khác. |
appsDetected: ["KNOWN_INSTALLED", "KNOWN_CAPTURING", "UNKNOWN_INSTALLED", "UNKNOWN_CONTROLLING"]
|
Có Play hoặc hệ thống đang chạy đã được cấp quyền có thể được dùng để xem màn hình hoặc ghi lại các dữ liệu đầu vào và đầu ra khác. Ngoài ra còn có các ứng dụng khác đang chạy đã bật quyền có thể dùng để điều khiển thiết bị và trực tiếp điều khiển đầu vào ứng dụng của bạn. |
appAccessRiskVerdict: {}
|
Tính năng đánh giá rủi ro truy cập ứng dụng không được đánh giá vì có một yêu cầu cần thiết bỏ lỡ. Ví dụ: thiết bị không đủ tin cậy. |
Tín hiệu Play Protect
Tín hiệu Play Protect sẽ cho ứng dụng của bạn biết liệu Play Protect có đang bật hay không và xem có tìm thấy ứng dụng gây hại đã biết được cài đặt trên thiết bị hay không.
environmentDetails:{
playProtectVerdict: "NO_ISSUES"
}
Nếu phần mềm độc hại là mối quan tâm đặc biệt đối với ứng dụng của bạn hoặc , bạn có thể kiểm tra kết quả này và yêu cầu người dùng bật Play Protect hoặc xoá ứng dụng độc hại ứng dụng trước khi tiếp tục.
playProtectVerdict
có thể có một trong những giá trị sau đây:
Kết quả | Giải thích | Việc nên làm |
---|---|---|
|
Play Protect đã bật và không phát hiện thấy bất kỳ vấn đề nào về ứng dụng trên thiết bị. |
Play Protect đang bật và không phát hiện thấy vấn đề nên người dùng không thực hiện hành động nào là bắt buộc. |
|
Play Protect đã bật nhưng chưa quét. Chiến lược phát hành đĩa đơn thiết bị hoặc ứng dụng Cửa hàng Play gần đây có thể đã được đặt lại. |
Play Protect đang bật và không phát hiện thấy vấn đề nên người dùng không thực hiện hành động nào là bắt buộc. |
|
Play Protect đã bị tắt. |
Play Protect đang bật và không phát hiện thấy vấn đề nên người dùng không thực hiện hành động nào là trường bắt buộc. |
|
Play Protect đã bật và phát hiện thấy các ứng dụng có khả năng gây hại được cài đặt trên thiết bị. |
Tuỳ thuộc vào khả năng chấp nhận rủi ro của mình, bạn có thể yêu cầu người dùng khởi chạy Play Protect và xử lý các cảnh báo của Play Protect. Nếu người dùng không thể đáp ứng những yêu cầu này, bạn có thể chặn chúng từ máy chủ hành động. |
|
Play Protect đã bật và phát hiện thấy các ứng dụng nguy hiểm được cài đặt trên thiết bị. |
Tuỳ thuộc vào khả năng chấp nhận rủi ro của mình, bạn có thể yêu cầu người dùng khởi chạy Play Protect và xử lý các cảnh báo của Play Protect. Nếu người dùng không thể đáp ứng các yêu cầu này, bạn có thể chặn họ từ hành động của máy chủ. |
|
Kết quả xác minh của Play Protect chưa được đánh giá. Điều này có thể xảy ra vì một vài lý do, bao gồm:
|
Hoạt động gần đây trên thiết bị
Bạn cũng có thể chọn sử dụng hoạt động gần đây trên thiết bị để biết số lần hoạt động ứng dụng của bạn đã yêu cầu mã thông báo về tính toàn vẹn trên một thiết bị cụ thể trong 1 giờ qua. Bạn có thể sử dụng hoạt động gần đây trên thiết bị để bảo vệ ứng dụng của bạn khỏi những ứng dụng không mong muốn, thiết bị hoạt động quá mức có thể là dấu hiệu của một cuộc tấn công đang diễn ra. Bạn có thể quyết định mức độ tin cậy cho mỗi cấp độ hoạt động gần đây trên thiết bị số lần bạn muốn ứng dụng của mình được cài đặt trên một thiết bị thông thường sẽ yêu cầu tính toàn vẹn mã thông báo mỗi giờ.
Nếu bạn chọn nhận recentDeviceActivity
, trường deviceIntegrity
sẽ
có hai giá trị:
deviceIntegrity: {
deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
recentDeviceActivity: {
// "LEVEL_2" is one of several possible values.
deviceActivityLevel: "LEVEL_2"
}
}
Trước tiên, bạn nên kiểm tra dữ liệu để biết mức hoạt động thông thường của thiết bị cho ứng dụng trên tất cả các thiết bị của bạn. Sau đó, bạn có thể quyết định cách ứng dụng của mình sẽ phản hồi khi thiết bị thực hiện quá nhiều yêu cầu. Nếu hoạt động là một hơi cao, bạn nên yêu cầu người dùng thử lại sau. Nếu hoạt động là rất cao, nên bạn nên áp dụng biện pháp thực thi mạnh mẽ hơn.
Yêu cầu thông thường so với yêu cầu kiểu cũ
Trong quá trình triển khai API Tính toàn vẹn của Play, bạn cần cân nhắc đến 2 loại yêu cầu. Trong hầu hết các trường hợp, bạn nên sử dụng yêu cầu chuẩn để cung cấp phản hồi nhanh nhất – và các yêu cầu kiểu cũ nên được sử dụng ở những nơi cần có một yêu cầu mới được tạo đối với bản ghi chứng thực thiết bị.
Yêu cầu cổ điển |
Yêu cầu thông thường |
---|---|
Yêu cầu mất nhiều thời gian hơn và nên được thực hiện ít thường xuyên hơn. Ví dụ: thỉnh thoảng thực hiện một lần để kiểm tra xem một hành động nhạy cảm là hành động chân thật. Không sử dụng thường xuyên. |
Yêu cầu có độ trễ thấp và có thể được sử dụng theo yêu cầu. Một yêu cầu thông thường bao gồm 2 phần:
Sử dụng theo yêu cầu. |
Hãy đọc tài liệu về API Tính toàn vẹn của Play để biết thêm thông tin về tiêu chuẩn và yêu cầu kiểu cũ.
Triển khai
Cách bắt đầu sử dụng API Tính toàn vẹn của Play:
- Bật tính năng phản hồi cho API Tính toàn vẹn của Play trong Google Play Console và đường liên kết đối với một dự án trên Google Cloud.
- Tích hợp API Tính toàn vẹn của Play trong ứng dụng.
- Quyết định cách bạn sẽ xử lý kết quả.
Theo mặc định, API Tính toàn vẹn của Play cho phép gửi tối đa 10.000 yêu cầu trên mỗi ứng dụng mỗi ngày. Người nhận thể hiện sự quan tâm đến việc tăng số lượng yêu cầu tối đa hằng ngày của bạn, hãy làm theo hướng dẫn. Để đủ điều kiện tăng mức tối đa hằng ngày yêu cầu, thì ứng dụng của bạn phải triển khai API Tính toàn vẹn của Play đúng cách và có trên Google Play ngoài bất kỳ kênh phân phối nào khác.
Những điều cần lưu ý đối với API Tính toàn vẹn của Play
- Bạn cần phải xử lý các lỗi trong phản hồi của API Tính toàn vẹn của Play, một cách phù hợp. Làm theo hướng dẫn tại đây về các chiến lược thử lại và thực thi dựa trên mã lỗi.
- API Tính toàn vẹn của Play cung cấp công cụ kiểm thử phản hồi.
- Để xem kết quả về tính toàn vẹn từ thiết bị của bạn, hãy làm theo các bước sau.
- Đọc những điều cần cân nhắc về bảo mật này để biết các phương pháp được đề xuất bằng cách sử dụng API Tính toàn vẹn của Play.
Tính năng tự động bảo vệ tính toàn vẹn (API >= 23)
Tính năng tự động bảo vệ tính toàn vẹn là một dịch vụ bảo vệ mã chống giả mạo bảo vệ ứng dụng của bạn khỏi hành vi vi phạm tính toàn vẹn dưới hình thức trái phép sửa đổi và phân phối lại. Tính năng này hoạt động mà không cần có kết nối dữ liệu và cần không có nhà phát triển nào làm việc trước khi kiểm thử cũng như không tích hợp máy chủ phụ trợ.
Cách điều này giúp giảm thiểu hành vi gian lận
Khi bạn bật tính năng Tự động bảo vệ tính toàn vẹn, Google Play sẽ thêm các bước kiểm tra vào ứng dụng của bạn và khiến chúng khó gỡ bỏ bằng phương thức làm rối mã nguồn nâng cao và kỹ thuật chống đảo ngược. Trong thời gian chạy, tính năng bảo vệ sẽ kiểm tra xem ứng dụng đã bị can thiệp hoặc phân phối lại:
- Nếu quy trình kiểm tra cho thấy ứng dụng không được cài đặt từ Play, thì người dùng sẽ thấy lời nhắc tải ứng dụng của bạn qua Google Play
- Nếu quy trình kiểm tra cho thấy có sửa đổi, ứng dụng sẽ không chạy
Việc này giúp bảo vệ người dùng khỏi các phiên bản đã sửa đổi của ứng dụng.
Triển khai
Tính năng tự động bảo vệ tính toàn vẹn chỉ dành cho một số Đối tác của Play tại thời điểm này bất cứ lúc nào. Liên hệ với bộ phận hỗ trợ nhà phát triển của Google Play nếu tính năng này không được cung cấp tại Google Play Console của bạn và bạn muốn bày tỏ sự quan tâm đến việc nhận truy cập.
Bạn có thể bật tính năng bảo vệ khi tạo bản phát hành hoặc trên Ứng dụng tính toàn vẹn (Bản phát hành > Tính toàn vẹn của ứng dụng). Tính toàn vẹn tự động tính năng bảo vệ đòi hỏi ứng dụng của bạn sử dụng Tính năng ký ứng dụng của Play.
Hãy nhớ kiểm thử ứng dụng được bảo vệ của bạn trước khi quảng bá bản phát hành lên phát hành công khai.
Những điều cần lưu ý
- Đừng phát hành phiên bản ứng dụng chưa được bảo vệ
- Cẩn thận khi kết hợp các giải pháp chống giả mạo
- Kiểm thử ứng dụng được bảo vệ trước khi phát hành công khai
- Theo dõi số liệu thống kê như bình thường về mọi sự cố gia tăng
- Bạn có thể báo cáo cho Google Play các phiên bản bị bẻ khoá của ứng dụng