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