Das Android-Sicherheitsmodell

Spezialanpassungen? Linux vs. Android

Der von Android verwendete Linux Kernel hat einige Spezialanpassungen, die unter anderem Sicherheitsaspekte berücksichtigen. So verwendet Android OpenBinder als alternatives Interprozess-Kommunikationsframework, statt des üblicherweise unter Linux verwendeten System-V-IPC. Der Austausch der Komponente beruht unter anderem auf Sicherheitsbedenken gegenüber dem System-V-IPC, bei dem es unter Umständen zu Ressourcenverlusten kommen kann; beispielsweise bei Verwendung von System-V-Semaphoren [2]. Zusätzlich kontrolliert OpenBinder auch, welche Prozesse Operationen auf entfernten Objekten durchführen dürfen, und bietet somit ein Sicherheitsmodell auch auf IPC-Ebene [3]. Um die Durchsetzung von Restriktionen auf die Netzwerkverwendung zu ermöglichen, musste ebenfalls der Kernel angepasst werden. Der entsprechende Kernel-Code zum Öffnen eines Netzwerk-Sockets kontrolliert nun, ob der anfordernde Prozess in der entsprechenden Benutzergruppe zur Verwendung von Netzwerk ist. Dieser befindet sich nur dann in der Gruppe, wenn der Applikation die Berechtigung INTERNET zugeteilt wurde. Dabei wurde ebenfalls darauf geachtet, dass nur eine minimale Anzahl von externen Bibliotheken unter Android zur Verfügung steht, um die Komplexität zu minimieren. Besondere Arbeit wurde in eine eigens aus der NetBSD-Standard-C-Bibliothek abgewandelte Bibliothek gesteckt, um nur die wirklich benötigten Funktionalitäten zur Verfügung zu stellen.

Zusätzlich zu den genannten Sicherheitsfunktionen bietet Android noch die Möglichkeit, sich zu einem Virtual Private Network zu verbinden. Zur Verfügung stehen dabei zwei unterschiedliche Varianten: zum einen die PTPP-Variante, die mittels OpenVPN implementiert ist, zum anderen die direkte Unterstützung von Virtual Private Networks mittels IPSec.

Abb. 4: Einstellungsdialog zur Erstellung einer VPN-Verbindung in Android
Eine Plattform mit Verstand

Das Sicherheitsmodell von Android ist ein pragmatischer Ansatz zwischen technischer Durchsetzung und Bedienbarkeit durch den Benutzer des mobilen Geräts. Benutzer können daher sicher sein, dass Applikationen nur Funktionen und Daten nutzen, für die die Applikation die Berechtigung hat. Jedoch benötigt das Modell zwei Standbeine, ohne die es nicht funktionieren kann: Zum einen sollte der Entwickler nicht aus Bequemlichkeit einfach Berechtigungen deklarieren, die seine Applikation gar nicht benötigt. Eine ehrliche und akkurate Definition verhindert, dass es zu einer inflationären Deklaration von Berechtigungen kommt und Nutzer einfach ihr O.K. geben, weil „es ja überall so ist“. Zum zweiten ist der Nutzer gefragt – er sollte sich die Berechtigungen einer Applikation genau anschauen und die Sinnhaftigkeit überprüfen. Denn warum sollte das neu installierte Spiel unbedingt Zugriff auf die Kontaktdaten erhalten?

Christian Küster ist Softwareentwickler bei der tarent GmbH in Bonn und beschäftigt sich im Rahmen seiner Tätigkeit vor allem mit mobilen Themen und freien mobilen Plattformen wie Android, Maemo oder MeeGo.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.