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 | Kişilere ait cihazlarda iş profili (KCG) | Yönetilmeyen cihazlar |
---|---|---|---|---|---|
Play Integrity API | Güven aracısı aşağıdaki sinyalleri alabilir:
|
Evet | Evet | Evet | Evet |
Güvenli donanım varlığı / 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ı | Anahtar onayı kapsamında, cihaz özellikleri de onay kaydının bir parçası olarak dahil edilebilir. | 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 olan bir cihaz işletim sistemi güncellemesi olup olmadığını kontrol edebilir | Evet | Evet | Evet | Yok |
Ana Hat 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 | Güven aracısı, ilgili kuruluşa özgü benzersiz bir cihaz kimliğine erişebilir. Bu kimlik, iş profilinin yeniden oluşturulması ve cihazın fabrika ayarlarına sıfırlanmasından etkilenmez. | Evet | Evet | Evet | Yok |
Yönetim Durumu (ve yönetim uygulaması) | 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 edebilir ve belirli bir sürümü aştığını doğrulayabilir | Evet | Evet | Evet | Evet |
Ağ durumuna erişme (Ağ durumu ve kablosuz ağ durumu) | Güvenilir broker, etkin ağ durumu (hücresel ve kablosuz) hakkında bilgi edinebilir | Evet | Evet | Evet | Evet |
Kablosuz bağlantı durumuna erişme (Android 11 ve önceki sürümler, Android 12 ve sonraki sürümler hem geri çağırma hem de istem üzerine yaklaşımı destekler) | Güven aracısı, etkin kablosuz ağ hakkında bilgi edinebilir | Evet | Evet | Evet | Evet |
Proxy Ayarları | Güven aracısı, mevcut varsayılan HTTP proxy ayarlarıyla ilgili bilgi edinebilir. | Evet | Evet | Evet | Evet |
Ekran kilidi kalite kontrolü | Güven aracısı, erişim vermeden önce cihazda belirli kalitede bir ekran kilidi yapılandırılmasını sağlayabilir. | Evet | Evet | Evet | Evet |
Geliştirici seçenekleri 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 belirleyebilir | Evet | Evet | Evet | Evet |
TLS üzerinden DNS etkin mi? | 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 Google tarafından bilinen bir tehdit olarak sınıflandırılıp sınıflandırılmadığını belirleyebilir. | Evet | Evet | Evet | Evet |
Harici Medya Takılı | Harici depolama birimi bağlandığında 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ı, uygunluğu sağlamak ve davranışa dayalı bir parmak izi oluşturmak için bağlama dayalı motorunun bir parçası olarak bu verilerden yararlanabilir. | Evet | Evet2 | Evet2 | Yok |
Ağ günlüğü | Güven aracısı, uygunluğu sağlamak ve davranışa dayalı bir parmak izi oluşturmak için bağlama dayalı motorunun bir parçası olarak bu verilerden yararlanabilir. | Evet | Evet2 | Evet2 | Yok |
NetworkStatsManager | Güven aracısı, uygulamanın belirli bir zaman aralığındaki ağ kullanımını sorgulayabilir | Evet | Evet | Evet2 | Evet1 |
Paket Görünümü (Cihazdaki tüm uygulamaları listeleme) | Güven aracısı, cihaza hangi uygulamaların yüklendiğini sorgulayabilir | Evet | Evet3 | Evet3 | Evet |
Telefon durumunu okuma | Güven aracısı, mobil ağ bilgilerini, devam eden aramaların durumunu ve cihazda kayıtlı PhoneAccount'ların listesini alabilir | Evet | Evet | Evet | Evet |
Cihazın en son ne zaman yeniden başlatıldığı | Güven aracısı, sistem çalışma süresini alabilir | Evet | Evet | Evet | Evet |
Hesap alma | 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
Ana hat sürümünü alma
Güven aracısı, com.google.android.modulemetadata
modülünün PackageInfo bölümüne 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önetim modunda olup olmadığını ve hangi yönetim modunun etkin olduğunu doğrulamak için bu yöntemleri kullanabilir.
Cihaz yönetimini kontrol etme
Bir cihazın yönetilip yönetilmediğini kontrol etmek için getActiveAdmins() işlevini kullanın. Bu yöntem null
döndürürse cihaz yönetilmiyordur.
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 cihazlarda iş profili olup olmadığını 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
Kişiye ait cihazlarda iş profili olup olmadığını kontrol etme
Bir uygulamanın iş profilinde çalışıp çalışmadığını kontrol etmek için isProfileOwnerApp()
'u kullanın ve isOrganizationOwnedDeviceWithManagedProfile()
değerinin false
döndürdüğünü doğrulayın.