Güvenlik durumu sinyalleri

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:
  • Cihaz bütünlüğü
  • Uygulama bütünlüğü
  • Play lisansı ayrıntıları
  • Yeni Play Protect kararı da dahil olmak üzere ortam ayrıntıları
  • 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

    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>

    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.