System- und Kernelsicherheit

Auf Betriebssystemebene bietet die Android-Plattform die Sicherheit des Linux-Kernels sowie eine IPC-Funktion (Secure Inter-Process Communication), um eine sichere Kommunikation zwischen Anwendungen zu ermöglichen, die in verschiedenen Prozessen ausgeführt werden. Diese Sicherheitsfunktionen auf Betriebssystemebene stellen sicher, dass selbst nativer Code durch die Anwendungssandbox eingeschränkt wird. Unabhängig davon, ob dieser Code das Ergebnis eines enthaltenen Anwendungsverhaltens oder der Ausnutzung einer Anwendungsschwachstelle ist, ist das System darauf ausgelegt, zu verhindern, dass die betrügerische Anwendung andere Anwendungen, das Android-System oder das Gerät selbst beschädigt. Unter Kernel-Konfiguration finden Sie Maßnahmen, die Sie ergreifen können, um den Kernel auf Ihren Geräten zu stärken. Erforderliche Einstellungen finden Sie im Android Compatibility Definition Document (CDD) .

Linux-Sicherheit

Die Grundlage der Android-Plattform ist der Linux-Kernel. Der Linux-Kernel ist seit Jahren weit verbreitet und wird in Millionen sicherheitsrelevanter Umgebungen eingesetzt. Im Laufe seiner Geschichte, in der es von Tausenden von Entwicklern ständig erforscht, angegriffen und repariert wurde, hat sich Linux zu einem stabilen und sicheren Kernel entwickelt, dem viele Unternehmen und Sicherheitsexperten vertrauen.

Als Basis für eine mobile Computerumgebung stellt der Linux-Kernel Android mehrere wichtige Sicherheitsfunktionen zur Verfügung, darunter:

  • Ein benutzerbasiertes Berechtigungsmodell
  • Prozessisolation
  • Erweiterbarer Mechanismus für sicheren IPC
  • Die Möglichkeit, unnötige und potenziell unsichere Teile des Kernels zu entfernen

Als Mehrbenutzer-Betriebssystem besteht ein grundlegendes Sicherheitsziel des Linux-Kernels darin, Benutzerressourcen voneinander zu isolieren. Die Linux-Sicherheitsphilosophie besteht darin, Benutzerressourcen voreinander zu schützen, Linux:

  • Verhindert, dass Benutzer A die Dateien von Benutzer B liest
  • Stellt sicher, dass Benutzer A den Speicher von Benutzer B nicht erschöpft
  • Stellt sicher, dass Benutzer A die CPU-Ressourcen von Benutzer B nicht erschöpft
  • Stellt sicher, dass Benutzer A die Geräte von Benutzer B (z. B. Telefonie, GPS und Bluetooth) nicht überlastet.

Die Anwendungssandbox

Die Anwendungssicherheit von Android wird durch die Anwendungssandbox gewährleistet, die Apps voneinander isoliert und Apps und das System vor bösartigen Apps schützt. Weitere Einzelheiten finden Sie unter Anwendungssandbox .

Systempartition und abgesicherter Modus

Die verschiedenen integritätsgeschützten Partitionen enthalten den Android-Kernel sowie die Betriebssystembibliotheken, die Anwendungslaufzeit, das Anwendungsframework und die Anwendungen. Diese Partition ist schreibgeschützt. Wenn ein Benutzer das Gerät im abgesicherten Modus startet, werden Drittanbieteranwendungen möglicherweise manuell vom Gerätebesitzer gestartet, jedoch nicht standardmäßig.

Dateisystemberechtigungen

In einer UNIX-ähnlichen Umgebung stellen Dateisystemberechtigungen sicher, dass ein Benutzer die Dateien eines anderen Benutzers nicht ändern oder lesen kann. Bei Android läuft jede Anwendung als eigener Benutzer. Sofern der Entwickler die Dateien nicht ausdrücklich mit anderen Anwendungen teilt, können von einer Anwendung erstellte Dateien nicht von einer anderen Anwendung gelesen oder geändert werden.

Linux mit verbesserter Sicherheit

Android verwendet Security-Enhanced Linux (SELinux), um Zugriffskontrollrichtlinien anzuwenden und eine obligatorische Zugriffskontrolle (Mac) für Prozesse einzurichten. Weitere Informationen finden Sie unter „Security-Enhanced Linux in Android“ .

Verifizierter Start

Android 7.0 und höher unterstützt einen strikt erzwungenen verifizierten Start, was bedeutet, dass gefährdete Geräte nicht gestartet werden können. Der verifizierte Start garantiert die Integrität der Gerätesoftware, angefangen vom Hardware-Root of Trust bis hin zur Systempartition. Während des Startvorgangs überprüft jede Stufe kryptografisch die Integrität und Authentizität der nächsten Stufe, bevor sie ausgeführt wird.
Weitere Einzelheiten finden Sie unter Verifizierter Start .

Kryptographie

Android stellt eine Reihe kryptografischer APIs zur Verwendung durch Anwendungen bereit. Dazu gehören Implementierungen standardmäßiger und häufig verwendeter kryptografischer Grundelemente wie AES, RSA, DSA und SHA. Darüber hinaus werden APIs für Protokolle höherer Ebenen wie SSL und HTTPS bereitgestellt.

Android 4.0 führte die KeyChain- Klasse ein, um Anwendungen die Nutzung des Systemanmeldeinformationsspeichers für private Schlüssel und Zertifikatsketten zu ermöglichen.

Rooten von Geräten

Standardmäßig werden unter Android nur der Kernel und eine kleine Teilmenge der Kerndienste mit Root-Berechtigungen ausgeführt. SELinux schränkt weiterhin User-Space-Prozesse ein, die als Root ausgeführt werden. Der verifizierte Start verhindert, dass ein Benutzer oder Dienst mit Root-Berechtigungen das Betriebssystem dauerhaft ändert.

Die Möglichkeit, ein eigenes Android-Gerät zu ändern, ist für Entwickler, die mit der Android-Plattform arbeiten, wichtig. Auf vielen Android-Geräten haben Benutzer die Möglichkeit, den Bootloader zu entsperren, um die Installation eines alternativen Betriebssystems zu ermöglichen. Diese alternativen Betriebssysteme ermöglichen es einem Besitzer möglicherweise, Root-Zugriff zu erhalten, um Anwendungen und Systemkomponenten zu debuggen oder auf Funktionen zuzugreifen, die Anwendungen nicht über Android-APIs bereitgestellt werden.

Auf einigen Geräten kann eine Person mit physischer Kontrolle über ein Gerät und einem USB-Kabel ein neues Betriebssystem installieren, das dem Benutzer Root-Rechte gewährt. Um alle vorhandenen Benutzerdaten vor einer Gefährdung zu schützen, erfordert der Bootloader-Entsperrmechanismus, dass der Bootloader im Rahmen des Entsperrschritts alle vorhandenen Benutzerdaten löscht. Root-Zugriff, der durch die Ausnutzung eines Kernel-Bugs oder einer Sicherheitslücke erlangt wird, kann diesen Schutz umgehen.

Das Verschlüsseln von Daten mit einem auf dem Gerät gespeicherten Schlüssel schützt die Anwendungsdaten nicht vor Root-Benutzern auf gerooteten Geräten. Anwendungen können durch Verschlüsselung mit einem außerhalb des Geräts gespeicherten Schlüssel, z. B. auf einem Server oder einem Benutzerkennwort, eine Ebene des Datenschutzes hinzufügen. Dieser Ansatz kann vorübergehenden Schutz bieten, während der Schlüssel nicht vorhanden ist. Irgendwann muss der Schlüssel jedoch der Anwendung bereitgestellt werden, damit Root-Benutzer darauf zugreifen können.

Ein robusterer Ansatz zum Schutz von Daten vor Root-Benutzern ist der Einsatz von Hardwarelösungen. OEMs entscheiden sich möglicherweise für die Implementierung von Hardwarelösungen, die den Zugriff auf bestimmte Arten von Inhalten einschränken, wie z. B. DRM für die Videowiedergabe oder den NFC-bezogenen vertrauenswürdigen Speicher für Google Wallet. Im Falle eines verlorenen oder gestohlenen Geräts stellt die Speicherverschlüsselung sicher, dass auf Benutzerdaten nicht zugegriffen werden kann, ohne die Anmeldeinformationen des Benutzers für den Sperrbildschirm zu kennen.

Benutzersicherheitsfunktionen

Speicherverschlüsselung

Das CDD erfordert, dass alle Geräte, die mit Android 10 oder höher gestartet werden, und die meisten Geräte, die mit Android 6.0 oder höher gestartet werden, die Speicherverschlüsselung standardmäßig aktivieren.

Die aktuelle Android-Implementierung der Speicherverschlüsselung ist die dateibasierte Verschlüsselung in Kombination mit der Metadatenverschlüsselung . Bei der dateibasierten Verschlüsselung werden Dateiinhalte und -namen auf der Benutzerdatenpartition transparent verschlüsselt, wobei unterschiedliche Schlüssel für unterschiedliche Verzeichnisse verwendet werden. Es stellt mit Anmeldeinformationen und Geräten verschlüsselte Speicherverzeichnisse für jeden Benutzer bereit, einschließlich Arbeitsprofilen.

Die Metadatenverschlüsselung ergänzt die dateibasierte Verschlüsselung. Es verschlüsselt alle Blöcke auf der Benutzerdatenpartition, die nicht bereits durch dateibasierte Verschlüsselung verschlüsselt sind, und verwendet dazu einen Schlüssel, der nicht an die Sperrbildschirm-Anmeldeinformationen eines Benutzers gebunden ist, aber dennoch durch Verified Boot geschützt ist.

Sperrbildschirm-Anmeldeinformationsschutz

Android kann so konfiguriert werden, dass vom Benutzer eingegebene Sperrbildschirm-Anmeldeinformationen (PIN, Passwort oder Muster) überprüft werden, bevor Zugriff auf ein Gerät gewährt wird. Zusätzlich zur Verhinderung einer unbefugten Nutzung des Geräts schützt der Sperrbildschirm-Anmeldedatensatz den kryptografischen Schlüssel für mit Anmeldedaten verschlüsselte Daten. Ein Geräteadministrator kann die Verwendung von Lockscreen-Anmeldeinformationen und/oder Anmeldeinformationskomplexitätsregeln verlangen.

Geräteverwaltung

Android 2.2 und höher stellen die Android Device Administration API bereit, die Geräteverwaltungsfunktionen auf Systemebene bereitstellt. Beispielsweise nutzt die integrierte Android-E-Mail-Anwendung die APIs, um die Exchange-Unterstützung zu verbessern. Über die E-Mail-Anwendung können Exchange-Administratoren Anmeldeinformationsrichtlinien für den Sperrbildschirm – einschließlich alphanumerischer Passwörter oder numerischer PINs – geräteübergreifend durchsetzen. Administratoren können verlorene oder gestohlene Mobiltelefone auch aus der Ferne löschen (d. h. die Werkseinstellungen wiederherstellen).

Zusätzlich zur Verwendung in Anwendungen, die im Android-System enthalten sind, stehen diese APIs auch Drittanbietern von Geräteverwaltungslösungen zur Verfügung. Einzelheiten zur API finden Sie unter Geräteverwaltung .