Android verbessert kontinuierlich seine Sicherheitsfunktionen und -angebote. In der linken Navigationsleiste finden Sie Listen der Verbesserungen nach Release.
Android 14
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Dies sind einige der wichtigsten Sicherheitsverbesserungen in Android 14:
- Mit Android 10 eingeführter hardwaregestützter AddressSanitizer (HWASan), ist ein Tool zur Erkennung von Arbeitsspeicherfehlern, AddressSanitizer sein. Android 14 bringt erhebliche Verbesserungen für HWASan mit sich. Weitere Informationen dazu, wie damit verhindert wird, dass Fehler in Android-Releases eindringen, finden Sie unter HWAddressSanitizer.
- Bei Android 14 beginnen wir mit Apps, die Standortdaten an Dritte weitergeben. Das Dialogfeld für die Systemlaufzeitberechtigung enthält jetzt einen anklickbaren Abschnitt, in dem die die Datenweitergabepraktiken der App, einschließlich Informationen, z. B. warum eine App beschließt, Daten zu teilen mit Dritten teilen.
- In Android 12 wurde eine Option eingeführt, mit der die 2G-Unterstützung auf Modemebene deaktiviert werden kann. Dadurch werden Nutzer vor dem inhärenten Sicherheitsrisiko des veralteten 2G-Sicherheitsmodells geschützt. Da die Deaktivierung von 2G für Unternehmenskunden von entscheidender Bedeutung sein kann, wird diese Sicherheitsfunktion in Android 14 in Android Enterprise aktiviert. IT-Administratoren können damit die Möglichkeit eines verwalteten Geräts einschränken, auf eine 2G-Verbindung umzustellen.
- Unterstützung für die Ablehnung von nicht verschlüsselten Mobilfunkverbindungen hinzugefügt, damit leitungsvermittelte Sprach- und SMS-Traffic immer verschlüsselt und vor passivem Abhören per Funk geschützt ist. Weitere Informationen zum Programm von Android zur Verbesserung der Mobilfunkverbindung
- Unterstützung für mehrere IMEIs hinzugefügt
- Seit Android 14 ist AES-HCTR2 der bevorzugte Modus für die Dateinamenverschlüsselung. für Geräte mit Anweisungen zur beschleunigten Kryptografie.
- Mobilfunkverbindung
- Dokumentation zum Android-Sicherheitscenter hinzugefügt
- Wenn Ihre App auf Android 14 ausgerichtet ist und Dynamic Code Loading (DCL) verwendet, müssen alle dynamisch geladenen Dateien als schreibgeschützt markiert sein. Andernfalls löst das System eine Ausnahme aus. Wir empfehlen, in Apps nach Möglichkeit keinen Code dynamisch zu laden, da dadurch das Risiko erheblich steigt, dass eine App durch Code-Injection oder Code-Manipulation manipuliert wird.
Weitere Informationen finden Sie in den vollständigen Versionshinweisen von AOSP und Android Developer funktionen und Änderungsliste.
Android 13
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Hier sind einige der wichtigsten Sicherheitsverbesserungen in Android 13:
- Mit Android 13 wird die Unterstützung für die Präsentation mehrerer Dokumente hinzugefügt. Mit dieser neuen Oberfläche für die Präsentationssitzung kann eine App eine Präsentation mit mehreren Dokumenten anzeigen, was mit der vorhandenen API nicht möglich ist. Weitere Informationen finden Sie unter Identity Credential
- Unter Android 13 werden Intents, die von externen Apps stammen, nur dann an eine exportierte Komponente gesendet, wenn sie mit den angegebenen Intent-Filterelementen übereinstimmen.
- Open Mobile API (OMAPI) ist eine Standard-API für die Kommunikation mit dem Secure Element. Vor Android 13 gab es nur Apps und Framework-Module Zugriff auf diese Oberfläche. Durch die Umwandlung in eine anbieterunabhängige Schnittstelle können HAL-Module auch über den OMAPI-Dienst mit den sicheren Elementen kommunizieren. Weitere Informationen finden Sie unter OMAPI Vendor Stable Interface.
- Seit Android 13-QPR werden freigegebene UIDs nicht mehr unterstützt. Für Nutzer von Android 13 oder höher muss die Zeile „android:sharedUserMaxSdkVersion="32"“ in das Manifest aufgenommen werden. Dieser Eintrag verhindert, dass neue Nutzer eine gemeinsame UID erhalten. Weitere Informationen zu UIDs finden Sie unter App-Signatur:
- In Android 13 wurde die Unterstützung für symmetrische kryptografische Keystore-Primitive wie AES (Advanced Encryption Standard), HMAC (Keyed-Hash Message Authentication Code) und asymmetrische kryptografische Algorithmen (einschließlich elliptischer Kurven, RSA2048, RSA4096 und Curve 25519) hinzugefügt.
- Android 13 (API-Level 33) und höher unterstützt Eine Laufzeitberechtigung zum Senden nicht ausgenommener Benachrichtigungen über eine App. So erhalten Nutzende festlegen, welche Benachrichtigungen zu Berechtigungen angezeigt werden.
- Es wurde eine Aufforderung für die einmalige Verwendung hinzugefügt, wenn Apps Zugriff auf alle Geräteprotokolle anfordern. Nutzer können den Zugriff erlauben oder verweigern.
- das Android Virtualization Framework (AVF) eingeführt, das verschiedene Hypervisoren in einem Framework mit standardisierten APIs zusammenführt. Sie bietet sichere und private Ausführungsumgebungen für die Ausführung von Arbeitslasten, die vom Hypervisor isoliert sind.
- Einführung des APK-Signaturschemas Version 3.1 Bei allen neuen Schlüsselrotationen, bei denen apksigner verwendet wird, wird standardmäßig das Signaturschema Version 3.1 verwendet, um die Rotation auf Android 13 und höher auszurichten.
Weitere Informationen finden Sie in den vollständigen AOSP-Versionshinweisen und in der Liste der Funktionen und Änderungen für Android-Entwickler.
Android 12
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Hier sind einige der wichtigsten Sicherheitsverbesserungen in Android 12:
- In Android 12 wird die BiometricManager.Strings API eingeführt, die lokalisierte Strings für Apps bereitstellt, die BiometricPrompt für die Authentifizierung verwenden. Diese Strings sind gerätebezogen und geben an, welche Authentifizierungstypen verwendet werden können. Android 12 unterstützt auch Fingerabdrucksensoren unter dem Display.
- Unterstützung für Fingerabdrucksensoren unter dem Display
- Einführung des Fingerabdrucks der Android Interface Definition Language (AIDL)
- Unterstützung für die neue Face AIDL
- Einführung von Rust als Sprache für die Plattformentwicklung
- Die Option, dass Nutzer nur Zugriff auf ihre ungefähren Standort hinzugefügt
- In der Statusleiste werden jetzt Datenschutzhinweise angezeigt, wenn eine App die Kamera oder das Mikrofon verwendet.
- Private Compute Core (PCC) von Android
- Option zum Deaktivieren der 2G-Unterstützung hinzugefügt
Android 11
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Eine Liste der wichtigsten Sicherheitsverbesserungen in Android 11, siehe Android-Version Notizen:
Android 10
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Android 10 enthält verschiedene Verbesserungen in puncto Sicherheit und Datenschutz. Weitere Informationen finden Sie in den Versionshinweisen für Android 10. findest du eine vollständige Liste der Änderungen bei Android 10.
Sicherheit
BoundsSanitizer
Android 10 stellt BoundsSanitizer bereit (BoundSan) in Bluetooth und Codecs an. BoundSan verwendet den Bounds Sanitizer von UBSan. Diese Abhilfemaßnahme ist auf Modulebene aktiviert. Sie trägt dazu bei, wichtige Android-Komponenten zu schützen, und sollte nicht deaktiviert werden. BoundSan ist aktiviert in folgenden Codecs:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
Nur-Ausführungsarbeitsspeicher
Standardmäßig sind ausführbare Codeabschnitte für AArch64-Systembinärdateien mit zur Abwehr von Just-in-Time-Code nur ausführen (nicht lesbar) wiederverwendete Angriffe. Code, der Daten und Code vermischt und gezielt Code prüft diese Abschnitte (ohne zuvor die Speichersegmente lesbar sein) funktioniert nicht mehr. Apps mit dem Ziel-SDK Android 10 (API-Level 29 oder höher) sind betroffen, wenn die App versucht, Codeabschnitte von Systembibliotheken mit aktiviertem Nur-Ausführungsspeicher (XOM) im Arbeitsspeicher zu lesen, ohne den Abschnitt zuvor als lesbar zu kennzeichnen.
Erweiterter Zugriff
Trust Agents, der zugrunde liegende Mechanismus, der von Drittanbieter-Authentifizierungsmechanismen wie Smart Lock verwendet wird, kann die Entsperrung nur unter Android 10 verlängern. Vertrauen Kundenservicemitarbeiter können gesperrte Geräte nicht mehr entsperren und nur dafür sorgen, dass sie entsperrt bleiben. maximal vier Stunden lang.
Gesichtserkennung
Mit der Gesichtserkennung können Nutzer ihr Gerät entsperren, indem sie einfach in die Kamera schauen. Android 10 unterstützt einen neuen Stapel für die Gesichtserkennung, mit dem Kameraframes sicher verarbeitet werden können. So werden Sicherheit und Datenschutz bei der Gesichtserkennung auf unterstützter Hardware gewährleistet. Android 10 bietet außerdem eine einfache Möglichkeit für sicherheitskonforme Implementierungen, die App-Integration für Transaktionen wie Onlinebanking oder andere Dienste zu ermöglichen.
Bereinigung von Ganzzahlüberläufen
In Android 10 wird die Integer-Überlauf-Desinfektion (IntSan) in Software-Codecs aktiviert. Die Wiedergabeleistung muss für alle Codecs akzeptabel sein, die von der Hardware des Geräts nicht unterstützt werden. IntSan ist in den folgenden Codecs aktiviert:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
Modulare Systemkomponenten
Android 10 modularisiert einige Android- Systemkomponenten und ermöglichen die Aktualisierung außerhalb des normalen Android-Releasezyklus. Beispiele für Module:
- Android Laufzeit
- Conscrypt
- DNS-Resolver
- Dokumente UI
- Externe Dienste
- Medien
- Modul-Metadaten
- Networking
- PermissionController
- Zeitzonendaten
OEMCrypto
Android 10 verwendet Version 15 der OEMCrypto API.
Scudo
Scudo ist ein dynamischer Speicherallokator im Nutzermodus, der für eine bessere Resilienz gegenüber heapbezogenen Sicherheitslücken entwickelt wurde. Sie bietet die Standard-C-Zuweisung die Deallocation-Primitive sowie die C++-Primitive an.
Schattenaufruf-Stack
ShadowCallStack
(SCS)
ist eine LLVM
Instrumentierungsmodus, der vor Überschreibungen der Rücksendeadresse schützt (z. B.
Stack-Pufferüberläufen), indem die Rückgabeadresse einer Funktion in einem separaten
Zugewiesene Instanz ShadowCallStack
im Funktionsprolog von
Non-Blatt-Funktionen und das Laden der Rücksendeadresse aus der
ShadowCallStack
-Instanz im Funktionsepilog.
WPA3 und Wi-Fi Enhanced Open
Android 10 unterstützt jetzt die WLAN- Protected Access 3 (WPA3) und Wi-Fi Enhanced Open-Sicherheitsstandards um besseren Datenschutz und Schutz vor bekannten Angriffen zu bieten.
Datenschutz
App-Zugriff bei Ausrichtung auf Android 9 oder niedriger
Ihre App läuft unter Android 10 oder höher, ist aber auf Android 9 (API-Level 28) ausgerichtet oder niedriger, wendet die Plattform folgendes Verhalten an:
- Wenn Ihre App ein
<uses-permission>
-Element fürACCESS_FINE_LOCATION
oderACCESS_COARSE_LOCATION
deklariert, fügt das System während der Installation automatisch ein<uses-permission>
-Element fürACCESS_BACKGROUND_LOCATION
hinzu. - Wenn Ihre App entweder
ACCESS_FINE_LOCATION
oderACCESS_COARSE_LOCATION
wird vom System automatischACCESS_BACKGROUND_LOCATION
hinzu.
Einschränkungen bei Hintergrundaktivitäten
Ab Android 10 werden Einschränkungen
zum Starten von Aktivitäten im Hintergrund. Diese Verhaltensänderung hilft
Unterbrechungen für den Nutzer minimieren und ihm die Kontrolle darüber geben,
die auf ihrem Bildschirm angezeigt werden. Solange Ihre App Aktivitäten als direktes Ergebnis startet
der Nutzerinteraktion wird Ihre App höchstwahrscheinlich nicht von diesen Einschränkungen betroffen.
Weitere Informationen zur empfohlenen Alternative zum Starten von Aktivitäten im Hintergrund finden Sie in der Anleitung zum Benachrichtigen von Nutzern über zeitkritische Ereignisse in Ihrer App.
Kamerametadaten
Unter Android 10 werden die Informationen, die standardmäßig von der getCameraCharacteristics()
-Methode zurückgegeben werden, geändert. Deine App muss insbesondere die CAMERA
um auf potenziell gerätespezifische Metadaten zuzugreifen, die
im Rückgabewert dieser Methode enthalten.
Weitere Informationen zu diesen Änderungen findest du im Abschnitt über die Kamerafunktion.
Felder, für die eine Berechtigung erforderlich ist.
Daten aus der Zwischenablage
Sofern Ihre App nicht der standardmäßige Eingabemethoden-Editor (IME) oder die App ist, die gerade den Fokus hat, kann sie unter Android 10 oder höher nicht auf Zwischenablagedaten zugreifen.
Gerätestandort
Um die zusätzliche Kontrolle zu unterstützen, die Nutzer über den Zugriff einer App auf eine App haben
Standortinformationen enthält, führt Android 10 die ACCESS_BACKGROUND_LOCATION
Berechtigung.
Im Gegensatz zu den Berechtigungen ACCESS_FINE_LOCATION
und ACCESS_COARSE_LOCATION
wirkt sich die Berechtigung ACCESS_BACKGROUND_LOCATION
nur auf den Zugriff einer App auf den Standort aus, wenn sie im Hintergrund ausgeführt wird. Eine App wird als
auf die Standortermittlung im Hintergrund zuzugreifen, es sei denn,
erfüllt ist:
- Eine Aktivität der App ist sichtbar.
- Die App führt einen Dienst im Vordergrund aus, der einen Vordergrunddienst deklariert hat
Diensttyp
location
.
So deklarieren Sie den Dienst im Vordergrund für einen Dienst in Ihrer App eingeben,targetSdkVersion
Ihrer App festlegen odercompileSdkVersion
auf29
oder höher. Weitere Informationen über wie Sie Dienste im Vordergrund von Nutzern initiierte Aktionen, die Zugriff auf den Standort erfordern.
Externer Speicher
Standardmäßig erhalten Apps, die auf Android 10 und höher ausgerichtet sind, den Zugriff auf externen Speicher oder begrenzten Speicher. Diese Apps können Folgendes sehen: die folgenden Dateitypen auf einem externen Speichergerät speichern, ohne So fordern Sie speicherbezogene Nutzerberechtigungen an:
- Dateien im app-spezifischen Verzeichnis, auf die über
getExternalFilesDir()
zugegriffen wird. - Fotos, Videos und Audioclips, die die App aus den Medien erstellt hat speichern.
Weitere Informationen zum begrenzten Speicherplatz sowie zum Freigeben, Zugreifen und Dateien ändern, die auf externen Speichergeräten gespeichert sind, finden Sie in den Leitfäden zum Verwalten Dateien im externen Speicher und Zugriff und Mediendateien bearbeiten.
Zufallsgenerierung von MAC-Adressen
Auf Geräten mit Android 10 oder höher sendet das System eine zufällige MAC-Adresse.
Adressen standardmäßig verwenden.
Wenn Ihre App einen Unternehmensnutzungsfall abdeckt, bietet die Plattform APIs für verschiedene Vorgänge im Zusammenhang mit MAC-Adressen:
- Zufällige MAC-Adresse abrufen: Apps und
kann die zufällige MAC-Adresse abgerufen werden,
indem du
getRandomizedMacAddress()
aufrufst. - Tatsächliche MAC-Adresse mit Werkseinstellung abrufen: Apps des Geräteeigentümers können
die tatsächliche Hardware-MAC-Adresse eines Geräts abrufen, indem Sie
getWifiMacAddress()
aufrufen. Diese Methode ist nützlich, um mehrere Gerätepools zu verfolgen.
Nicht rücksetzbare Geräte-IDs
Ab Android 10 müssen Apps die
READ_PRIVILEGED_PHONE_STATE
privilegierte Berechtigung, um
auf die nicht rücksetzbaren Geräte-IDs zuzugreifen, die sowohl die IMEI als auch
Seriennummer haben.
Build
TelephonyManager
Wenn Ihre App nicht die erforderliche Berechtigung hat und Sie nach Informationen fragen zu nicht zurücksetzbaren Kennungen erhalten, variiert die Antwort der Plattform je nach SDK-Zielversion:
- Wenn Ihre App auf Android 10 oder höher ausgerichtet ist, tritt eine
SecurityException
auf. - Wenn Ihre App auf Android 9 (API-Level 28) oder niedriger ausgerichtet ist, gibt die Methode
null
oder Platzhalterdaten zurück, wenn die App die BerechtigungREAD_PHONE_STATE
hat. Andernfalls tritt einSecurityException
auf.
Erkennung körperlicher Aktivitäten
In Android 10 wird die android.permission.ACTIVITY_RECOGNITION
-Laufzeitberechtigung für Apps eingeführt, die die Schrittzahl des Nutzers erfassen oder seine körperlichen Aktivitäten klassifizieren müssen, z. B. Gehen, Radfahren oder Bewegung in einem Fahrzeug. So können Nutzer sehen, wie die Sensordaten der Geräte
die in den Einstellungen verwendet werden.
Einige Bibliotheken in den Google Play-Diensten, z. B. die Activity Recognition API und die Google Fit API, liefern nur dann Ergebnisse, wenn der Nutzer Ihrer App diese Berechtigung erteilt hat.
Die einzige integrierte
Sensoren am Gerät, für die diese Berechtigung erforderlich ist, ist der Schritt
Zähler und Schritt
Detektor-Sensoren.
Wenn Ihre App auf Android 9 (API-Level 28) oder niedriger ausgerichtet ist,
gewährt automatisch die Berechtigung android.permission.ACTIVITY_RECOGNITION
an Ihre App senden, wenn sie folgende Anforderungen erfüllt:
Bedingungen:
- Die Manifestdatei enthält
Berechtigung „
com.google.android.gms.permission.ACTIVITY_RECOGNITION
“. - Die Manifestdatei enthält nicht den Parameter
Berechtigung
android.permission.ACTIVITY_RECOGNITION
.
Wenn das System die Berechtigung android.permission.ACTIVITY_RECOGNITION
automatisch gewährt, behält Ihre App die Berechtigung, nachdem Sie sie so aktualisiert haben, dass sie auf Android 10 ausgerichtet ist. Sie können jedoch
Der Nutzer kann diese Berechtigung jederzeit in den Systemeinstellungen widerrufen.
Einschränkungen für das /proc/net-Dateisystem
Auf Geräten mit Android 10 oder höher haben Apps keinen Zugriff
/proc/net
mit Informationen zum Netzwerk eines Geräts
Bundesstaat. Apps, die Zugriff auf diese Informationen benötigen, wie z. B. VPNs, sollten den
NetworkStatsManager
oder ConnectivityManager
.
Berechtigungsgruppen wurden aus der Benutzeroberfläche entfernt
Ab Android 10 können Apps nicht mehr prüfen, wie Berechtigungen auf der Benutzeroberfläche gruppiert sind.
Entfernung der Kontaktaffinität
Ab Android 10 erfasst die Plattform keine gemeinsamen Kontakte mehr.
Informationen. Wenn Ihre App also eine Suche in den Kontakten des Nutzers durchführt,
sind die Ergebnisse nicht nach
der Interaktionshäufigkeit sortiert.
Der Leitfaden zu ContactsProvider
enthält eine Benachrichtigung, in der die Felder und Methoden beschrieben werden, die auf allen Geräten ab Android 10 nicht mehr unterstützt werden.
Eingeschränkter Zugriff auf Bildschirminhalte
Zum Schutz der verhindert Android 10 den stillen Zugriff auf die
Bildschirminhalt des Geräts durch Ändern des Umfangs der
READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
und
CAPTURE_SECURE_VIDEO_OUTPUT
-Berechtigungen. Seit Android 10 sind diese Berechtigungen nur noch mit Signaturzugriff möglich.
Apps, die auf den Bildschirminhalt des Geräts zugreifen müssen, sollten die
MediaProjection
API, die den Nutzer auffordert, seine Einwilligung zu geben.
Seriennummer des USB-Geräts
Wenn Ihre App auf Android 10 oder höher ausgerichtet ist, kann sie die Seriennummer erst lesen, wenn der Nutzer Ihrer App die Berechtigung zum Zugriff auf das USB-Gerät oder das Zubehör erteilt hat.
Weitere Informationen zur Verwendung von USB-Geräten finden Sie in der Anleitung zur Konfiguration von
USB-Hosts
WLAN
In Apps, die auf Android 10 oder höher ausgerichtet sind, kann WLAN nicht aktiviert oder deaktiviert werden. Die
WifiManager.setWifiEnabled()
gibt immer false
zurück.
Wenn Sie die Nutzer auffordern möchten, die WLAN-Funktion zu aktivieren oder zu deaktivieren, verwenden Sie eine Einstellung
.
Einschränkungen für den direkten Zugriff auf konfigurierte WLANs
Zum Schutz des Datenschutzes ist die manuelle Konfiguration der Liste der WLANs auf System-Apps und Geräterichtliniencontroller (DPCs) beschränkt. Ein bestimmter DPC kann entweder der Geräteeigentümer oder der Profilinhaber sein.
Wenn Ihre App auf Android 10 oder höher ausgerichtet ist und keine System-App oder
DPC gibt, geben die folgenden Methoden keine nützlichen Daten zurück:
- Das
getConfiguredNetworks()
gibt immer eine leere Liste zurück. - Jede Netzwerkbetriebsmethode, die einen Ganzzahlwert zurückgibt (
addNetwork()
undupdateNetwork()
), gibt immer -1 zurück. - Jeder Netzwerkvorgang, der einen booleschen Wert zurückgibt,
removeNetwork()
,reassociate()
,enableNetwork()
,disableNetwork()
,reconnect()
, unddisconnect()
– immer gibtfalse
zurück.
Android 9
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Eine Liste der wichtigsten Sicherheitsverbesserungen in Android 9 finden Sie in den Android-Releasehinweisen.
Android 8
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Hier sind einige der wichtigsten Sicherheitsverbesserungen für Android. 8.0:
- Verschlüsselung. Das Entfernen von Schlüsseln im Arbeitsprofil wird jetzt unterstützt.
- Verifizierter Bootmodus Android Verified Boot (AVB) wurde hinzugefügt. Überprüft Die Boot-Codebasis, die einen Rollback-Schutz für die Verwendung in Bootloadern unterstützt, wurde hinzugefügt zu AOSP. Empfehlen Sie die Bootloader-Unterstützung für den Rollback-Schutz für die HLOS. Wir empfehlen, dass Bootloader nur durch physische Interaktion des Nutzers mit dem Gerät entsperrt werden können.
- Sperrbildschirm Unterstützung für die Verwendung manipulationssicherer Hardware zur Bestätigung von Anmeldedaten für den Sperrbildschirm hinzugefügt
- KeyStore enthält. Erforderlicher Schlüssel Attestierung für alle Geräte, die mit Android 8.0 oder höher ausgeliefert werden. ID hinzugefügt Attestierung-Support, um die Zero-Touch-Registrierung zu verbessern.
- Sandbox-Technologie Noch enger wurden viele Komponenten unter Verwendung der Standardschnittstelle von Project Treble zwischen Framework- und gerätespezifischen Komponenten. seccomp angewendet Filterung zu allen nicht vertrauenswürdigen Apps hinzu, um die Angriffsfläche des Kernels zu verringern. WebView wird nun in einem isolierten Prozess mit sehr eingeschränktem Zugriff auf den Rest des System.
- Kernelhärtung. Implementiert gehärtet usercopy, PAN-Emulation, Lesezugriff nach Initialisierung und KASLR.
- Härtung des Userspaces. CFI für den Media-Stack implementiert App-Overlays können keine systemkritischen Fenster mehr verdecken und Nutzer haben die Möglichkeit, schließen Sie sie.
- Streaming-Betriebssystemupdate Aktualisierungen auf Geräten aktiviert, auf denen nur noch wenig Speicherplatz verfügbar ist
- Unbekannte Apps installieren Nutzer müssen die Berechtigung erteilen, Apps aus einer Quelle zu installieren, die kein App-Shop eines Anbieters ist.
- Datenschutz Die Android-ID (SSAID) hat einen anderen Wert für
jede App und jeden Nutzer des Geräts. Widevine-Client-ID für Webbrowser-Apps
wird für jeden App-Paketnamen und jede Webursprung ein anderer Wert zurückgegeben.
„
net.hostname
“ ist jetzt leer und der dhcp-Client sendet keine Hostname.android.os.Build.SERIAL
wurde durch denBuild.SERIAL
API das hinter einer benutzerdefinierte Berechtigung geschützt ist. Verbesserte MAC-Adress-Randomisierung bei einigen Chipsätzen.
Android 7
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Hier sind einige der wichtigsten Sicherheitsverbesserungen in Android 7.0:
- Dateibasierte Verschlüsselung. Durch die Verschlüsselung auf Dateiebene werden einzelne Nutzer und Profile (z. B. private und geschäftliche) auf einem Gerät besser isoliert und geschützt, anstatt den gesamten Speicherbereich als einzelne Einheit zu verschlüsseln.
- Direkter Start Aktiviert durch dateibasierte Verschlüsselung, Direct Beim Booten können bestimmte Apps wie Wecker und Bedienungshilfen wird ausgeführt, wenn das Gerät eingeschaltet, aber nicht entsperrt ist.
- Verifizierter Bootmodus: Der verifizierte Boot wird jetzt strikt erzwungen, um das Starten manipulierter Geräte zu verhindern. Er unterstützt die Fehlerkorrektur, um die Zuverlässigkeit bei nicht schädlichen Datenbeschädigungen zu verbessern.
- SELinux Aktualisierung der SELinux-Konfiguration und Seccomp-Abdeckung schränkt die Anwendungs-Sandbox weiter ein und reduziert Angriffe an.
- Zufallsmix der Ladereihenfolge von Bibliotheken und verbesserte ASLR Erhöhte Zufälligkeit macht einige Angriffe zur Code-Wiederverwendung weniger zuverlässig.
- Kernelhärtung. Zusätzlicher Arbeitsspeicherschutz für neuere Kernel hinzugefügt, indem Teile des Kernel-Speichers als schreibgeschützt gekennzeichnet wurden, der Kernelzugriff auf Userspace-Adressen eingeschränkt und die Angriffsfläche weiter reduziert wurde.
- APK-Signaturschema v2 Es wurde eine Signatur für die gesamte Datei eingeführt. zur Verbesserung der Überprüfungsgeschwindigkeit und zur Stärkung der Integritätsgarantien.
- Vertrauenswürdiger CA-Shop. Damit Apps leichter gesteuert werden können Zugriff auf den sicheren Netzwerkverkehr, von Nutzern installierte Zertifizierungsstellen und Apps, die über Device Admin APIs installiert werden, sind standardmäßig nicht mehr vertrauenswürdig für Apps, die auf API-Level 24 oder höher ausgerichtet sind. Außerdem müssen alle neuen Android-Geräte an dasselbe vertrauenswürdige CA-Geschäft versenden.
- Konfiguration der Netzwerksicherheit. Netzwerksicherheit und TLS über eine deklarative Konfigurationsdatei konfigurieren
Android 6
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Hier sind einige der wichtigsten Sicherheitsverbesserungen für Android. 6.0:
- Laufzeitberechtigungen Apps fordern Berechtigungen während der Laufzeit an, anstatt dass sie bei der Installation der App gewährt werden. Nutzer können Berechtigungen sowohl für M als auch für Vorgänger M aktivieren und deaktivieren. Apps.
- Verifizierter Bootmodus: Eine Reihe kryptografischer Systemprüfungen Software durchgeführt werden, bevor um sicherzustellen, dass das Telefon vom Bootloader bis zur des Betriebssystems.
- Hardware-isolierte Sicherheit Neue Hardware-Abstraktion Layer (HAL), die von der Fingerprint API, Sperrbildschirm, Geräteverschlüsselung und Clientzertifikate zum Schutz von Schlüsseln vor Kernel Angriffe und/oder lokale physische Angriffe
- Fingerabdrücke: Geräte können jetzt mit nur einem berühren. Entwickler können auch Vorteile neuer APIs für das Sperren und Entsperren von Verschlüsselungsschlüsseln mithilfe von Fingerabdrücken.
- Verwendung von SD-Karten. Wechseldatenträger können an ein Gerät angepasst werden, um den verfügbaren Speicherplatz für lokale App-Daten, Fotos, Videos usw. zu erweitern. Sie sind dabei aber weiterhin durch Blockverschlüsselung geschützt.
- Traffic in Klartext Entwickler können einen neuen StrictMode verwenden um sicherzustellen, dass ihre App Klartext.
- Systemhärtung. Härtung des Systems durch Richtlinien durch SELinux erzwungen. Dies bietet bessere Isolation zwischen Benutzern, IOCTL-Filterung, Reduzierung der Bedrohung durch gefährdete Dienste der SELinux-Domains weiter enger gefasst und der /proc-Zugriff stark eingeschränkt.
- USB-Zugriffssteuerung: Nutzer müssen bestätigen, dass sie den USB-Zugriff auf Dateien, Speicher oder andere Funktionen des Smartphones zulassen möchten. Die Standardeinstellung ist jetzt Nur aufladen. Der Zugriff auf den Speicher erfordert die ausdrückliche Genehmigung des Nutzers.
Android 5
5
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Hier sind einige der wichtigsten Sicherheitsverbesserungen für Android. 5.0:
- Sie sind standardmäßig verschlüsselt. Auf Geräten, die mit L ausgeliefert werden, ist die Datenträgervollverschlüsselung standardmäßig aktiviert, um den Schutz von Daten auf verlorenen oder gestohlenen Geräten zu verbessern. Geräte, die Das Update auf L kann unter Einstellungen > Sicherheit .
- Verbesserte Datenträgervollverschlüsselung. Das Nutzerpasswort lautet
mit
scrypt
vor Brute-Force-Angriffen geschützt sind. ist der Schlüssel an den Hardware-Schlüsselspeicher gebunden, um zu verhindern, externen Angriffen. Wie immer werden das geheime Passwort für die Android-Displaysperre und der Verschlüsselungsschlüssel des Geräts nicht vom Gerät gesendet oder für eine App freigegeben. - Android-Sandbox mit SELinux verstärkt Android – jetzt erfordert SELinux im erzwungenen Modus für alle Domains. SELinux ist ein MAC-System (obligatorisch Access Control) im Linux-Kernel zur Erweiterung des bestehenden Sicherheitsmodell der diskretionären Zugriffssteuerung (DAC) Diese neue Ebene bietet zusätzlichen Schutz vor potenziellen Sicherheitslücken.
- Smart Lock Android umfasst jetzt Trustlets, mehr Flexibilität beim Entsperren von Geräten. Mit Trustlets können Geräte beispielsweise automatisch entsperrt werden, wenn sie sich in der Nähe eines anderen vertrauenswürdigen Geräts befinden (über NFC, Bluetooth) oder von einer Person mit einem vertrauenswürdigen Gesicht verwendet werden.
- Mehrnutzer-, eingeschränktes Profil- und Gastmodus für Smartphones und Tablets. Android unterstützt jetzt mehrere Nutzer auf Smartphones und bietet einen Gastmodus, mit dem Sie anderen Nutzern einfachen temporären Zugriff auf Ihr Gerät gewähren können, ohne ihnen Zugriff auf Ihre Daten und Apps zu gewähren.
- Updates für WebView ohne OTA WebView kann jetzt unabhängig vom Framework und ohne System-OTA aktualisiert werden. So können potenzielle Sicherheitsprobleme in WebView schneller behoben werden.
- Aktualisierte Kryptografie für HTTPS und TLS/SSL TLSv1.2 und TLSv1.1 sind jetzt aktiviert, Forward Secrecy wird jetzt bevorzugt, AES-GCM ist jetzt aktiviert und schwache Chiffrensammlungen (MD5, 3DES und Export-Chiffrensammlungen) sind jetzt deaktiviert. Weitere Informationen finden Sie unter https://developer.android.com/reference/javax/net/ssl/SSLSocket.html.
- Unterstützung für nicht PIE-Linker entfernt Für Android müssen jetzt alle dynamisch verknüpften ausführbaren Dateien PIE (Position Independent Executables) unterstützen. Dadurch wird der Adressraum von Android erweitert. Layout Randomization (ASLR) zu implementieren.
- FORTIFY_SOURCE-Verbesserungen. Die folgende libc
Funktionen implementieren jetzt den Schutz von FORTIFY_SOURCE:
stpcpy()
,stpncpy()
,read()
,recvfrom()
FD_CLR()
,FD_SET()
undFD_ISSET()
. Dies bietet Schutz vor Sicherheitslücken, die durch Beschädigung des Arbeitsspeichers durch diese Funktionen entstehen. - Sicherheitskorrekturen. Android 5.0 enthält zudem Fehlerbehebungen für Android-spezifische Sicherheitslücken. Die Informationen zu diesen Sicherheitslücken wurden wurden Open Handset Alliance-Mitgliedern zur Verfügung gestellt und Fehlerbehebungen sind verfügbar in Open-Source-Projekt von Android Zur Verbesserung der Sicherheit sind diese Korrekturen möglicherweise auch auf einigen Geräten mit älteren Android-Versionen verfügbar.
Android 4 und niedriger
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzenden. Im Folgenden finden Sie einige der Sicherheitsverbesserungen, die in Android 4.4 verfügbar sind:
- Die Android-Sandbox wird durch SELinux verstärkt. Android verwendet SELinux jetzt im Erzwingenmodus. SELinux ist eine obligatorische MAC-System (Access Control) im Linux-Kernel zur Erweiterung der vorhandenen Sicherheitsmodell auf Grundlage der diskretionären Zugriffssteuerung (DAC) Dies bietet zusätzlichen Schutz vor potenziellen Sicherheitslücken.
- VPN pro Nutzer: Auf Geräten mit mehreren Nutzern werden VPNs jetzt pro Nutzer angewendet. Dadurch kann ein Nutzer den gesamten Netzwerkverkehr über ein VPN leiten ohne andere Nutzer des Geräts zu beeinträchtigen.
- Unterstützung von ECDSA-Anbietern in AndroidKeyStore Android hat jetzt einen Schlüsselspeicheranbieter, der die Verwendung von ECDSA- und DSA-Algorithmen ermöglicht.
- Warnungen zur Geräteüberwachung Android warnt Nutzer, wenn dem Gerätezertifikatsspeicher ein Zertifikat hinzugefügt wurde, mit dem der verschlüsselte Netzwerkverkehr überwacht werden kann.
- FORTIFY_SOURCE Android unterstützt jetzt FORTIFY_SOURCE-Ebene 2 und der gesamte Code wird mit diesen Schutzmaßnahmen kompiliert. FORTIFY_SOURCE wurde für die Zusammenarbeit mit Clang.
- Zertifikats-Pinning Android 4.4 erkennt und verhindert die Verwendung betrügerischer Google-Zertifikate, die bei der sicheren SSL/TLS-Kommunikation verwendet werden.
- Sicherheitskorrekturen. Android 4.4 enthält außerdem Fehlerkorrekturen für Android-spezifische Sicherheitslücken. Informationen zu diesen Sicherheitslücken wurden Open zur Verfügung gestellt. Mitglieder und Fehlerbehebungen der Handset Alliance sind in Android Open Source verfügbar Projekt Zur Verbesserung der Sicherheit sind diese Korrekturen möglicherweise auch auf einigen Geräten mit älteren Android-Versionen verfügbar.
Jede Android-Version enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Im Folgenden sind einige der verfügbaren Sicherheitsverbesserungen aufgeführt. in Android 4.3:
- Die Android-Sandbox wird durch SELinux verstärkt. In dieser Version wird die Android-Sandbox mit dem SELinux-System zur obligatorischen Zugriffssteuerung (Mandatory Access Control, MAC) im Linux-Kernel verstärkt. SELinux ist für Nutzer und Entwickelnde unsichtbar und macht sie das bestehende Android-Sicherheitsmodell unter Einhaltung der Kompatibilität mit bestehenden Apps. Um die laufende Kompatibilität zu gewährleisten, ermöglicht diese Version die Verwendung von SELinux im permissiven Modus. In diesem Modus werden alle Richtlinienverstöße protokolliert, Apps werden aber nicht beeinträchtigt und das Systemverhalten bleibt unverändert.
- Keine
setuid
- odersetgid
-Programme Unterstützung für Dateisystemfunktionen für Android-Systemdateien hinzugefügt und allesetuid
- odersetgid
-Programme entfernt Dadurch wird die Angriffsfläche des Root-Benutzers und die Wahrscheinlichkeit potenzieller Sicherheitslücken verringert. - ADB-Authentifizierung Ab Android 4.2.2 sind Verbindungen zu ADB: mit einem RSA-Schlüsselpaar authentifiziert. Dies verhindert die unbefugte Nutzung von ADB, bei der der Angreifer physischen Zugriff auf ein Gerät hat.
- Setuid für Android-Apps einschränken
Die
/system
-Partition wird jetzt als nosuid für von Zygote erzeugte Prozesse bereitgestellt, wodurch Android-Apps daran gehindert werden,setuid
-Programme auszuführen. Dadurch wird die Angriffsfläche des Root-Benutzers und die Wahrscheinlichkeit potenzieller Sicherheitslücken verringert. - Funktionsbeschränkung.
Android-Zygote und ADB verwenden jetzt
prctl(PR_CAPBSET_DROP)
, um und unnötige Funktionen vor der Ausführung von Anwendungen. Dadurch wird verhindert, dass Android-Apps und über die Shell gestartete Apps privilegierte Berechtigungen erhalten. - AndroidKeyStore-Anbieter. Android hat jetzt einen Schlüsselspeicheranbieter, Anwendungen zum Erstellen exklusiver Nutzungsschlüssel. So erhalten Apps eine API zum Erstellen oder Speichern privater Schlüssel, die von anderen Apps nicht verwendet werden können.
- KeyChain
isBoundKeyAlgorithm
. Die Keychain API bietet jetzt eine Methode, (isBoundKeyType
), mit der Apps bestätigen können, dass systemweite Schlüssel vorhanden sind an einen Hardware-Root of Trust für das Gerät gebunden. So können Sie private Schlüssel erstellen oder speichern, die auch bei einem Root-Hack nicht vom Gerät exportiert werden können. NO_NEW_PRIVS
Android-Zygote verwendet jetztprctl(PR_SET_NO_NEW_PRIVS)
, um das Hinzufügen zu blockieren bevor der App-Code ausgeführt wird. Dieses Android-Apps daran gehindert werden, Aktionen auszuführen, Rechte durch execve ausweiten. (Hierfür ist die Linux Kernel-Version 3.5 erforderlich. oder höher).FORTIFY_SOURCE
VerbesserungenFORTIFY_SOURCE
wurde unter Android x86 und MIPS aktiviert undstrchr()
-,strrchr()
-,strlen()
- undumask()
-Anrufe wurden gehärtet. So können potenzielle Sicherheitslücken bei der Speicherbeschädigung oder nicht abgeschlossene Stringkonstanten erkannt werden.- Schutzmaßnahmen für die Standortverschiebung: Lesegeschützte Verschiebungen (relro) für statisch verknüpfte ausführbare Dateien aktiviert und alle Textverschiebungen im Android-Code entfernt Dies bietet einen gestaffelten Schutz vor potenzieller Speicherbeschädigung Sicherheitslücken.
- Verbesserter EntropyMixer. EntropyMixer schreibt jetzt zusätzlich zur periodischen Mischung auch beim Herunterfahren oder Neustarten Entropie. So können alle Entropie erzeugt, die beim Einschalten von Geräten erzeugt wird, und ist besonders nützlich, für Geräte, die sofort nach der Bereitstellung neu gestartet werden.
- Sicherheitsfixes Android 4.3 enthält auch Fehlerbehebungen für Android-spezifische Sicherheitslücken. Informationen zu diesen Sicherheitslücken wurden den Mitgliedern der Open Handset Alliance zur Verfügung gestellt. Korrekturen sind im Android Open Source-Projekt verfügbar. Zur Verbesserung der Sicherheit sind diese Korrekturen möglicherweise auch auf einigen Geräten mit älteren Android-Versionen verfügbar.
Android bietet ein mehrstufiges Sicherheitsmodell, das im Artikel Android Übersicht über die Sicherheit. Jedes Android-Update enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Im Folgenden finden Sie einige der Sicherheitsverbesserungen, die in Android 4.2 eingeführt wurden:
- App-Überprüfung: Nutzer können die Funktion „Apps überprüfen“ aktivieren und Apps vor der Installation von einem App-Überprüfer prüfen lassen. Die App-Überprüfung kann Nutzer warnen, wenn sie versuchen, eine App zu installieren, die möglicherweise schädlich; Wenn eine App besonders schädlich ist, kann sie die Installation blockieren.
- Mehr Kontrolle über Premium-SMS: Android zeigt eine Benachrichtigung an, wenn eine App versucht, eine SMS an eine Kurzwahlnummer zu senden, für die Premiumdienste verwendet werden, die zusätzliche Kosten verursachen können. Der Nutzer kann entscheiden, ob er um die Nachricht zu senden oder zu blockieren.
- Durchgehend aktives VPN:Das VPN kann so konfiguriert werden, dass Apps Netzwerkzugriff, bis eine VPN-Verbindung hergestellt ist. So wird verhindert, dass Apps Daten über andere Netzwerke senden.
- Zertifikats-Pinning:Die Android-Hauptbibliotheken unterstützen jetzt Anpinnen von Zertifikaten. Für angepinnte Domains wird ein Zertifikatsüberprüfungsfehler ausgegeben, wenn das Zertifikat nicht mit einer Reihe erwarteter Zertifikate verknüpft ist. So wird ein möglicher Manipulationsversuch von Zertifizierungsstellen verhindert.
- Verbesserte Darstellung der Android-Berechtigungen:Berechtigungen sind organisiert. in Gruppen unterteilen, die für Nutzende leichter verständlich sind. Bei der Überprüfung der kann der Nutzer auf die Berechtigung klicken, um detailliertere Informationen zur Berechtigung.
- installd-Härtung: Der
installd
-Daemon wird nicht als Root-Nutzer ausgeführt, wodurch die potenzielle Angriffsfläche für die Ausweitung von Root-Berechtigungen reduziert wird. - Init-Script-Härtung: Für Init-Scripts werden jetzt
O_NOFOLLOW
-Semantiken angewendet, um Symlink-bezogene Angriffe zu verhindern. FORTIFY_SOURCE
: Android unterstützt jetztFORTIFY_SOURCE
. Dies wird verwendet von Systembibliotheken und Apps, um Speicherschäden zu vermeiden.- ContentProvider-Standardkonfiguration:Apps, die auf eine API ausgerichtet sind
Bei Ebene 17 ist
export
standardmäßig für jede Stufe auffalse
festgelegt. Inhalte Anbieter, wodurch die standardmäßige Angriffsfläche für Apps reduziert wird. - Kryptografie: Die Standardimplementierungen von SecureRandom und Cipher.RSA wurden so geändert, dass OpenSSL verwendet wird. SSL Socket-Unterstützung für TLSv1.1 und TLSv1.2 hinzugefügt. mit OpenSSL 1.0.1
- Sicherheitsfixes: Zu den aktualisierten Open-Source-Bibliotheken mit Sicherheitsfixes gehören WebKit, libpng, OpenSSL und LibXML. Android 4.2 enthält außerdem Korrekturen für Android-spezifische Sicherheitslücken. Die Informationen zu diesen Sicherheitslücken wurden wurden Open Handset Alliance-Mitgliedern zur Verfügung gestellt und Fehlerbehebungen sind verfügbar in Open-Source-Projekt von Android Aus Sicherheitsgründen werden einige Geräte mit von Android-Versionen können diese Fehler behoben werden.
Android bietet ein mehrstufiges Sicherheitsmodell, das im Android Übersicht über die Sicherheit. Jedes Android-Update enthält Dutzende von Sicherheitsverbesserungen zum Schutz der Nutzer. Im Folgenden finden Sie einige der Sicherheitsverbesserungen, die in den Android-Versionen 1.5 bis 4.1 eingeführt wurden:
- Android 1.5
- ProPolice zum Verhindern von Stack-Buffer-Überläufen (-fstack-protector)
- safe_iop zur Reduzierung von Ganzzahlüberläufen
- Erweiterungen für OpenBSD-dlmalloc, um Double-Free()-Sicherheitslücken und Chunk-Konsolidierungsangriffe zu verhindern. Chunk-Konsolidierungsangriffe sind eine gängige Methode, um Heap-Beschädigungen auszunutzen.
- OpenBSD-calloc, um Ganzzahlüberläufe während der Arbeitsspeicherzuweisung zu verhindern
- Android 2.3
- Schutz vor Sicherheitslücken bei Formatstrings (-Wformat-security -Werror=format-security)
- Hardwarebasiertes No eXecute (NX), um die Codeausführung auf dem Stack und dem Heap zu verhindern
- Linux-mmap_min_addr zur Begrenzung der Berechtigungseskalierung durch Nullzeigerverweise (in Android 4.1 weiter verbessert)
- Android 4.0
- Address Space Layout Randomization (ASLR) zur zufälligen Auswahl wichtiger Speicherplätze
- Android 4.1
- Unterstützung von PIE (Position Independent Executable)
- Schreibgeschützte Verschiebungen / sofortige Bindung (-Wl,-z,relro -Wl,-z,now)
- dmesg_restrict aktiviert (vermeidung von gehackten Kernel-Adressen)
- kptr_restrict aktiviert (Lecks von Kerneladressen vermeiden)