iPhone, Blackberry oder Android

Mobile Clients im Security-Check

19.04.2012
Von Florian Oelmaier

“Einschmuggeln” von Schadsoftware

Sicherheitsarchitektur Softwareinstallationen
Sicherheitsarchitektur Softwareinstallationen
Foto: Florian Oelmaier

Alle drei Betriebssysteme bieten die Möglichkeit, zusätzliche Software zu installieren; allerdings ist die Kontrolle darüber, welche Software installiert werden kann, auf höchst unterschiedlichem Niveau. Auf einem Windows-Rechner kann grundsätzlich jede Software aus jeder Quelle installiert werden. Selbst wenn nicht jeder Benutzer Administrationsrechte besitzt und eine restriktive Konfiguration eingestellt wurde, können Installationen in den „eigenen Dateien“ ausgeführt werden. Auch Android schlägt diesen Weg ein: Software muss zwar signiert sein (d.h. der Entwickler muss eine Kennung anfügen), Google macht aber keine Vorgaben zum Inhalt dieser Signaturen, was dazu führt, dass sich der Entwickler oft nur auf mehr oder weniger kryptische Art selbst identifiziert – gerne auch mit nichtssagenden Code- oder Firmennamen. Android Programme müssen bei der Installation zwar angeben, welche Funktionen sie nutzen, diese technische Beschreibung ist aber für viele Nutzer nur schwer einschätzbar. Spyware und Programme, die mehr tun als sie vorgeben, sind unter Windows häufig und finden zunehmend auch unter Android Verbreitung.

Apple verfolgt hier einen gänzlich anderen Ansatz. Sämtliche Software muss signiert sein; entweder von Apple oder – im Firmenbereich – vom Unternehmen, in deren Account die Geräte laufen. Diese Signatur wird beim Start jedes Programms auf Betriebssystemebene geprüft und während der Laufzeit immer wieder verifiziert. Von Apple signierte Software kann nur über einen einzigen Weg bezogen werden, nämlich über Apples App Store. Um Software in diesem App Store anbieten zu können, muss ein Entwickler nicht nur die exakte Funktionsweise seines Programms beschreiben, auch die Korrektheit der Beschreibung wird von Apple geprüft. Zusätzlich kontrolliert Apple maschinell, ob die aufgestellten Programmierregeln eingehalten wurden und nur die freigegebenen Programmierschnittstellen benutzt werden. Der direkte Zugriff auf Hardwarefunktionen ist damit im iOS nicht möglich – sowohl Windows als auch Googles Ausführungsumgebung (die Dalvik VM mit dem Native Development Kit) erlauben dies jedoch.

Ein weiterer Sicherheitsaspekt ist die Abschottung von Programmen gegeneinander. Ein Windows Programm hat beispielsweise auf die Verzeichnisse anderer Programme grundsätzlich ebenso Zugriff wie auf viele Bereiche des Betriebssystems (Registry, Desktop, etc.). Für bestimmte Funktionen muss das Programm (ab Windows Vista) eine besondere Erlaubnis des Benutzers holen. Im Unterschied dazu erteilt der Benutzer unter Android einem Programm diese Erlaubnis einmalig während der Installation. Auch die Abschottung verschiedener Apps ist bei Android weiter fortgeschritten. Die Trennung erfolgt hier über die Rechte im zugrundeliegenden Linux-Dateisystem – jede App erhält eine eigene User-ID und damit exklusive Rechte an den eigenen Dateien. Am weitesten ist der applikationsbezogene Schutz jedoch unter iOS gediehen. Jede Applikation erhält eine eigenes sogenanntes „Jail“ (dieses BSD-Unix-Konzept entspricht in etwa einer Linux chroot-Umgebung). Dieses Jail verhindert, dass ein Programm außerhalb des zugewiesenen Verzeichnisbaums lesen oder schreiben kann.

Diese Strategie hat für Apple aber auch einen entscheidenden Nachteil. Etwa 10 Prozent der Besitzer von iOS-Geräten wollen sich nicht mit den Beschränkungen abfinden, die Apple ihnen auferlegt, und suchen entsprechend nach Möglichkeiten, das Gerät von diesen Beschränkungen zu befreien. In dieser Gruppe sind auch etliche IT- und Sicherheitsexperten, sodass heute für viele iOS-Geräte ein sogenannter Jailbreak existiert, mit dem die Sicherheitsmaßnahmen der Apple-Geräte aufgehoben werden können. Die Durchführung eines solchen Jailbreaks ist allerdings bislang nicht über das Netzwerk möglich, es wird also ein direkter Zugriff auf das Gerät benötigt.