Bảo mật môi trường

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 Protecthoạ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

Các tính năng của 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.

Quy trình quyết định đối với API Tính toàn vẹn của Play

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 chụp màn hình điện thoại yêu cầu người dùng đóng một số ứng dụng.

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.

Bật hộp thoại Play Protect

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

NO_ISSUES

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.

NO_DATA

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.

POSSIBLE_RISK

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.

MEDIUM_RISK

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.

HIGH_RISK

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ủ.

UNEVALUATED

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:

  • Thiết bị không đủ tin cậy.
  • Chỉ trò chơi: Tài khoản người dùng chưa được CẤP PHÉP.

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:

  • Chuẩn bị trình cung cấp mã thông báo về tính toàn vẹn (một lần)
  • Yêu cầu mã thông báo về tính toàn vẹn (theo yêu cầu)

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:

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

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