Tín hiệu về trạng thái bảo mật

Android cung cấp nhiều tín hiệu thiết bị mà quản trị viên có thể sử dụng để xác định trạng thái bảo mật của thiết bị. Trong mô hình bảo mật Zero Trust, các tín hiệu này được dùng để đánh giá xem một thiết bị có được phép truy cập vào thông tin của công ty hay không.

Tính năng Mô tả Thiết bị Được quản lý hoàn toàn Hồ sơ công việc trên thiết bị do công ty sở hữu Hồ sơ công việc trên thiết bị thuộc sở hữu cá nhân (BYOD) Thiết bị không được quản lý
API Tính toàn vẹn của Play Đại lý tin cậy có thể truy xuất các tín hiệu sau:
  • Tính toàn vẹn của thiết bị
  • Tính toàn vẹn của ứng dụng
  • Thông tin chi tiết về giấy phép của Play
  • Thông tin chi tiết về môi trường, bao gồm cả kết quả mới của Play Protect
  • Hiện phần cứng bảo mật / Chứng thực khoá Người môi giới tin cậy có thể xác minh rằng thông tin xác thực PKI của họ đã được tạo và lưu trữ trong phần cứng bảo mật
    Chứng thực tài sản thiết bị Trong quá trình chứng thực khoá, bạn có thể đưa các thuộc tính thiết bị vào bản ghi chứng thực
    Cấp bản vá bảo mật của thiết bị Một trình quản lý tin cậy có thể xác thực Cấp bản vá bảo mật của hệ điều hành
    Thiết bị có bản cập nhật OTA đang chờ xử lý không Công cụ dàn xếp tin cậy có thể kiểm tra xem có bản cập nhật hệ điều hành thiết bị đang chờ xử lý hay không Không áp dụng
    Cấp bản vá bảo mật chính Một trình quản lý tin cậy có thể đọc cấp bản vá bảo mật cho đoàn tàu chính đã cài đặt
    Mã nhận dạng cụ thể của gói đăng ký Một đại lý tin cậy có thể truy cập vào mã thiết bị duy nhất dành riêng cho doanh nghiệp đó. Mã nhận dạng này vẫn tồn tại sau khi tạo lại hồ sơ công việc và đặt lại thiết bị về trạng thái ban đầu Không áp dụng
    Trạng thái quản lý (và ứng dụng quản lý) Cố vấn tin cậy có thể sử dụng thông tin này để xác định xem một thiết bị có được quản lý hay không Không áp dụng
    Mã hoá ổ đĩa Một trình quản lý tín nhiệm có thể kiểm tra xem thiết bị có được mã hoá hay không (nếu cần hỗ trợ Android 8)
    Phiên bản hệ điều hành Đối tác trung gian tin cậy có thể kiểm tra phiên bản hệ điều hành của thiết bị và xác nhận rằng phiên bản đó vượt quá một phiên bản nhất định
    Truy cập vào trạng thái mạng (Trạng thái mạng và trạng thái Wi-Fi) Một trình quản lý Trust có thể nhận thông tin về trạng thái mạng đang hoạt động (mạng di động và Wi-Fi)
    Truy cập vào Trạng thái WiFi (Android 11 trở xuống, Android 12 trở lên hỗ trợ cả phương thức gọi lại hoặc theo yêu cầu) Nhà môi giới Trust có thể nhận thông tin về mạng Wi-Fi đang hoạt động
    Cài đặt proxy Một trình quản lý ủy thác có thể nhận thông tin về chế độ cài đặt proxy HTTP mặc định hiện tại.
    Kiểm tra chất lượng khoá màn hình Một trình quản lý tin cậy có thể đảm bảo rằng thiết bị đã được định cấu hình phương thức khoá màn hình có chất lượng nhất định trước khi cấp quyền truy cập
    Đã bật tuỳ chọn cho nhà phát triển Một trình quản lý tin cậy có thể xác định một thiết bị có bề mặt tấn công rộng hơn khi các tuỳ chọn cho nhà phát triển được bật
    DNS qua TLS có được bật không Người quản lý tin cậy có thể tận dụng thông tin này để đảm bảo rằng chế độ DNS riêng được bật
    Duyệt web an toàn SafetyNet Một trình quản lý tin cậy có thể xác định xem một URL cụ thể có bị Google phân loại là mối đe doạ đã biết hay không.
    Đã gắn phương tiện bên ngoài Bạn có thể thông báo cho một Broker tin cậy khi một bộ nhớ ngoài được gắn
    UsageStatsManager Người môi giới tin cậy có thể nghiên cứu các mẫu sử dụng của từng ứng dụng 1
    Ghi nhật ký bảo mật Người quản lý tín nhiệm có thể tận dụng dữ liệu này trong công cụ theo bối cảnh để đảm bảo tuân thủ và tạo vân tay dựa trên hành vi 2 2 Không áp dụng
    Ghi nhật ký mạng Người quản lý tín nhiệm có thể tận dụng dữ liệu này trong công cụ theo bối cảnh để đảm bảo tuân thủ và tạo vân tay dựa trên hành vi 2 2 Không áp dụng
    NetworkStatsManager Một trình quản lý tín nhiệm có thể truy vấn mức sử dụng mạng của ứng dụng trong một khoảng thời gian nhất định 2 1
    Chế độ hiển thị gói (Liệt kê tất cả ứng dụng trên thiết bị) Một một người môi giới Tin cậy có thể truy vấn những ứng dụng được cài đặt trên thiết bị 3 3
    Đọc trạng thái điện thoại Một trình quản lý tín nhiệm có thể nhận thông tin mạng di động, trạng thái của mọi cuộc gọi đang diễn ra và danh sách PhoneAccount đã đăng ký trên thiết bị
    Lần gần đây nhất thiết bị khởi động lại Một trình quản lý tín nhiệm có thể nhận được thời gian hoạt động của hệ thống
    Lấy tài khoản Người môi giới tin cậy có thể tận dụng quyền này để truy cập vào danh sách tài khoản trong Dịch vụ tài khoản 3 3 1
    Theo dõi những thay đổi đáng kể về mức pin Cố vấn tin cậy có thể theo dõi những thay đổi đáng kể về mức pin
    Vị trí (Chính xác, Tương đối, v.v.) Một trình quản lý tin cậy có thể truy cập vào vị trí thực tế của thiết bị 1 1

    1 Khi có sự đồng ý của người dùng

    2 Chỉ hồ sơ công việc

    3 Quyền truy cập chỉ giới hạn ở thông tin hồ sơ công việc

    Một trình quản lý tín nhiệm có thể truy cập vào PackageInfo cho mô-đun com.google.android.modulemetadata và truy xuất versionName từ đó:

    private fun mainlineVersion(context: Context): String? {
        val moduleProvider = "com.google.android.modulemetadata"
    
        return try {
                val pm = context.packageManager
                val packageInfo = pm.getPackageInfo(moduleProvider, 0)
                packageInfo.versionName
            } catch (e: PackageManager.NameNotFoundException) {
                null
            }
    }
    

    Bạn có thể phân tích cú pháp chuỗi được trả về thành đối tượng Date bằng cách sử dụng lớp SimpleDateFormat:

    private val VERSION_NAME_DATE_PATTERNS = Arrays.asList(
          "yyyy-MM-dd",
          "yyyy-MM"
    )
    
    private fun parseDateFromVersionName(text: String): Date? {
        for (pattern in VERSION_NAME_DATE_PATTERNS) {
            try {
                val simpleDateFormat = SimpleDateFormat(
                    pattern,
                    Locale.getDefault()
                )
                simpleDateFormat.timeZone = TimeZone.getDefault()
                return simpleDateFormat.parse(text)
            } catch (e: ParseException) {
                // ignore and try next pattern
            }
        }
        return null
    }
    

    Hãy nhớ rằng đối với Android 11 trở lên, bạn phải thêm nội dung khai báo truy vấn vào tệp AndroidManifest.xml để đáp ứng chế độ hiển thị gói của Android:

    <manifest package="com.example.game">
        <queries>
            <package android:name="com.google.android.modulemetadata" />
        </queries>
        ...
    </manifest>

    Một trình quản lý tin cậy có thể sử dụng các phương thức này để xác minh xem một thiết bị có đang ở chế độ quản lý hay không và chế độ quản lý nào đang hoạt động.

    Kiểm tra tính năng quản lý thiết bị

    Sử dụng getActiveAdmins() để kiểm tra xem một thiết bị có đang được quản lý hay không. Nếu phương thức này trả về null, thì thiết bị đó không được quản lý.

    Kiểm tra thiết bị được quản lý đầy đủ

    Sử dụng isDeviceOwnerApp() để kiểm tra xem thiết bị có được quản lý đầy đủ hay không.

    Kiểm tra hồ sơ công việc trên thiết bị do công ty sở hữu

    Sử dụng isOrganizationOwnedDeviceWithManagedProfile() để kiểm tra xem một thiết bị có đang sử dụng chế độ quản lý hồ sơ công việc cho thiết bị do công ty sở hữu hay không

    Kiểm tra hồ sơ công việc trên thiết bị thuộc sở hữu cá nhân

    Sử dụng isProfileOwnerApp() để kiểm tra xem một ứng dụng có đang chạy bên trong hồ sơ công việc hay không và xác minh rằng isOrganizationOwnedDeviceWithManagedProfile() trả về false.