Das Android-Sicherheitsteam ist für die Verwaltung von Sicherheitslücken verantwortlich, die in der Android-Plattform und vielen der wichtigsten Android-Apps gefunden wurden, die mit Android-Geräten gebündelt sind.
Das Android-Sicherheitsteam findet Sicherheitslücken durch interne Recherchen und reagiert auch auf von Dritten gemeldete Fehler. Zu den externen Fehlern gehören Probleme, die über das Formular für Sicherheitslücken gemeldet wurden, veröffentlichte und vorveröffentlichte akademische Forschung, Upstream-Open-Source-Projektleiter, Benachrichtigungen von unseren Geräteherstellerpartnern und öffentlich bekannt gegebene Probleme, die in Blogs oder sozialen Medien gepostet wurden.
Sicherheitsprobleme melden
Entwickler, Android-Nutzer oder Sicherheitsforscher können das Android-Sicherheitsteam über das Formular zur Meldung von Sicherheitslücken über potenzielle Sicherheitsprobleme informieren.
Als Sicherheitsprobleme gekennzeichnete Bugs sind extern nicht sichtbar, können aber nach der Bewertung oder Behebung des Problems sichtbar gemacht werden. Wenn Sie einen Patch oder einen CTS-Test (Compatibility Test Suite) zur Behebung eines Sicherheitsproblems einreichen möchten, hängen Sie ihn bitte an den Fehlerbericht an und warten Sie auf eine Antwort, bevor Sie den Code in AOSP hochladen.
Fehler priorisieren
Die erste Aufgabe beim Umgang mit einer Sicherheitslücke besteht darin, den Schweregrad des Fehlers und die betroffene Android-Komponente zu ermitteln. Anhand der Schwere wird die Priorität des Problems festgelegt. Die Komponente bestimmt, wer den Fehler behebt, wer benachrichtigt wird und wie die Fehlerbehebung für die Nutzer bereitgestellt wird.
Kontexttypen
In dieser Tabelle finden Sie die Definitionen für Hardware- und Softwaresicherheitskontexte. Der Kontext kann durch die Sensibilität der Daten, die in der Regel verarbeitet werden, oder durch den Bereich, in dem sie ausgeführt wird, definiert werden. Nicht alle Sicherheitskontexte gelten für alle Systeme. Diese Tabelle ist von der niedrigsten bis zur höchsten Berechtigung sortiert.
Kontexttyp | Typdefinition |
---|---|
Eingeschränkter Kontext |
Eine eingeschränkte Ausführungsumgebung, in der nur die minimalen Berechtigungen bereitgestellt werden. Beispielsweise vertrauenswürdige Apps, die nicht vertrauenswürdige Daten in einer Sandbox-Umgebung verarbeiten. |
Kontext ohne Berechtigungen |
Eine typische Ausführungsumgebung, die von nicht privilegiertem Code erwartet wird. Beispiel: Eine Android-App, die in einer SELinux-Domain mit dem Attribut untrusted_app_all ausgeführt wird.
|
Kontext mit erhöhten Berechtigungen |
Eine privilegierte Ausführungsumgebung, die möglicherweise Zugriff auf erweiterte Berechtigungen hat, personenbezogene Daten mehrerer Nutzer verarbeitet und/oder die Systemintegrität aufrechterhält. Beispiel: Eine Android-App mit Funktionen, die von der SELinux-Domain untrusted_app verboten sind, oder mit Zugriff auf privileged|signature -Berechtigungen.
|
Betriebssystemkernel |
Funktionen, die:
|
Trusted Hardware Base (THB) | Discrete Hardwarekomponenten, in der Regel auf dem SoC, die für die Hauptanwendungsfälle des Geräts wichtige Funktionen bereitstellen (z. B. Mobilfunk-Basisband, DSPs, GPUs und ML-Prozessoren). |
Bootloader-Kette | Eine Komponente, die das Gerät beim Starten konfiguriert und dann die Kontrolle an das Android-Betriebssystem weitergibt. |
Vertrauenswürdige Ausführungsumgebung (Trusted Execution Environment, TEE) | Eine Komponente, die selbst vor einem feindseligen Betriebssystemkernel geschützt ist (z. B. TrustZone und Hypervisoren wie pKVM, die virtuelle Maschinen vor dem Betriebssystemkernel schützen). |
Secure Enclave / Secure Element (SE) |
Eine optionale Hardwarekomponente, die so konzipiert ist, dass sie vor allen anderen Komponenten auf dem Gerät und vor physischen Angriffen geschützt ist, wie in der Einführung in Secure Elements definiert. Dazu gehört auch der Titan M-Chip, der in einigen Android-Geräten vorhanden ist. |
Schweregrad
Der Schweregrad eines Bugs spiegelt in der Regel den potenziellen Schaden wider, der entstehen könnte, wenn ein Bug erfolgreich ausgenutzt wird. Verwenden Sie die folgenden Kriterien, um den Schweregrad zu bestimmen.
Bewertung | Folge einer erfolgreichen Ausnutzung |
---|---|
Kritisch |
|
Hoch |
|
Mäßig |
|
Niedrig |
|
Negligible Security Impact (NSI) |
|
Preismodifikatoren
Der Schweregrad von Sicherheitslücken lässt sich zwar oft leicht erkennen, die Bewertung kann sich jedoch je nach Umständen ändern.
Grund | Effekte |
---|---|
Erfordert die Ausführung als privilegierter Kontext, um den Angriff auszuführen (nicht zutreffend für TEE, SE und Hypervisoren wie pKVM) | -1 Schweregrad |
Sicherheitslückenspezifische Details begrenzen die Auswirkungen des Problems | -1 Schweregrad |
Umgehung der biometrischen Authentifizierung, für die biometrische Daten direkt vom Geräteeigentümer erforderlich sind | -1 Schweregrad |
Compiler- oder Plattformkonfigurationen mindern eine Sicherheitslücke im Quellcode | „Mittel“, wenn die zugrunde liegende Sicherheitslücke „Mittel“ oder höher ist |
Erfordert physischen Zugriff auf die internen Komponenten des Geräts und ist auch möglich, wenn das Gerät ausgeschaltet ist oder seit dem Einschalten nicht entsperrt wurde. | -1 Schweregrad |
Erfordert physischen Zugriff auf die internen Komponenten des Geräts, während es eingeschaltet und zuvor entsperrt wurde | -2 Schweregrad |
Ein lokaler Angriff, für den die Bootloader-Kette entsperrt werden muss | Nicht höher als „Niedrig“ |
Ein lokaler Angriff, für den der Entwicklermodus oder dauerhafte Einstellungen des Entwicklermodus derzeit auf dem Gerät aktiviert sein müssen (kein Fehler im Entwicklermodus selbst). | Nicht höher als „Niedrig“ |
Wenn keine SELinux-Domain den Vorgang gemäß der von Google bereitgestellten SEPolicy ausführen kann | Geringfügige Auswirkungen auf die Sicherheit |
Lokal, proximal und fern
Ein Remote-Angriffsvektor gibt an, dass der Fehler ausgenutzt werden kann, ohne eine App zu installieren oder physischen Zugriff auf ein Gerät zu haben. Dazu gehören auch Fehler, die durch das Aufrufen einer Webseite, das Lesen einer E-Mail, den Empfang einer SMS oder die Verbindung zu einem feindseligen Netzwerk ausgelöst werden können.
Proximale Angriffsvektoren gelten als remote. Dazu gehören auch Fehler, die nur von einem Angreifer ausgenutzt werden können, der sich physisch in der Nähe des Zielgeräts befindet, z. B. ein Fehler, für den fehlerhafte WLAN- oder Bluetooth-Pakete gesendet werden müssen. Wir betrachten Ultrabreitband- (UWB-) und NFC-basierte Angriffe als räumlich nah und daher als unwahrscheinlich.
Für lokale Angriffe muss der Angreifer bereits Zugriff auf das Opfer haben. In einem hypothetischen Beispiel, das sich nur auf Software bezieht, könnte dies über eine schädliche App erfolgen, die das Opfer installiert hat, oder über eine Instant App, für deren Ausführung es seine Einwilligung gegeben hat.
Geräte, die erfolgreich gekoppelt wurden (z. B. Bluetooth-Zubehör), gelten als lokal. Wir unterscheiden zwischen einem gekoppelten Gerät und einem Gerät, das an einem Kopplungsvorgang teilnimmt.
- Fehler, die die Fähigkeit des Nutzers beeinträchtigen, das andere Gerät zu identifizieren, mit dem gekoppelt wird (d.h. Authentifizierung), gelten als proximär und daher als unwahrscheinlich.
- Fehler, die während des Kopplungsvorgangs auftreten, aber vor der Nutzereinwilligung (d.h. Autorisierung) auftreten, gelten als proximär und daher als unwahrscheinlich.
- Fehler, die nach der Einwilligung des Nutzers auftreten, gelten als lokal, auch wenn die Kopplung letztendlich fehlschlägt.
Physische Angriffsvektoren gelten als lokal. Dazu gehören Fehler, die nur von einem Angreifer ausgenutzt werden können, der physischen Zugriff auf das Gerät hat, z. B. ein Fehler auf dem Sperrbildschirm oder ein Fehler, für den ein USB-Kabel angeschlossen werden muss. Da Geräte häufig entsperrt sind, wenn sie an ein USB-Gerät angeschlossen sind, sind Angriffe, für die eine USB-Verbindung erforderlich ist, unabhängig davon, ob das Gerät entsperrt werden muss oder nicht, gleich schwerwiegend.
Netzwerksicherheit
Android geht davon aus, dass alle Netzwerke feindlich sind und Angriffe ausführen oder den Traffic ausspionieren könnten. Die Sicherheit auf der Sicherungsschicht (z. B. WLAN-Verschlüsselung) schützt die Kommunikation zwischen einem Gerät und dem Zugangspunkt, mit dem es verbunden ist, aber nicht die verbleibenden Glieder in der Kette zwischen dem Gerät und den Servern, mit denen es kommuniziert.
Im Gegensatz dazu schützt HTTPS in der Regel die gesamte Kommunikation Ende-zu-Ende, indem die Daten an der Quelle verschlüsselt und erst dann entschlüsselt und überprüft werden, wenn sie ihr Ziel erreicht haben. Aus diesem Grund werden Sicherheitslücken, die die Netzwerksicherheit der Sicherungsschicht beeinträchtigen, als weniger schwerwiegend eingestuft als Sicherheitslücken in HTTPS/TLS: Die WLAN-Verschlüsselung allein reicht für die meisten Kommunikationsformen im Internet nicht aus.
Biometrische Authentifizierung
Die biometrische Authentifizierung ist eine Herausforderung und selbst die besten Systeme können durch eine ähnliche Übereinstimmung getäuscht werden (siehe Android Developers Blog: Lockscreen and authentication improvements in Android 11). Diese Schweregrade unterscheiden zwischen zwei Angriffsklassen und sollen das tatsächliche Risiko für den Endnutzer widerspiegeln.
Die erste Angriffsklasse ermöglicht es, die biometrische Authentifizierung auf generalisierbare Weise zu umgehen, ohne hochwertige biometrische Daten des Eigentümers. Wenn ein Angreifer beispielsweise einen Kaugummi auf einen Fingerabdrucksensor legen kann und dieser aufgrund der Rückstände auf dem Sensor Zugriff auf das Gerät gewährt, ist dies ein einfacher Angriff, der auf jedem anfälligen Gerät ausgeführt werden kann. Es sind keine Kenntnisse zum Eigentümer des Geräts erforderlich. Da er generalisierbar ist und sich potenziell auf eine größere Anzahl von Nutzern auswirken kann, erhält dieser Angriff die volle Bewertung der Schwere (z. B. „Hoch“ für einen Bypass des Sperrbildschirms).
Die andere Art von Angriffen umfasst in der Regel ein Präsentationsangriffsinstrument (Spoof), das auf dem Geräteinhaber basiert. Manchmal sind diese biometrischen Informationen relativ leicht zu erhalten. Wenn beispielsweise das Profilbild einer Person in den sozialen Medien ausreicht, um die biometrische Authentifizierung zu täuschen, erhält ein biometrischer Bypass die höchste Bewertung. Wenn ein Angreifer jedoch biometrische Daten direkt vom Geräteeigentümer abrufen muss (z. B. einen Infrarotscan seines Gesichts), ist das eine so große Hürde, dass die Anzahl der vom Angriff betroffenen Personen begrenzt ist. Daher wird ein Modifikator von − 1 angewendet.
SYSTEM_ALERT_WINDOW und Tapjacking
Informationen zu unseren Richtlinien zu SYSTEM_ALERT_WINDOW
und Tapjacking finden Sie auf der Seite
Bugs ohne Sicherheitsrisiko der BugHunter University im Abschnitt Tapjacking/Overlay SYSTEM_ALERT_WINDOW-Sicherheitslücke auf einem nicht sicherheitskritischen Bildschirm.
Sicherheit für mehrere Nutzer in Android Automotive OS
Android Automotive OS verwendet ein Sicherheitsmodell für mehrere Nutzer, das sich von den anderen Formfaktoren unterscheidet. Jeder Android-Nutzer soll von einer anderen natürlichen Person verwendet werden. Beispielsweise kann ein vorübergehender Gastnutzer einem Freund zugewiesen werden, der sich das Fahrzeug vom Eigentümer leiht. Für solche Anwendungsfälle haben Nutzer standardmäßig Zugriff auf die für die Nutzung des Fahrzeugs erforderlichen Komponenten, z. B. die WLAN- und Mobilfunkeinstellungen.
Betroffene Komponente
Das Entwicklungsteam, das für die Behebung des Fehlers verantwortlich ist, hängt davon ab, in welcher Komponente der Fehler auftritt. Es kann sich um eine Kernkomponente der Android-Plattform, einen Kerneltreiber eines OEMs oder eine der vorinstallierten Apps auf Pixel-Geräten handeln.
Fehler im AOSP-Code werden vom Android-Entwicklerteam behoben. Bugs mit geringer Priorität, Bugs in bestimmten Komponenten oder bereits öffentlich bekannte Bugs können direkt im öffentlich verfügbaren AOSP-Hauptzweig behoben werden. Andernfalls werden sie zuerst in unseren internen Repositories behoben.
Die Komponente ist auch ein Faktor dafür, wie Nutzer Updates erhalten. Ein Fehler im Framework oder Kernel erfordert ein Over-the-Air-Firmwareupdate (OTA), das von jedem OEM bereitgestellt werden muss. Ein Fehler in einer bei Google Play veröffentlichten App oder Bibliothek (z. B. Gmail, Google Play-Dienste oder WebView) kann Android-Nutzern als Update von Google Play gesendet werden.
Partner benachrichtigen
Wenn eine Sicherheitslücke in AOSP in einem Android-Sicherheitsbulletin behoben wird, benachrichtigen wir Android-Partner über die Details des Problems und stellen Patches bereit. Die Liste der unterstützten Backport-Versionen ändert sich mit jedem neuen Android-Release. Eine Liste der unterstützten Geräte erhalten Sie vom Gerätehersteller.
Code in AOSP veröffentlichen
Wenn sich der Sicherheitsfehler in einer AOSP-Komponente befindet, wird die Korrektur an AOSP gesendet, nachdem das OTA für Nutzer freigegeben wurde. Korrekturen für Probleme mit geringerer Schwere können direkt an den Hauptzweig von AOSP gesendet werden, bevor sie für Geräte über eine OTA-Aktualisierung verfügbar sind.
Android-Updates erhalten
Updates für das Android-System werden in der Regel über OTA-Update-Pakete auf Geräte übertragen. Diese Updates können vom OEM stammen, der das Gerät hergestellt hat, oder vom Mobilfunkanbieter, der den Dienst für das Gerät bereitstellt. Google Pixel-Geräteupdates werden vom Google Pixel-Team bereitgestellt, nachdem sie ein TA-Prüfverfahren (Technical Acceptance) des Mobilfunkanbieters durchlaufen haben. Google veröffentlicht auch Pixel-Factory-Images, die auf Geräten per Sideload installiert werden können.
Google-Dienste aktualisieren
Neben der Bereitstellung von Patches für Sicherheitslücken prüft das Android-Sicherheitsteam Sicherheitslücken, um festzustellen, ob es andere Möglichkeiten gibt, Nutzer zu schützen. Google Play scannt beispielsweise alle Apps und entfernt alle Apps, die versuchen, einen Sicherheitsfehler auszunutzen. Bei Apps, die nicht über Google Play installiert wurden, können Geräte mit Google Play-Diensten auch die Funktion Apps überprüfen verwenden, um Nutzer vor potenziell schädlichen Apps zu warnen.
Weitere Informationen
Informationen für Android-App-Entwickler: https://developer.android.com
Sicherheitsinformationen finden Sie auf den Android Open Source- und Entwicklerwebsites. Gute Ausgangspunkte:
Berichte
Gelegentlich veröffentlicht das Android-Sicherheitsteam Berichte oder Whitepaper. Weitere Informationen finden Sie unter Sicherheitsberichte.