
Bedeutende Sicherheitsverbesserungen der letzten großen Android-Versionen.
Bedeutende Sicherheitsverbesserungen der letzten großen Android-Versionen, beginnend mit Android 5.0 Lollipop (API 21).
Security Enhancements - Android 5
WebView ist ein separates Paket, siehe Sicherheitsverbesserungen in Android 5.0 und The Updatable WebView on Android 5.0 Lollipop What Is It and Why Should You Care?Sicherheitsverbesserungen in Android 6
isInsideSecureHardware) zum Prüfen, ob ein KeyStore-Schlüssel in sicherer Hardware gespeichert ist (z. B. Trusted Execution Environment (TEE) oder Secure Element (SE)), siehe isInsideSecureHardware-Methode von KeyInfoSicherheitsverbesserungen – Android 7
Sicherheitsverbesserungen – Android 8
WebView in einem separaten Prozess, sodass JavaScript-Code nicht so einfach auf den Speicher der App zugreifen kann, siehe Was ist neu in der WebView-Sicherheit und Abschnitt Sicherheit der Android-8.0-Verhaltensänderungen für alle AppsWebView respektiert Network Security Config und das cleartextTrafficPermitted-Flag (auf älteren Android-Versionen lädt es HTTP-Seiten, selbst wenn Klartextverkehr von der Konfiguration nicht erlaubt sein sollte), siehe Abschnitt Sicherheit der Android-8.0-Verhaltensänderungen für Apps, die auf Android 8.0 abzielenWebView hinzugefügt, sodass Benutzer beim Navigieren zu einer potenziell unsicheren Website gewarnt werden (durch Google Safe Browsing verifiziert), sofern aktiviert, siehe Abschnitt WebView-APIs der Android-8.0-Funktionen und -APIsFLAG_SECURE-Window-Flag wird stärker unterstützt und verbietet das Aufnehmen von Screenshots des Bildschirms, auf dem es gesetzt istAndroid-9-Versionshinweise – Sicherheitsfunktionen
cleartextTrafficPermitted explizit auf true setzen in ihrer Network Security Config, wenn sie ihn weiterhin verwenden möchten (nicht empfohlen), siehe Abschnitt Netzwerk-TLS standardmäßig aktiviert der Verhaltensänderungen: Apps, die auf API-Ebene 28+ abzielen und Android: Cleartext-HTTP-Verkehr in Android 9 nicht erlaubtSicherheitsverbesserungen – Android 10
Android-10-Versionshinweise – Sicherheitsfunktionen
WebView standardmäßig deaktiviert, siehe setAllowFileAccess-Methode von WebSettingsAndroid-11-Versionshinweise – Sicherheit
taskAffinity auf dieselbe wie die Ziel-App setzt, um den Benutzer dazu zu bringen, sie zu starten, selbst wenn er die Ziel-App starten wollte und deren legitimes App-Symbol verwendet hat) nicht mehr möglich, siehe StrandHogg-Angriff / Task-Affinity-Schwachstelle und Strandhogg-SchwachstellerequestLegacyExternalStorage darauf verzichten, siehe Speicherupdates in Android 11 und Abschnitt Opt-out in Ihrer Produktions-App der Android-Speicheranwendungsfälle und bewährten Methodenandroid:exported-Flag muss in Manifesten für Komponenten (Activities, Content-Provider usw.), die Intent-Filter deklarieren, explizit definiert werden, siehe Abschnitt „Sichereres Exportieren von Komponenten“ unter „Verhaltensänderungen: Apps, die auf Android 12 abzielen“requestLegacyExternalStorage ist nicht mehr möglich, siehe Sicherheitsverbesserungen - Android 13
Android-13-Versionshinweise - Sicherheit
POST_NOTIFICATIONS zum Senden von nicht ausgenommenen Benachrichtigungen (einschließlich Vordergrunddiensten (FGS)) aus einer App hinzugefügt, siehe Laufzeitberechtigung für Benachrichtigungen und android.permission.POST_NOTIFICATIONSSicherheitsverbesserungen - Android 14
Android-14-Sicherheits-Versionshinweise
targetSdk: Apps, die auf Android-Versionen älter als Android 6 (API 23) abzielen, können nicht mehr installiert werden. Das bedeutet, dass du davon ausgehen kannst, dass die mit Android 6 (API 23) eingeführten Sicherheitsbeschränkungen (in diesem Fall bemerkenswerterweise die Behandlung von Laufzeitberechtigungen) jetzt für alle auf dem Gerät installierten Apps gelten (diese Mindestanforderung wird voraussichtlich mit jeder zukünftigen Android-Version steigen), siehe Abschnitt „Minimales installierbares Ziel-API-Level“ unter „Verhaltensänderungen: alle Apps“QUERY_ALL_PACKAGES-Berechtigung erteilt bekommen - was eine spezielle manuelle Google-Play-Überprüfung erfordert), siehe Abschnitt „Paketnamen von Medienbesitzern können geschwärzt werden“ unter „Verhaltensänderungen: alle Apps“Android-15-Sicherheits-Versionshinweise
PendingIntent-Ersteller blockieren jetzt standardmäßig Starts von Hintergrundaktivitäten, wenn deine App auf Android 15 (API 35) abzielt, siehe Abschnitt „Weitere Änderungen“ unter „Verhaltensänderungen: Apps, die auf Android 15 oder höher abzielen“PendingIntent-Ersteller erlaubt Startprivilegien für Hintergrundaktivitäten oder der Absender hat Startprivilegien für Hintergrundaktivitäten, wenn deine App auf Android 15 (API 35) abzielt, siehe Android-16-Sicherheits-Versionshinweise* Standardmäßige Sicherheit gegen allgemeine Intent-Umleitungsangriffe hinzugefügt. Das Starten von Intents, die von anderen Apps empfangen wurden, z. B. als Extra an den Intent angehängt, der die aktuelle App startet, wird blockiert. Siehe Abschnitt „Verbesserte Sicherheit gegen Intent-Umleitungsangriffe“ unter Verhaltensänderungen: Alle Apps
RESULT_DISCOVERY_TIMEOUT benachrichtigt. Stattdessen wird der Benutzer über Timeout-Ereignisse mit einem visuellen Dialog informiert. Wenn der Benutzer den Dialog schließt, wird die App über den Kopplungsfehler mit RESULT_USER_REJECTED benachrichtigt. Siehe Abschnitt „Companion-Apps werden nicht mehr über Discovery-Timeouts benachrichtigt“ unter Verhaltensänderungen: Alle AppsMediaStore#getVersion() ist jetzt für jede App eindeutig. Dadurch werden identifizierende Eigenschaften aus der Versionszeichenfolge entfernt, um Missbrauch und die Verwendung für Fingerprinting-Techniken zu verhindern. Siehe Abschnitt „MediaStore-Versionssperre“ unter Verhaltensänderungen: Apps, die auf Android 16 oder höher abzielen und getVersion-Methode von MediaStoreAndroid 17 Security Release Notes
READ_CONTATCS zu benötigen. Siehe Abschnitt „Android-Kontakt-Picker“ unter Features und APIsKeyStoreException fehl. Siehe Abschnitt „Keystore-Limits pro App“ unter Verhaltensänderungen: Alle AppssetView gesetzt) können nicht mehr aus dem Hintergrund gestartet werden. Dies dient zur Abschwächung bestimmter Tapjacking-Angriffe, die darauf beruhten, die Benutzeroberfläche einer Opfer-App zu verdecken. Beachten Sie, dass die gesamte setView-Methode in Android 11 (API 30) veraltet ist. Siehe Dokumentation der setView-Methode von ToastBiometricPrompt zur Authentifizierung verwenden.FLAG_SECURE-Flag wird für Aufforderungen zu biometrischen oder Geräte-Anmeldedaten (PIN, Muster oder Passwort) hinzugefügt, sowohl zum Entsperren des Geräts als auch für BiometricPrompt in Apps - das bedeutet, dass du keine Screenshots dieser Bildschirme machen kannst und sie auch in Bildschirmfreigaben abgedunkelt erscheinen, siehe Quellcode für com.android.systemui.biometrics.AuthContainerView in der Android-Code-Sucheapksigner nutzen, verwenden standardmäßig das Signaturschema v3.1 für die Zielrotation für Android 13 und höher.Exception aus, siehe Abschnitt „Sichereres dynamisches Laden von Code“ unter „Verhaltensänderungen: Apps, die auf Android 14 oder höher abzielen“null gesetzt) stimmen nicht mehr mit irgendwelchen Intent-Filtern überein. Das bedeutet, dass Intents, die zum Starten von Aktivitäten oder Diensten verwendet werden, eine klar definierte Aktion haben müssen, siehe Abschnitt „Sicherere Intents“ unter „Verhaltensänderungen: Apps, die auf Android 15 oder höher abzielen“PendingIntent wird als Absender des umschließenden Intents behandelt, nicht als Absender des Pending-Intents, siehe Abschnitt „Sicherere Intents“ unter „Verhaltensänderungen: Apps, die auf Android 15 oder höher abzielen“BiometricPrompt mit sich: Er kann nach einem Fehlschlag mit Biometrie nicht mehr auf Geräte-Anmeldedaten „zurückfallen“, um die Benutzerauthentifizierung dennoch abzuschließen. Beachte, dass der Benutzer Geräte-Anmeldedaten nach Wahl weiterhin über eine Schaltfläche auf der Aufforderung verwenden kann, wenn dieser Authentifikator erlaubt ist (und wenn er bei der Aufforderung nicht bereits zu oft gescheitert ist). Wenn das Gerät gesperrt wird, wird die Aufforderung abgebrochen, und nach dem Entsperren des Geräts muss eine neue Aufforderung ausgelöst werden, damit die Authentifizierung erfolgreich ist. Siehe Android 15 stellt sicher, dass Diebe dein Bankkonto nicht plündern können, wenn sie dein entsperrtes Telefon stehlenmoduleHash in der Struktur KeyDescription, mit dem die Integrität geladener APEX-Module überprüft werden kann. Siehe Abschnitt „Geräteintegrität“ in den Versionshinweisen zu Android 16 und Schlüssel- und ID-Attestierung