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 harus 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 | Trust broker dapat mengambil sinyal berikut:
|
Ya | Ya | Ya | Ya |
Presentasi Hardware yang Aman / Pengesahan Kunci | Perantara tepercaya dapat memverifikasi bahwa kredensial IKP mereka dibuat dan disimpan dalam hardware yang aman | Ya | Ya | Ya | Ya |
Pengesahan Properti Perangkat | Sebagai bagian dari pengesahan kunci, properti perangkat dapat disertakan sebagai bagian dari data pengesahan | Ya | Ya | Ya | Ya |
Tingkat Patch Keamanan Perangkat | Perantara tepercaya dapat memvalidasi OS Security Patch Level | Ya | Ya | Ya | Ya |
Apakah perangkat memiliki OTA yang tertunda | Perantara tepercaya dapat memeriksa apakah ada update OS perangkat yang tertunda yang tersedia | Ya | Ya | Ya | T/A |
Tingkat Patch Keamanan Utama | Perantara tepercaya dapat membaca level patch keamanan untuk kereta utama yang diinstal | Ya | Ya | Ya | Ya |
ID Khusus Pendaftaran | Perantara tepercaya dapat mengakses ID perangkat unik yang khusus untuk perusahaan tersebut. ID ini bertahan dari pembuatan ulang profil kerja dan reset ke setelan pabrik perangkat | Ya | Ya | Ya | T/A |
Status Pengelolaan (dan mengelola aplikasi) | Perantara tepercaya dapat menggunakan ini untuk menentukan apakah perangkat dikelola | Ya | Ya | Ya | T/A |
Enkripsi disk | Perantara tepercaya dapat memeriksa apakah perangkat dienkripsi (jika dukungan Android 8 diperlukan) | Ya | Ya | Ya | Ya |
Versi OS | Perantara tepercaya dapat memeriksa versi OS perangkat dan mengonfirmasi bahwa versi OS tersebut melebihi versi tertentu | Ya | Ya | Ya | Ya |
Status Jaringan (Status jaringan dan status Wi-Fi) | Perantara tepercaya dapat memperoleh 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 baru mendukung pendekatan callback atau on-demand) | Perantara tepercaya dapat memperoleh informasi tentang jaringan Wi-Fi yang aktif | Ya | Ya | Ya | Ya |
Setelan Proxy | Perantara tepercaya dapat memperoleh informasi tentang setelan proxy HTTP default saat ini. | Ya | Ya | Ya | Ya |
Pemeriksaan kualitas kunci layar | Perantara tepercaya dapat memastikan perangkat memiliki kunci layar kualitas tertentu yang telah dikonfigurasi sebelum memberikan akses | Ya | Ya | Ya | Ya |
Opsi developer diaktifkan | Perantara tepercaya dapat mengidentifikasi perangkat memiliki permukaan serangan yang lebih luas jika opsi developer diaktifkan | Ya | Ya | Ya | Ya |
Apakah DNS melalui TLS diaktifkan | Perantara tepercaya dapat memanfaatkan ini untuk memastikan bahwa mode DNS Pribadi diaktifkan | Ya | Ya | Ya | Ya |
SafeNet Safe Browsing | Perantara tepercaya dapat menentukan apakah URL tertentu telah diklasifikasikan oleh Google sebagai ancaman yang diketahui atau tidak. | Ya | Ya | Ya | Ya |
Dipasang Media Eksternal | Perantara tepercaya dapat diberi tahu saat penyimpanan eksternal dipasang | Ya | Ya | Ya | Ya |
UsageStatsManager | Perantara tepercaya dapat mempelajari pola penggunaan setiap aplikasi | Ya | Ya | Ya | Ya1 |
Logging keamanan | Perantara tepercaya dapat memanfaatkan data ini sebagai bagian dari mesin kontekstual mereka untuk memastikan kepatuhan dan membuat sidik jari berbasis perilaku | Ya | Ya2 | Ya2 | T/A |
Logging jaringan | Perantara tepercaya 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 | Perantara tepercaya dapat mengkueri penggunaan jaringan aplikasi dalam interval waktu tertentu | Ya | Ya | Ya2 | Ya1 |
Visibilitas Paket (Mencantumkan semua aplikasi di perangkat) | Perantara tepercaya dapat mengkueri aplikasi apa yang diinstal di perangkat | Ya | Ya3 | Ya3 | Ya |
Membaca Status Telepon | Perantara tepercaya bisa 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 | Perantara Kepercayaan bisa mendapatkan waktu beroperasi sistem | Ya | Ya | Ya | Ya |
Dapatkan Akun | Perantara tepercaya dapat memanfaatkan ini untuk mengakses daftar akun di Layanan Akun | Ya | Ya3 | Ya3 | Ya1 |
Memantau perubahan level baterai yang signifikan | Perantara tepercaya dapat memantau perubahan signifikan pada level baterai | Ya | Ya | Ya | Ya |
Lokasi (Halus, Kasar, dll...) | Perantara tepercaya dapat mengakses lokasi fisik perangkat | Ya | Ya | Ya1 | Ya1 |
1 Dengan izin pengguna
2 Khusus profil kerja
3 Akses terbatas untuk informasi profil kerja
Mengambil versi Mainline
Trust broker 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
}
Perlu diingat bahwa untuk Android 11 dan yang lebih baru, Anda harus menambahkan deklarasi kueri dalam
file AndroidManifest.xml
untuk memenuhi visibilitas paket Android:
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
Mengambil status pengelolaan
Perantara tepercaya dapat menggunakan metode ini untuk memverifikasi apakah perangkat dalam mode pengelolaan dan mode pengelolaan yang aktif.
Memeriksa pengelolaan perangkat
Gunakan getActiveAdmins() untuk memeriksa apakah perangkat dalam pengelolaan. Jika metode
ini menampilkan null
, perangkat tidak akan dikelola.
Periksa perangkat terkelola sepenuhnya
Gunakan isDeviceOwnerApp()
untuk memeriksa apakah perangkat terkelola 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 perangkat memiliki profil kerja dan
memverifikasi bahwa isOrganizationOwnedDeviceWithManagedProfile()
menampilkan false
.