Apple hält trotz Problemen an Sandboxing-Pflicht im Mac App Store fest
Schon in Mac OS X Leopard gab es ein Sandbox-System, welches dafür sorgte, dass kompromittierte Apps nicht kompletten Zugriff auf das System erlangen konnten. Allerdings wurde diese Technik nur von wenigen Apple-Anwendungen genutzt, Drittherstellern stand diese Möglichkeit zur Absicherung überhaupt nicht zur Verfügung. Erst mit Mac OS X Lion können Entwickler mit Programmierschnittstellen Apps in einer Sandbox laufen lassen. Apple hat im Sommer 2011 bekanntgegeben,
dass ab November 2011 alle neuen und aktualisierten Anwendungen im Mac App Store zwangsläufig Sandboxing unterstützen müssen, sonst werden diese abgewiesen. Diese Deadline musste allerdings auf März 2012 verschoben werden, da es mehrere Probleme mit der Umgebung gibt.
Grundsätzlich ist die Idee von Sandboxing folgende: Eine App bringt eine Beschreibungsdatei mit, in der spezifiziert wird, was die App darf und was nicht. So ist es zum Beispiel unsinnig, dass ein Taschenrechner-Programm auf Netzwerkfunktionen zugreifen könnte. Ist es in der Beschreibungsdatei nicht spezifiziert, blockiert Mac OS X den Zugriff auf Netzwerkfunktionen. Dies ist für die Sicherheit eine gute Idee, da ein Angreifer von außen, der eine Schwachstelle in einem Programm ausnutzen möchte, nicht mehr kompletten Zugriff auf den gesamten Rechner erlangen kann.
Apple hat für die Beschreibungsdatei eine Menge von Funktionen vorgesehen, was eine App darf und was nicht. So kann ein Programm spezifizieren, dass es die Kamera sowie die iPhoto-Library benutzen will. Andere Dateizugriffe oder das Aufrufen einer Netzwerkadresse sind dann nicht möglich, so lange dies nicht in der Beschreibungsdatei steht, die vom Entwickler beim Erzeugen der App angelegt wird und im Nachhinein nicht verändert werden kann.
Leider bringt dieses Verfahren auch zahlreiche Probleme mit sich: Alles, was Apple nicht explizit in den Vorgaben erlaubt kann von Entwicklern nicht mehr realisiert werden. So ist es zum Beispiel in Mac OS X 10.7.3 für eine App mit Sandboxing nicht möglich, auf das Dateisystem zuzugreifen. Dies ist dann relevant, wenn eine App dem Benutzer erlauben will, das Dateisystem durch eine eigene Benutzeroberfläche zu durchsuchen (Dateien können aber mittels der normalen Öffnen-/Sichern-Dialoge auch von Apps in einer Sandbox ausgewählt werden). Vor Schwierigkeiten stehen damit zum Beispiel Anbieter von FTP-Tools.
Auch das Öffnen einer Datei aus einem Drittherstellerprogramm mit einer anderen App (zum Beispiel Öffnen des Handbuchs in Vorschau über die Menüleiste einer App) ist nur auf Umwegen möglich. Ferner gibt es momentan in Mac OS X 10.7.3 noch viele Probleme mit der Implementierung der Sandbox, welche sich öfters unvorhersehbar verhält. Die Apple Developer-Foren sind momentan voll mit Anwendungsbeispielen, die sich in 10.7.3 nicht lösen lassen, wenn wie gefordert auf Sandboxing umgestellt wird. Apple scheint aber an der Deadline am 1. März 2012 festzuhalten, so dass manche Entwickler nun in der schwierigen Lage sind, entweder die App aus dem Mac App Store zu entfernen oder das Programm lange Zeit nicht im Mac App Store zu aktualisieren, sollte dieses Funktionen mitbringen, die in der Sandbox nicht umgesetzt werden können.
Weiterführende Links: