Sinyal Zero-Trust

Android menyediakan berbagai sinyal perangkat yang dapat digunakan administrator untuk menentukan postur keamanan suatu perangkat. Dalam model keamanan Zero Trust, sinyal ini digunakan untuk menilai apakah perangkat boleh diizinkan untuk mengakses informasi perusahaan.

Fitur Deskripsi Perangkat yang Terkelola Sepenuhnya Profil kerja di perangkat milik perusahaan Profil kerja di perangkat milik pribadi (BYOD) Perangkat tidak terkelola
Putar Integrity API Broker kepercayaan dapat mengambil sinyal berikut:
  • Integritas perangkat
  • Integritas aplikasi
  • Detail lisensi Play
  • Detail lingkungan termasuk verdict Play Protect baru
  • Ya Ya Ya Ya
    Aman Adanya Hardware / Pengesahan Kunci Pialang kepercayaan dapat memverifikasi bahwa kredensial IKP mereka telah dibuat dan disimpan dalam perangkat keras yang aman Ya Ya Ya Ya
    Perangkat Pengesahan Properti Sebagai bagian dari pengesahan kunci, properti perangkat dapat disertakan sebagai bagian dari catatan pengesahan Ya Ya Ya Ya
    Tingkat Patch Keamanan Perangkat Broker Kepercayaan dapat memvalidasi Tingkat Patch Keamanan OS Ya Ya Ya Ya
    Apakah perangkat memiliki OTA yang tertunda Broker kepercayaan dapat memeriksa apakah ada update OS perangkat yang tertunda yang tersedia Ya Ya Ya T/A
    Mainline Security Patch Level Broker Trust dapat membaca tingkat patch keamanan untuk rangkaian utama yang diinstal Ya Ya Ya Ya
    ID Khusus Pendaftaran Broker kepercayaan dapat mengakses ID perangkat unik yang khusus untuk perusahaan tersebut. ID ini bertahan dari pembuatan ulang profil kerja dan pabrik perangkat Atur Ulang Ya Ya Ya T/A
    Status Pengelolaan (dan aplikasi pengelolaan) Pialang kepercayaan dapat menggunakan ini untuk menentukan apakah perangkat dikelola Ya Ya Ya T/A
    Disk enkripsi Pialang kepercayaan dapat memeriksa apakah perangkat dienkripsi (jika dukungan Android 8 diperlukan) Ya Ya Ya Ya
    Versi OS Broker kepercayaan dapat memeriksa versi OS perangkat dan mengonfirmasi bahwa versi tersebut melebihi versi tertentu Ya Ya Ya Ya
    Mengakses Status Jaringan (Status jaringan dan status Wi-Fi) Broker Trust dapat mendapatkan informasi tentang status jaringan aktif (seluler dan Wi-Fi) Ya Ya Ya Ya
    Mengakses Status Wi-Fi (Android 11 dan yang lebih lama, Android 12 dan yang lebih tinggi mendukung pendekatan callback atau on demand) Broker Kepercayaan dapat mendapatkan informasi tentang jaringan Wi-Fi yang aktif Ya Ya Ya Ya
    Setelan Proxy Pialang kepercayaan dapat memperoleh informasi tentang HTTP default saat ini setelan proxy. Ya Ya Ya Ya
    Layar pemeriksaan kualitas kunci Pialang kepercayaan dapat memastikan perangkat memiliki kunci layar berkualitas tertentu dikonfigurasi sebelum memberikan akses Ya Ya Ya Ya
    Opsi developer diaktifkan Broker kepercayaan dapat mengidentifikasi perangkat sebagai memiliki platform serangan yang lebih luas saat opsi developer diaktifkan Ya Ya Ya Ya
    Adalah DNS melalui TLS diaktifkan Broker kepercayaan dapat memanfaatkan hal ini untuk memastikan bahwa mode DNS Pribadi diaktifkan Ya Ya Ya Ya
    SafetyNet Safe Browsing Broker kepercayaan dapat menentukan apakah URL tertentu telah diklasifikasikan oleh Google sebagai ancaman yang diketahui. Ya Ya Ya Ya
    Media Eksternal Dipasang Pialang kepercayaan dapat diberi tahu saat penyimpanan eksternal dipasang Ya Ya Ya Ya
    UsageStatsManager Broker Kepercayaan dapat mempelajari pola penggunaan setiap aplikasi Ya Ya Ya Ya1
    Logging keamanan Broker tepercaya dapat memanfaatkan data ini sebagai bagian dari konteks kontekstual mereka mesin untuk memastikan kepatuhan dan membuat sidik jari berbasis perilaku Ya Ya2 Ya2 T/A
    Pembuatan log jaringan Broker kepercayaan dapat memanfaatkan data ini sebagai bagian dari mesin kontekstual mereka untuk memastikan kepatuhan dan membuat sidik jari berbasis perilaku Ya Ya2 Ya2 T/A
    NetworkStatsManager Broker Trust dapat membuat kueri penggunaan jaringan aplikasi dalam interval waktu tertentu Ya Ya Ya2 Ya1
    Visibilitas Paket (Mencantumkan semua aplikasi di perangkat) Pialang kepercayaan dapat mengkueri aplikasi apa yang diinstal pada perangkat Ya Ya3 Ya3 Ya
    Baca Status Telepon Broker kepercayaan dapat mendapatkan info jaringan seluler, status panggilan yang sedang berlangsung, dan daftar PhoneAccount yang terdaftar di perangkat Ya Ya Ya Ya
    Kapan perangkat terakhir dimulai ulang Broker Kepercayaan dapat mendapatkan uptime sistem Ya Ya Ya Ya
    Dapatkan Akun Pialang kepercayaan dapat memanfaatkan ini untuk mengakses daftar rekening di Layanan Akun Ya Ya3 Ya3 Ya1
    Memantau perubahan signifikan pada level daya baterai Broker Kepercayaan dapat memantau perubahan level baterai yang signifikan Ya Ya Ya Ya
    Lokasi (Halus, Kasar, dll...) Pialang Trust dapat mengakses lokasi fisik perangkat Ya Ya Ya1 Ya1

    1 Dengan izin pengguna

    2 Hanya profil kerja

    3 Akses terbatas pada informasi profil kerja

    Trust broker dapat mengakses PackageInfo untuk modul com.google.android.modulemetadata lalu mengambil versionName:

    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
            }
    }
    

    Anda dapat mengurai string yang ditampilkan menjadi objek Date menggunakan class 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
    }
    

    Perlu diingat bahwa untuk Android 11 dan yang lebih baru, Anda harus menambahkan deklarasi kueri di file AndroidManifest.xml untuk memenuhi visibilitas paket Android:

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

    Pialang kepercayaan dapat menggunakan metode ini untuk memverifikasi apakah perangkat sedang dikelola dan mode pengelolaan mana yang aktif.

    Memeriksa pengelolaan perangkat

    Gunakan getActiveAdmins() untuk memeriksa apakah perangkat sedang dikelola. Jika metode ini menampilkan null, perangkat tidak dikelola.

    Memeriksa perangkat terkelola sepenuhnya

    Gunakan isDeviceOwnerApp() untuk memeriksa apakah perangkat dikelola sepenuhnya.

    Memeriksa profil kerja di perangkat milik perusahaan

    Gunakan isOrganizationOwnedDeviceWithManagedProfile() untuk memeriksa apakah perangkat menggunakan mode pengelolaan profil kerja untuk perangkat milik perusahaan

    Memeriksa profil kerja di perangkat milik pribadi

    Gunakan isProfileOwnerApp() untuk memeriksa apakah aplikasi berjalan di dalam pekerjaan dan memverifikasi bahwa isOrganizationOwnedDeviceWithManagedProfile() mengembalikan false.