Android, yöneticilerin bir cihazın güvenlik durumunu belirlemek için kullanabileceği çeşitli cihaz sinyalleri sağlar. Sıfır Güven güvenlik modelinde bu sinyaller, bir cihazın şirket bilgilerine erişmesine izin verilip verilmeyeceğini değerlendirmek için kullanılır.
Özellik | Açıklama | Tümüyle Yönetilen cihazlar | Şirkete ait cihazlarda iş profili | Şahıslara ait cihazlarda iş profili (KCG) | Yönetilmeyen cihazlar |
---|---|---|---|---|---|
Oynat Integrity API | Güven aracısı aşağıdaki sinyalleri alabilir:
|
Evet | Evet | Evet | Evet |
Güvenli Donanım mevcut / anahtar onayı | Güven aracısı, PKI kimlik bilgilerinin güvenli donanımda oluşturulup depolandığını doğrulayabilir | Evet | Evet | Evet | Evet |
Cihaz Özellikleri Onayı | Cihaz özellikleri, anahtar onayının bir parçası olarak onay kaydının | Evet | Evet | Evet | Evet |
Cihaz Güvenliği | Güven aracısı, OS güvenlik yaması düzeyini doğrulayabilir | Evet | Evet | Evet | Evet |
Cihazda bekleyen OTA güncellemesi var mı? | Güven aracısı, beklemede bir cihaz işletim sistemi güncellemesi olup olmadığını kontrol edebilir mevcut | Evet | Evet | Evet | Yok |
Mainline Güvenlik Yaması Düzeyi | Güven aracısı, yüklü ana hat treninin güvenlik yaması düzeyini okuyabilir | Evet | Evet | Evet | Evet |
Kayıt Belirli bir kimlik | Bir Güven aracısı, kendisine özgü benzersiz bir cihaz kimliğine erişebilir kurumsal Bu kimlik, iş profili yeniden oluşturma ve cihaz fabrikasında hayatta kalır sıfırlandı | Evet | Evet | Evet | Yok |
Yönetim Durumu (ve yöneten uygulama) | Güven aracısı, bir cihazın yönetilip yönetilmediğini belirlemek için bunu kullanabilir. | Evet | Evet | Evet | Yok |
Disk şifreleme | Güven aracısı, cihazın şifrelenmiş olup olmadığını kontrol edebilir (Android 8 desteği gerekiyorsa) | Evet | Evet | Evet | Evet |
İşletim Sistemi Sürümü | Güven aracısı cihazın işletim sistemi sürümünü kontrol edip şu sınırın üzerinde olduğunu onaylayabilir: belirli bir sürüm | Evet | Evet | Evet | Evet |
Ağ durumuna erişme (Ağ durumu ve kablosuz ağ durumu) | Güven aracısı etkin ağ durumu hakkında bilgi alabilir (hücresel ve kablosuz) | Evet | Evet | Evet | Evet |
Kablosuz Durumuna Erişme (Android 11 ve önceki sürümler, Android 12 ve sonraki sürümler hem geri çağırma hem de isteğe bağlı yaklaşımları destekler.) | Güven aracısı, etkin kablosuz ağ hakkında bilgi edinebilir | Evet | Evet | Evet | Evet |
Proxy Ayarları | Güven aracısı, geçerli varsayılan HTTP proxy ayarlarıyla ilgili bilgi edinebilir. | Evet | Evet | Evet | Evet |
Ekran kalite kontrolünü kilitleme | Güven aracısı, erişim vermeden önce cihazda belirli kalitede bir ekran kilidinin yapılandırıldığından emin olabilir. | Evet | Evet | Evet | Evet |
Geliştirici seçenekler etkinleştirildi | Geliştirici seçenekleri etkinleştirildiğinde güven aracısı, bir cihazın daha geniş bir saldırı yüzeyine sahip olduğunu tanımlayabilir | Evet | Evet | Evet | Evet |
Eşittir TLS üzerinden DNS etkin | Güven aracısı, Gizli DNS modunun etkinleştirildiğinden emin olmak için bu özelliği kullanabilir | Evet | Evet | Evet | Evet |
SafetyNet Güvenli Tarama | Güven aracısı, belirli bir URL’nin ilk kez tehdit olarak sınıflandırır. | Evet | Evet | Evet | Evet |
Harici Medya Montajlı | Harici depolama birimi eklendiğinde Güven aracısı bilgilendirilebilir | Evet | Evet | Evet | Evet |
UsageStatsManager | Güven aracısı, uygulamaların kullanım kalıplarını inceleyebilir | Evet | Evet | Evet | Evet1 |
Güvenlik günlüğü | Güven aracısı motor özelliklerini kullanarak uyumluluğu sağlamak ve davranışa dayalı bir parmak izi | Evet | Evet2 | Evet2 | Yok |
Ağ günlük kaydı | Güven aracısı motor özelliklerini kullanarak uyumluluğu sağlamak ve davranışa dayalı bir parmak izi | Evet | Evet2 | Evet2 | Yok |
NetworkStatsManager | Güven aracısı, uygulamanın belirli bir zaman içindeki ağ kullanımını sorgulayabilir aralık | Evet | Evet | Evet2 | Evet1 |
Paket Görünürlük (Cihazdaki tüm uygulamaları listeleme) | Güven aracısı cihazda hangi uygulamaların yüklü olduğunu sorgulayabilir | Evet | Evet3 | Evet3 | Evet |
Telefon durumunu okuma | Tröst aracısı, mobil ağ bilgilerini, devam eden herhangi bir işlemin durumunu ve aramaları ve PhoneAccount listesi cihazda kayıtlı | Evet | Evet | Evet | Evet |
Cihazın en son yeniden başlatılma zamanı | Güven aracısı sistemin çalışma süresini alabilir. | Evet | Evet | Evet | Evet |
Hesapları Al | Güven aracısı, Hesap Hizmeti'ndeki hesap listesine erişmek için bu izinden yararlanabilir. | Evet | Evet3 | Evet3 | Evet1 |
Pil seviyesindeki önemli değişiklikleri izleme | Güven aracısı pil seviyesindeki önemli değişiklikleri izleyebilir | Evet | Evet | Evet | Evet |
Konum (Hassas, Kaba vb.) | Güven aracısı, cihazın fiziksel konumuna erişebilir | Evet | Evet | Evet1 | Evet1 |
1 Kullanıcı izniyle
2 Yalnızca iş profili
3 Erişim, iş profili bilgileriyle sınırlıdır
Mainline sürümünü alma
Güven aracısı, com.google.android.modulemetadata
modülünün PackageInfo dosyasına erişebilir ve buradan versionName
aşağıdaki bilgileri alabilir:
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
}
}
SimpleDateFormat
sınıfını kullanarak döndürülen dizeyi bir Date
nesnesine ayrıştırabilirsiniz:
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
}
Android 11 ve sonraki sürümlerde Android'in paket görünürlüğünü karşılamak için AndroidManifest.xml
dosyanıza bir sorgu beyanı eklemeniz gerektiğini unutmayın:
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
Yönetim durumunu alma
Güven aracısı, bir cihazın yönetimde olup olmadığını doğrulamak için bu yöntemleri kullanabilir hangi yönetim modunun etkin olduğunu görebilirsiniz.
Cihaz yönetimini kontrol etme
Bir cihazın yönetimde olup olmadığını kontrol etmek için getActiveAdmins() işlevini kullanın. Bu
yöntemi, null
değerini döndürürse cihaz yönetilmiyor.
Tümüyle yönetilen cihaz olup olmadığını kontrol etme
Cihazın tümüyle yönetilip yönetilmediğini kontrol etmek için isDeviceOwnerApp()
'i kullanın.
Şirkete ait bir cihazda iş profilini kontrol etme
Bir cihazın şirkete ait cihazlar için iş profili yönetim modu kullanıp kullanmadığını kontrol etmek üzere isOrganizationOwnedDeviceWithManagedProfile()
simgesini kullanın
Şahıslara ait bir cihazda iş profili olup olmadığını kontrol etme
Bir uygulamanın iş yerinde çalışıp çalışmadığını kontrol etmek için isProfileOwnerApp()
aracını kullanın
profilinizi oluşturun ve isOrganizationOwnedDeviceWithManagedProfile()
adlı kullanıcının geri döndüğünü doğrulayın
false
.