Sinyal postur keamanan

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

Fitur Deskripsi Perangkat Terkelola Sepenuhnya Profil kerja di perangkat milik perusahaan Profil kerja di perangkat milik pribadi (BYOD) Perangkat tidak terkelola
Play 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
    Hardware Aman Hadir / Pengesahan Kunci Broker kepercayaan dapat memverifikasi bahwa kredensial PKI mereka dibuat dan disimpan di hardware yang aman Ya Ya Ya Ya
    Pengesahan Properti Perangkat 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 kepercayaan dapat membaca tingkat patch keamanan untuk rangkaian utama yang diinstal Ya Ya Ya Ya
    ID Khusus Pendaftaran Broker kepercayaan dapat mengakses ID perangkat unik khusus untuk perusahaan tersebut. ID ini tetap ada setelah pembuatan ulang profil kerja dan reset perangkat ke setelan pabrik Ya Ya Ya T/A
    Status Pengelolaan (dan aplikasi pengelolaan) Broker kepercayaan dapat menggunakannya untuk menentukan apakah perangkat dikelola Ya Ya Ya T/A
    Enkripsi disk Broker kepercayaan dapat memeriksa apakah perangkat dienkripsi (jika dukungan Android 8 diperlukan) Ya Ya Ya Ya
    Versi OS Broker Trust 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 Broker kepercayaan dapat mendapatkan informasi tentang setelan proxy HTTP default saat ini. Ya Ya Ya Ya
    Pemeriksaan kualitas kunci layar Broker kepercayaan dapat memastikan perangkat memiliki kunci layar berkualitas tertentu yang 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
    Apakah DNS over 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 Broker 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 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
    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) Broker Kepercayaan dapat membuat kueri aplikasi yang diinstal di 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 kali dimulai ulang Broker Kepercayaan dapat mendapatkan uptime sistem Ya Ya Ya Ya
    Dapatkan Akun Perantara kepercayaan dapat memanfaatkannya untuk mengakses daftar akun di Layanan Akun Ya Ya3 Ya3 Ya1
    Memantau perubahan signifikan pada level daya baterai Broker Kepercayaan dapat memantau perubahan signifikan pada level daya baterai Ya Ya Ya Ya
    Lokasi (Halus, Kasar, dll.) Broker Kepercayaan dapat mengakses lokasi fisik perangkat Ya Ya Ya1 Ya1

    1 Dengan izin pengguna

    2 Khusus profil kerja

    3 Akses terbatas pada informasi profil kerja

    Broker Trust dapat mengakses PackageInfo untuk modul com.google.android.modulemetadata dan mengambil versionName dari sana:

    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
    }
    

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

    Broker kepercayaan dapat menggunakan metode ini untuk memverifikasi apakah perangkat berada dalam mode pengelolaan 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 profil kerja dan memverifikasi bahwa isOrganizationOwnedDeviceWithManagedProfile() menampilkan false.