Android bietet eine Vielzahl von Gerätesignalen, mit denen Administratoren den Sicherheitsstatus eines Geräts bestimmen können. In einem Zero-Trust-Sicherheitsmodell werden diese Signale verwendet, um zu beurteilen, ob ein Gerät auf Unternehmensinformationen zugreifen darf.
Funktion | Beschreibung | Vollständig verwaltete Geräte | Arbeitsprofile auf unternehmenseigenen Geräten | Arbeitsprofile auf privaten Geräten (BYOD) | Nicht verwaltete Geräte |
---|---|---|---|---|---|
Play Integrity API | Ein Trustbroker kann die folgenden Signale abrufen:
|
Ja | Ja | Ja | Ja |
Vorhandensein sicherer Hardware / Schlüsselattestierung | Ein Trust Broker kann prüfen, ob seine PKI-Anmeldedaten generiert und auf sicherer Hardware gespeichert wurden. | Ja | Ja | Ja | Ja |
Attestierung der Geräteeigenschaften | Im Rahmen der Schlüsselattestierung können Geräteeigenschaften in den Attestierungsdatensatz aufgenommen werden. | Ja | Ja | Ja | Ja |
Stand der Sicherheits-Patches für das Gerät | Ein Trust Broker kann den Stand der Sicherheits-Patches des Betriebssystems prüfen. | Ja | Ja | Ja | Ja |
Gibt es ein ausstehendes OTA-Update für das Gerät? | Ein Trust Broker kann prüfen, ob ein ausstehendes Betriebssystemupdate für das Gerät verfügbar ist. | Ja | Ja | Ja | – |
Stand der Sicherheitsupdates für Mainline | Ein Trustbroker kann den Stand der Sicherheits-Patches für den installierten Mainline-Zug lesen. | Ja | Ja | Ja | Ja |
Registrierungsspezifische ID | Ein Trust Broker kann auf eine eindeutige Geräte-ID zugreifen, die für dieses Unternehmen spezifisch ist. Diese ID bleibt erhalten, wenn das Arbeitsprofil neu erstellt und das Gerät auf die Werkseinstellungen zurückgesetzt wird. | Ja | Ja | Ja | – |
Verwaltungsstatus (und App zur Verwaltung) | Ein Trust Broker kann damit feststellen, ob ein Gerät verwaltet wird. | Ja | Ja | Ja | – |
Datenträgerverschlüsselung | Ein Trust Broker kann prüfen, ob das Gerät verschlüsselt ist (wenn Android 8-Unterstützung erforderlich ist). | Ja | Ja | Ja | Ja |
Betriebssystemversion | Ein Trust Broker kann die Betriebssystemversion des Geräts prüfen und bestätigen, dass sie eine bestimmte Version überschreitet. | Ja | Ja | Ja | Ja |
Netzwerkstatus (Netzwerkstatus und WLAN-Status) | Ein Trust Broker kann Informationen zum aktiven Netzwerkstatus (Mobilfunk und WLAN) abrufen. | Ja | Ja | Ja | Ja |
Zugriff auf den WLAN-Status (Android 11 und niedriger; Android 12 und höher unterstützen sowohl einen Callback als auch einen On-Demand-Ansatz) | Ein Trustbroker kann Informationen zum aktiven WLAN abrufen. | Ja | Ja | Ja | Ja |
Proxy-Einstellungen | Ein Trustbroker kann Informationen zu den aktuellen Standard-HTTP-Proxy-Einstellungen abrufen. | Ja | Ja | Ja | Ja |
Qualitätsprüfung der Displaysperre | Ein Trust Broker kann prüfen, ob auf einem Gerät eine Displaysperre mit einer bestimmten Qualität konfiguriert ist, bevor er Zugriff gewährt. | Ja | Ja | Ja | Ja |
Entwickleroptionen aktiviert | Ein Trust Broker kann ein Gerät als Gerät mit einer größeren Angriffsfläche identifizieren, wenn die Entwickleroptionen aktiviert sind. | Ja | Ja | Ja | Ja |
Ist DNS over TLS aktiviert? | Ein Trustbroker kann dies nutzen, um sicherzustellen, dass der Modus „Privates DNS“ aktiviert ist. | Ja | Ja | Ja | Ja |
SafetyNet Safe Browsing | Ein Trustbroker kann feststellen, ob eine bestimmte URL von Google als bekannte Bedrohung eingestuft wurde. | Ja | Ja | Ja | Ja |
Externe Medien bereitgestellt | Ein Trust Broker kann benachrichtigt werden, wenn ein externer Speicher bereitgestellt wird. | Ja | Ja | Ja | Ja |
UsageStatsManager | Ein Trust Broker kann Nutzungsmuster einzelner Apps untersuchen | Ja | Ja | Ja | Ja1 |
Sicherheitsprotokollierung | Ein Trust Broker kann diese Daten als Teil seiner Kontext-Engine nutzen, um die Compliance zu gewährleisten und einen verhaltensbasierten Fingerabdruck zu erstellen. | Ja | Ja2 | Ja2 | – |
Netzwerkprotokollierung | Ein Trust Broker kann diese Daten als Teil seiner Kontext-Engine nutzen, um die Compliance zu gewährleisten und einen verhaltensbasierten Fingerabdruck zu erstellen. | Ja | Ja2 | Ja2 | – |
NetworkStatsManager | Ein Trust Broker kann die Netzwerknutzung der App innerhalb eines bestimmten Zeitraums abfragen. | Ja | Ja | Ja2 | Ja1 |
Paketsichtbarkeit (Liste aller Apps auf dem Gerät) | Ein Trustbroker kann abfragen, welche Apps auf dem Gerät installiert sind. | Ja | Ja3 | Ja3 | Ja |
Telefonstatus lesen | Ein Trustbroker kann Informationen zum Mobilfunknetz, den Status aller laufenden Anrufe und eine Liste der auf dem Gerät registrierten PhoneAccount abrufen. | Ja | Ja | Ja | Ja |
Wann das Gerät zuletzt neu gestartet wurde | Ein Trust Broker kann die Systemverfügbarkeit abrufen | Ja | Ja | Ja | Ja |
Konten abrufen | Ein Trust Broker kann dies nutzen, um auf die Liste der Konten im Kontodienst zuzugreifen. | Ja | Ja3 | Ja3 | Ja1 |
Erhebliche Änderungen des Akkustands im Blick behalten | Ein Trust Broker kann erhebliche Änderungen des Akkustands im Blick behalten | Ja | Ja | Ja | Ja |
Standort (genau, ungefähr usw.) | Ein Trust Broker kann auf den physischen Standort des Geräts zugreifen | Ja | Ja | Ja1 | Ja1 |
1 Mit Nutzereinwilligung
2 Nur Arbeitsprofil
3 Zugriff auf Informationen im Arbeitsprofil beschränkt
Mainline-Version abrufen
Ein Trust Broker kann auf die PackageInfo für das com.google.android.modulemetadata
-Modul zugreifen und daraus die versionName
abrufen:
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
}
}
Sie können den zurückgegebenen String mit der Klasse SimpleDateFormat
in ein Date
-Objekt parsen:
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
}
Denken Sie daran, dass Sie für Android 11 und höher eine Abfragedeklaration in Ihrer AndroidManifest.xml
-Datei hinzufügen müssen, um die Paketsichtbarkeit von Android zu erfüllen:
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
Verwaltungsstatus abrufen
Ein Trust Broker kann mit diesen Methoden prüfen, ob sich ein Gerät im Verwaltungsmodus befindet und welcher Verwaltungsmodus aktiv ist.
Geräteverwaltung prüfen
Mit getActiveAdmins() können Sie prüfen, ob ein Gerät verwaltet wird. Wenn diese Methode null
zurückgibt, ist das Gerät nicht verwaltet.
Prüfen, ob es sich um ein vollständig verwaltetes Gerät handelt
Verwenden Sie isDeviceOwnerApp()
, um zu prüfen, ob das Gerät vollständig verwaltet wird.
Auf einem unternehmenseigenen Gerät nach einem Arbeitsprofil suchen
Mit isOrganizationOwnedDeviceWithManagedProfile()
prüfen, ob auf einem Gerät ein Verwaltungsmodus für Arbeitsprofile für unternehmenseigene Geräte verwendet wird
Arbeitsprofil auf einem privaten Gerät prüfen
Prüfen Sie mit isProfileOwnerApp()
, ob eine App in einem Arbeitsprofil ausgeführt wird, und prüfen Sie, ob isOrganizationOwnedDeviceWithManagedProfile()
false
zurückgibt.