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:
|
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
Mengambil versi Mainline
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>
Mengambil status pengelolaan
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
.