ForschungKritisch

Android-GPU-Sicherheitshärtung: Angriffsfläche mit SELinux reduzieren

3 Min. LesezeitQuelle: Google Security Blog

Google und Arm stärken die Sicherheit von Mali-GPUs in Android-Geräten durch SELinux-basierte IOCTL-Restriktionen. Erfahren Sie, wie die Angriffsfläche minimiert wird.

Android-GPU-Sicherheitshärtung: Eine gemeinsame Initiative zur Reduzierung der Angriffsfläche

Das Android Security and Privacy Team von Google hat in Zusammenarbeit mit Arm neue Sicherheitsmaßnahmen zur Härtung der Mali-GPU implementiert – einer Komponente, die in Milliarden von Android-Geräten weltweit eingesetzt wird. Ziel der Initiative ist es, die Angriffsfläche des GPU-Treibers zu verringern, indem der Zugriff auf risikoreiche IOCTLs (Input/Output Controls) mithilfe von SELinux (Security-Enhanced Linux)-Richtlinien eingeschränkt wird.

Warum GPU-Sicherheit entscheidend ist

GPUs sind aufgrund ihrer Komplexität und ihres privilegierten Systemzugriffs zu einem bevorzugten Ziel für Angreifer geworden. Seit 2021 zielen die meisten Exploits, die auf Android-Kernel-Treiber basieren, auf GPUs ab – insbesondere auf die Schnittstelle zwischen dem User-Mode Driver (UMD) und dem Kernel-Mode Driver (KMD). Böswillige Eingaben können Schwachstellen in dieser Schnittstelle ausnutzen, was zu Speicherbeschädigungen (Memory Corruption) und Systemkompromittierungen führt.

Technischer Ansatz: Einschränkung von GPU-IOCTLs mit SELinux

Das Android Red Team und Arm haben die Mali-GPU-IOCTLs in drei Kategorien eingeteilt:

  • Unprivilegierte IOCTLs – Für den normalen Betrieb erforderlich, zugänglich für alle Anwendungen.
  • Instrumentierungs-IOCTLs – Werden für Debugging und Profiling verwendet, eingeschränkt auf shell- oder debuggable-Anwendungen.
  • Eingeschränkte IOCTLs – Veraltet oder nur für die Entwicklung, in Produktionsumgebungen blockiert.

Um diese Einschränkungen durchzusetzen, hat Google einen stufenweisen SELinux-Richtlinien-Rollout implementiert, um Störungen zu minimieren:

  1. Opt-In-Richtlinie – Zunächst auf ausgewählte System-Apps getestet, unter Verwendung eines neuen gpu_harden-SELinux-Attributs.
  2. Opt-Out-Richtlinie – Standardmäßig angewendete Härtung, wobei Entwickler Einschränkungen umgehen können durch:
    • Geräte mit Root-Zugriff
    • android:debuggable="true" im App-Manifest
    • Permanente SELinux-Richtlinienausnahmen

Implementierungsleitfaden für OEMs und Entwickler

Google hat einen Schritt-für-Schritt-Leitfaden für Partner bereitgestellt, um ähnliche Härtungsmaßnahmen zu übernehmen:

1. Nutzung des plattformweiten Härtungsmakros

Ein neues Makro in system/sepolicy/public/te_macros ermöglicht gerätespezifisches IOCTL-Filtering:

  • Erlaubt unprivilegierte IOCTLs für alle Anwendungen (appdomain).
  • Beschränkt Instrumentierungs-IOCTLs auf Debugging-Tools (shell, runas_app).
  • Blockiert veraltete IOCTLs basierend auf der Ziel-SDK-Version.

2. Definition gerätespezifischer IOCTL-Listen

OEMs müssen eine ioctl_macros-Datei im SELinux-Richtlinienverzeichnis ihres Geräts erstellen und die IOCTLs kategorisieren (z. B. mali_production_ioctls, mali_instrumentation_ioctls).

Beispiel:

define(`unpriv_gpu_ioctls', `0x0000, 0x0001, 0x0002')
define(`restricted_ioctls', `0x1110, 0x1111, 0x1112')
define(`instrumentation_gpu_ioctls', `0x2220, 0x2221, 0x2222')

Die offizielle IOCTL-Kategorisierung von Arm ist in ihrer r54p2-GPU-Dokumentation verfügbar.

3. Anwendung der Richtlinie auf das GPU-Gerät

Erstellen Sie eine gpu.te-Datei im SELinux-Richtlinienverzeichnis des Geräts und rufen Sie das Plattformmakro mit den definierten IOCTL-Listen auf.

4. Testen, Verfeinern und Durchsetzen

Folgen Sie den Best Practices für iterative SELinux-Richtlinienentwicklung und prüfen Sie Ablehnungsprotokolle (Denial Logs), um sicherzustellen, dass keine legitimen Anwendungen beeinträchtigt werden.

Auswirkungen und zukünftige Perspektiven

Diese Härtungsmaßnahme reduziert die Angriffsfläche von Mali-GPUs und schützt Nutzer vor bekannten und unbekannten Schwachstellen. Durch die Unerreichbarkeit von Schwachstellen bietet dieser Ansatz langfristige Sicherheitsvorteile. Google fordert OEMs auf, diese Maßnahmen zu übernehmen, um die GPU-Sicherheit im gesamten Android-Ökosystem zu stärken.

Offizielle Dokumentation

Danksagungen

Besonderer Dank gilt Jeffrey Vander Stoep für seine Beiträge zu dieser Initiative.

Teilen

TwitterLinkedIn