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 ilkeli güvenlik modelinde bu sinyaller, bir cihazın şirket bilgilerine erişmesine izin verilip verilmeyeceğini değerlendirmek için kullanılır.
Öne Çıkarın | Açıklama | Tümüyle Yönetilen cihazlar | Şirkete ait cihazlarda iş profili | Şahıslara 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 Mevcut Olma / Anahtar Onayı | Güven aracısı, PKI kimlik bilgilerinin güvenli donanımlarda oluşturulduğunu ve depolandığını doğrulayabilir | Evet | Evet | Evet | Evet |
Cihaz Özellikleri Onayı | Anahtar onayı kapsamında, cihaz özellikleri onay kaydının parçası olarak eklenebilir. | Evet | Evet | Evet | Evet |
Cihaz Güvenlik Yaması Düzeyi | Bir Güven aracısı, OS Güvenlik Yaması Düzeyi'ni doğrulayabilir | Evet | Evet | Evet | Evet |
Cihazda beklemede olan OTA var mı | Güven aracısı, beklemede olan bir cihaz işletim sistemi güncellemesi olup olmadığını kontrol edebilir | Evet | Evet | Evet | Yok |
Satır İçi Güvenlik Yaması Düzeyi | Bir Güven aracısı, yüklenen satır içi eğitimin güvenlik yaması düzeyini okuyabilir | Evet | Evet | Evet | Evet |
Kayda Özel Kimlik | Güven aracısı, söz konusu kuruluşa özgü benzersiz bir cihaz kimliğine erişebilir. Bu kimlik, iş profilinin yeniden oluşturulmasından ve cihazın fabrika ayarlarına sıfırlanmasından sonra da geçerliliğini korur | Evet | Evet | Evet | Yok |
Yönetim Durumu (ve uygulama yönetimi) | 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 belirli bir sürümü aştığını onaylayabilir | Evet | Evet | Evet | Evet |
Erişim Ağ Durumu (Ağ durumu ve Kablosuz durumu) | Güven aracısı, etkin ağ durumu (hücresel ve kablosuz) hakkında bilgi alabilir. | Evet | Evet | Evet | Evet |
Kablosuz Durumuna erişme (Android 11 ve önceki sürümler, Android 12 ve sonraki sürümler hem geri arama hem de isteğe bağlı yaklaşımı destekler) | Güven aracısı, etkin kablosuz ağ hakkında bilgi alabilir | Evet | Evet | Evet | Evet |
Proxy Ayarları | Güven aracısı, mevcut varsayılan HTTP proxy ayarları hakkında bilgi alabilir. | Evet | Evet | Evet | Evet |
Ekran kilidi kalite kontrolü | Güven aracısı, bir cihazda erişim izni vermeden önce belirli bir kalitede ekran kilidinin yapılandırılmış olduğundan emin olabilir | Evet | Evet | Evet | Evet |
Geliştirici seçenekleri etkin | Güven aracısı, geliştirici seçenekleri etkinleştirildiğinde bir cihazın daha geniş bir saldırı yüzeyine sahip olduğunu tanımlayabilir | Evet | Evet | Evet | Evet |
TLS üzerinden DNS etkin | Güven aracısı, Gizli DNS modunun etkinleştirildiğinden emin olmak için bundan yararlanabilir | 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 eklendiğinde Güven aracısı bilgilendirilebilir | Evet | Evet | Evet | Evet |
UsageStatsManager | Güven aracısı, tek tek uygulamaların kullanım kalıplarını inceleyebilir | Evet | Evet | Evet | Evet1 |
Güvenlik günlüğü | Güven aracısı, uygunluk sağlamak ve davranışa dayalı parmak izi oluşturmak için bağlamsal motorunun bir parçası olarak bu verilerden yararlanabilir | Evet | Evet2 | Evet2 | Yok |
Ağ günlük kaydı | Güven aracısı, uygunluk sağlamak ve davranışa dayalı parmak izi oluşturmak için bağlamsal motorunun bir parçası olarak bu verilerden yararlanabilir | Evet | Evet2 | Evet2 | Yok |
NetworkStatsManager | Güven aracısı, uygulamanın belirli bir zaman aralığı içindeki ağ kullanımını sorgulayabilir | Evet | Evet | Evet2 | Evet1 |
Paket Görünürlüğü (Cihazdaki tüm uygulamaları listeleyin) | Güven aracısı, cihazda hangi uygulamaların yüklü olduğunu sorgulayabilir | Evet | Evet3 | Evet3 | Evet |
Telefon Durumunu Okuma | Güven aracısı mobil ağ bilgilerini, devam eden çağrıların durumunu ve cihazda kayıtlı PhoneAccount listesini alabilir | 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 araçtan yararlanabilir. | Evet | Evet3 | Evet3 | Evet1 |
Pil seviyesindeki önemli değişiklikleri izleme | Güven aracısı, pil düzeyindeki önemli değişiklikleri izleyebilir | Evet | Evet | Evet | Evet |
Konum (Hassas, Genel vb.) | Güven aracısı, cihazın fiziksel konumuna erişebilir | Evet | Evet | Evet1 | Evet1 |
1 Kullanıcı izni ile
2 Yalnızca iş profili
3 Erişim iş profili bilgileriyle sınırlıdır
Mainline sürümü alma
Güven aracısı, com.google.android.modulemetadata
modülüne ait PackageInfo öğesine erişebilir ve şu bilgileri buradan alabilir: 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
}
}
Döndürülen dizeyi, SimpleDateFormat
sınıfını kullanarak bir Date
nesnesi olarak 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 bildirimi 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 edin
Bir cihazın yönetim altında olup olmadığını kontrol etmek için getActiveAdmins() yöntemini kullanın. Bu yöntem null
değerini döndürürse cihaz yönetilmiyordur.
Tümüyle yönetilen cihaz olup olmadığını kontrol edin
Cihazın tümüyle yönetilip yönetilmediğini kontrol etmek için isDeviceOwnerApp()
adresini kullanın.
Şirkete ait bir cihazda iş profilini kontrol etme
Bir cihazın, şirkete ait cihazlar için iş profili yönetimi modu kullanıp kullanmadığını kontrol etmek üzere isOrganizationOwnedDeviceWithManagedProfile()
aracını kullanın
Şahıslara ait cihazlarda iş profili olup olmadığını kontrol etme
Bir cihazın iş profili olup olmadığını kontrol etmek ve isOrganizationOwnedDeviceWithManagedProfile()
işlevinin false
değerini döndürdüğünü doğrulamak için isProfileOwnerApp() yöntemini kullanın.