Die Umgebung schützen

Google bietet eine Reihe von APIs und Diensten, mit denen Sie erkennen können, ob Ihre App in einer sicheren und vertrauenswürdigen Umgebung ausgeführt wird. Das Herzstück ist die Play Integrity API, mit der Sie prüfen können, ob Interaktionen echt sind, indem Sie potenziell riskante und betrügerische Interaktionen erkennen. Zusätzlich zur App- und Geräteintegrität bietet die Play Integrity API jetzt Informationen zu Zugriffs- und Barrierefreiheitsrisiken, Google Play Protect und letzten Geräteaktivitäten. Um Ihre Strategie zum Schutz vor Betrug weiter zu stärken, bietet die Android-Plattform APIs für bestimmte Szenarien, die für Ihre App relevant sein könnten.

Play Integrity API

Funktionen der Play Integrity API

Mit der Play Integrity API können Sie den Sicherheitsstatus des Geräts ermitteln, auf dem Ihre App ausgeführt wird. So können Sie sicher sein, dass die richtige Person auf vertrauliche Informationen zugreift.

Sie können damit prüfen, ob Interaktionen und Serveranfragen von Ihrem echten App-Binärprogramm in einer vertrauenswürdigen Umgebung stammen:

  • Echtes App-Binärprogramm: Prüfen Sie, ob Sie mit Ihrem unveränderten Binärprogramm in der Form interagieren, die Google Play bekannt ist.
  • Echte Play-Installation: Prüfen Sie, ob das aktuelle Nutzerkonto lizenziert ist, was bedeutet, dass der Nutzer Ihre App oder Ihr Spiel bei Google Play installiert oder gekauft hat.
  • Echtes Android-Gerät: Prüfen Sie, ob Ihre App auf einem echten Android-Gerät mit Google Play-Diensten ausgeführt wird.
  • Frei von bekannter Malware: Prüfen Sie, ob Google Play Protect aktiviert ist und ob auf dem Gerät installierte Apps gefunden wurden, die als riskant oder gefährlich eingestuft werden.
  • Geringes Risiko von Zugriffen durch andere Apps: Es wird geprüft, ob andere Apps ausgeführt werden, die möglicherweise den Bildschirm aufnehmen oder das Gerät und Eingaben in Ihre App steuern.

So lässt sich Betrug vermeiden

Wenn ein Nutzer eine wichtige Aktion in Ihrer App ausführt, können Sie die Play Integrity API aufrufen. Wenn nicht, kann der Backend-Server Ihrer App entscheiden, wie er sich gegen Angriffe und Betrug schützen soll. Sie könnten beispielsweise eine zusätzliche Nutzerbestätigung verlangen oder den Zugriff auf sensible Funktionen verweigern.

Entscheidungsablauf der Play Integrity API

Risiko des App-Zugriffs

Das Signal Risiko von App-Zugriffen wurde eingeführt, damit Sie besser beurteilen können, ob andere Apps auf einem Gerät den Bildschirm ansehen und aufzeichnen können, wenn Ihre App ausgeführt wird, oder ob sie mithilfe von Bedienungshilfe-Berechtigungen auf Ihre App zugreifen. Bestätigte Barrierefreiheits-Apps werden automatisch von diesen Entscheidungen ausgeschlossen. Das App-Zugriffsrisiko hilft Entwicklern, ihre Apps zu schützen und gleichzeitig die Privatsphäre der Nutzer zu wahren, da die anfragende App die Identität der installierten Apps nicht erhält und das Ergebnis nicht mit Nutzer- oder Gerätekennungen verknüpft ist.

Screenshot eines Smartphones, auf dem der Nutzer aufgefordert wird, bestimmte Apps zu schließen.

Dank dieser Zusammenarbeit erhalten wir die Signale, die wir benötigen, um unsere Kunden effektiver zu schützen.
– Nubank, Early-Access-Partner

Das Risiko von App-Zugriffen hat verschiedene Risikostufen:

  • Eine Erfassungsantwort bedeutet, dass andere Apps ausgeführt werden, die den Bildschirm aufnehmen können.
  • Eine Antwort vom Typ „controlling“ bedeutet, dass andere Apps ausgeführt werden, die das Gerät steuern können. Daher können sie sowohl den Bildschirm aufzeichnen als auch die Eingaben in Ihre App steuern.

Erzwingen des Risikos von App-Zugriffen

Identifizieren Sie in Ihrer App oder Ihrem Spiel Aktionen mit hohem Wert oder vertrauliche Aktionen, die Sie mit der Play Integrity API schützen möchten, anstatt den Zugriff direkt zu verweigern. Fordern Sie riskanten Traffic nach Möglichkeit heraus, bevor Sie Aktionen mit hohem Wert zulassen. Wenn das Risiko von App-Zugriffen beispielsweise darauf hinweist, dass eine App ausgeführt wird, die den Bildschirm aufzeichnen könnte, fordern Sie den Nutzer auf, Apps, die den Bildschirm aufzeichnen können, zu deaktivieren oder zu deinstallieren, bevor Sie ihm erlauben, mit der Funktion fortzufahren, die Sie schützen möchten.

Diese Tabelle enthält einige Beispielurteile:

Beispiel für eine Antwort mit dem Ergebnis zum Risiko von App-Zugriffen Interpretation
appsDetected:
["KNOWN_INSTALLED"]
Es sind nur Apps installiert, die von Google Play erkannt werden oder vom Gerätehersteller auf der Systempartition vorinstalliert wurden. Es werden keine Apps ausgeführt, die zu den Ergebnissen „Aufzeichnen“, „Steuern“ oder „Overlays“ führen würden.
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
Es sind Apps installiert, die von Google Play oder vom Gerätehersteller auf der Systempartition vorinstalliert wurden. Es werden andere Apps ausgeführt, für die Berechtigungen aktiviert sind, die zum Anzeigen des Bildschirms oder zum Erfassen anderer Ein- und Ausgaben verwendet werden könnten.
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
Es wird eine Play- oder System-App ausgeführt, für die Berechtigungen aktiviert sind, die zum Anzeigen des Bildschirms oder zum Erfassen anderer Ein- und Ausgaben verwendet werden könnten. Es werden auch andere Apps ausgeführt, für die Berechtigungen aktiviert sind, die zum Steuern des Geräts und zum direkten Steuern von Eingaben in Ihre App verwendet werden könnten.
appAccessRiskVerdict: {} Das Risiko von App-Zugriffen wird nicht bewertet, da eine erforderliche Voraussetzung nicht erfüllt wurde. Das Gerät war beispielsweise nicht vertrauenswürdig genug.

Play Protect-Signal

Das Play Protect-Signal informiert Ihre App darüber, ob Play Protect aktiviert ist und ob auf dem Gerät bekannte schädliche Apps gefunden wurden.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

Wenn Malware ein besonderes Problem für Ihre App oder die Daten Ihrer Nutzer darstellt, können Sie dieses Ergebnis prüfen und Ihre Nutzer bitten, Play Protect zu aktivieren oder schädliche Apps zu entfernen, bevor sie fortfahren.

Dialogfeld zum Aktivieren von Play Protect

playProtectVerdict kann einen der folgenden Werte haben:

Ergebnis Erklärung Empfohlene Maßnahme

NO_ISSUES

Play Protect ist aktiviert und hat keine App-Probleme auf dem Gerät gefunden.

Play Protect ist aktiviert und hat keine Probleme gefunden. Sie müssen also nichts weiter tun.

NO_DATA

Play Protect ist aktiviert, es wurde aber noch kein Scan durchgeführt. Das Gerät oder die Google Play Store App wurde möglicherweise vor Kurzem zurückgesetzt.

Play Protect ist aktiviert und hat keine Probleme gefunden. Sie müssen also nichts weiter tun.

POSSIBLE_RISK

Play Protect ist deaktiviert.

Play Protect ist aktiviert und hat keine Probleme gefunden. Sie müssen also nichts weiter tun.

MEDIUM_RISK

Play Protect ist aktiviert und hat potenziell schädliche Apps gefunden, die auf dem Gerät installiert sind.

Je nach Ihrer Risikobereitschaft können Sie den Nutzer bitten, Play Protect zu starten und auf die Play Protect-Warnungen zu reagieren. Wenn der Nutzer diese Anforderungen nicht erfüllen kann, können Sie ihn für die Serveraktion blockieren.

HIGH_RISK

Play Protect ist aktiviert und hat gefährliche Apps gefunden, die auf dem Gerät installiert sind.

Je nach Ihrer Risikobereitschaft können Sie den Nutzer bitten, Play Protect zu starten und auf die Play Protect-Warnungen zu reagieren. Wenn der Nutzer diese Anforderungen nicht erfüllen kann, können Sie ihn für die Serveraktion blockieren.

UNEVALUATED

Das Play Protect-Ergebnis wurde nicht ausgewertet.

Dafür kann es verschiedene Gründe geben:

  • Das Gerät ist nicht vertrauenswürdig genug.
  • Nur Spiele: Das Nutzerkonto hat KEINE LIZENZ.

Letzte Geräteaktivitäten

Sie können auch die Funktion „Letzte Geräteaktivitäten“ aktivieren, um zu sehen, wie häufig Ihre App in der vergangenen Stunde ein Integritäts-Token auf einem bestimmten Gerät angefordert hat. Mithilfe der letzten Geräteaktivität kannst du deine App vor unerwarteten, hyperaktiven Geräten schützen, was auf einen aktiven Angriff hindeuten könnte. Sie können entscheiden, wie viel Vertrauen Sie in die einzelnen Stufen der letzten Geräteaktivitäten setzen, je nachdem, wie oft Ihre App auf einem typischen Gerät pro Stunde ein Integritäts-Token anfordern sollte.

Wenn Sie sich für den Empfang von recentDeviceActivity entscheiden, enthält das Feld deviceIntegrity zwei Werte:

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

Prüfen Sie zuerst die Daten, um die typischen Geräteaktivitätsniveaus für Ihre App auf allen Ihren Geräten zu ermitteln. Anschließend können Sie festlegen, wie Ihre App reagieren soll, wenn ein Gerät zu viele Anfragen sendet. Wenn die Aktivität etwas hoch ist, können Sie den Nutzer bitten, es später noch einmal zu versuchen. Bei sehr hoher Aktivität sollten Sie möglicherweise strengere Maßnahmen ergreifen.

Standardanfragen im Vergleich zu klassischen Anfragen

Bei der Implementierung der Play Integrity API müssen Sie die beiden Arten von Anfragen berücksichtigen. In den meisten Fällen sollten Sie Standardanfragen verwenden, um die schnellste Antwort zu erhalten. Klassische Anfragen sollten verwendet werden, wenn eine neu generierte Anfrage für den Geräteattestdatensatz erforderlich ist.

Klassische Anfrage

Standardanfrage

Anfragen dauern länger und sollten seltener gestellt werden.

Beispielsweise als gelegentliche einmalige Überprüfung, ob eine wertvolle oder sensible Aktion echt ist.

Selten verwenden:

Anfragen haben eine niedrige Latenz und können bei Bedarf verwendet werden.

Eine Standardanfrage besteht aus zwei Teilen:

  • Integritätstokenanbieter vorbereiten (einmalig)
  • Integritätstoken anfordern (bei Bedarf)

On demand verwenden

Weitere Informationen zu Standard- und klassischen Anfragen finden Sie in der Play Integrity API-Dokumentation.

Implementierung

So legen Sie mit der Play Integrity API los:

Standardmäßig sind für die Play Integrity API bis zu 10.000 Anfragen pro App und Tag zulässig. Wenn Sie das Tageslimit für Anfragen erhöhen möchten, folgen Sie dieser Anleitung. Damit Sie eine Erhöhung des täglichen Limits für Anfragen beantragen können, muss die Play Integrity API in Ihrer App korrekt implementiert sein und Ihre App muss zusätzlich zu allen anderen Vertriebskanälen auch bei Google Play verfügbar sein.

Wichtige Hinweise zur Play Integrity API

Automatischer Integritätsschutz (API >= 23)

Der automatische Integritätsschutz ist ein Dienst zum Schutz vor Manipulationen, der Ihre App vor Integritätsmissbrauch in Form von nicht autorisierter Modifizierung und Weitergabe schützt. Sie funktioniert ohne Datenverbindung und erfordert weder Maßnahmen des Entwicklers vor dem Testen noch eine Backend-Server-Integration.

So lässt sich Betrug vermeiden

Wenn Sie den automatischen Integritätsschutz aktivieren, fügt Google Play Ihrem App-Code Prüfungen hinzu und erschwert mithilfe von ausgereiften Verschleierungs- und Anti-Reverse-Engineering-Techniken die Entfernung dieser Prüfungen. Zur Laufzeit wird durch den Schutz geprüft, ob Ihre App manipuliert oder weitergegeben wurde:

  • Wenn die App die Prüfung des Installationsprogramms nicht besteht, werden Nutzer aufgefordert, Ihre App bei Google Play herunterzuladen.
  • Wenn die Modifizierungsprüfung fehlschlägt, wird die App nicht ausgeführt

So werden Nutzer besser vor geänderten Versionen Ihrer App geschützt.

Implementierung

Der automatische Integritätsschutz ist derzeit nur für ausgewählte Play-Partner verfügbar. Wenn die Funktion in Ihrer Google Play Console nicht verfügbar ist und Sie Interesse an einem Zugriff haben, wenden Sie sich bitte an den Google Play-Entwicklersupport.

Sie können den Schutz entweder beim Erstellen eines Release oder auf der Seite Mit Google Play geschützt aktivieren. Für den automatischen Integritätsschutz muss Ihre App Play App-Signatur verwenden.

Testen Sie Ihre geschützte App unbedingt, bevor Sie die Version in den Produktions-Track hochstufen.

Hinweise

  • Keine ungeschützten App-Versionen veröffentlichen
  • Vorsicht beim Verwenden mehrerer Manipulationsschutz-Lösungen
  • Geschützte App vor der Veröffentlichung in der Produktion testen
  • Statistiken wie gewohnt auf eine Zunahme von Abstürzen prüfen
  • Gecrackte Versionen Ihrer App bei Google Play melden