Hallo Leute. Ich bins wieder: Richard der Ranter. Seit einigen Jahren
entwickle ich Software für OS X und iOS. Das ist total cool aber
dennoch gibt es oft Dinge, die mich total depressiv machen. Heute
möchte ich euch über einen sehr aktuellen Aspekt berichten, der nicht
nur bei mir zu einem erhöhten Medikamentenkonsum führt. Jetzt habe ich
den Spannungsbogen aufgebaut und dieser, eigentlich sinnlose Satz,
überspannt den Spannungsbogen jetzt hoffentlich nicht. Ach und um es
noch spannender zu machen: Dieser Artikel enthält eine Anleitung, wie
man an die Passwörter seiner Freunde/Kollegen kommt – mit nur 5
Minuten Arbeit. Ok ok. Ich komme zur Sache. Heute spreche ich über die
von Apple mit Lion eingeführte “App Sandbox”. Um zu verstehen, was
dieser “Sandkasten” ist, schaut man sich am besten an, in welcher
Umgebung OS X Apps aktuell laufen. Eine OS X App läuft mit den Rechten
des Benutzers, der sie startet. Dies bedeutet, dass eine App alles
kann und darf, was der Benutzer auch kann und darf. Welche
Implikationen hat dies? Das macht man sich am besten an ein paar
Beispielen klar:
- Ein Benutzer hat Lese- und Schreibrechte in seinem Userverzeichnis.
Eine App hat dann folglich auch Lese- und Schreibrechte in dem
Userverzeichnis. Dies bedeutet, dass eine App zum Beispiel das
komplette Userverzeichnis löschen kann. Hier ist wichtig: Die App muss
nicht unbedingt ein Virus sein. Ein schlechter Programmierer kann in
die App einen Fehler einbauen, der dazu führt, dass die Apps alle
möglichen Dateien löscht. Davor muss der Benutzer geschützt werden.
- Ein Benutzer kann mit Spotlight seine gesamten Daten durchsuchen.
Folglich kann dies eine App auch. Jetzt ist folgendes Szenario
denkbar: Eine App nutzt Spotlight, um im “Hintergrund” nach allen
Dateien zu suchen, die das Wort “Passwort” enthalten. Die gefundenen
Dateien werden dann von der App komprimiert und an den Entwickler
geschickt. So einfach kann es sein eure Logindaten inkl. Passwort zu
bekommen. Man muss außerdem kein Entwickler sein, um einen Schädling
dieser Güte zu “entwickeln”. Mit dem Tool “Automator” von Apple kann
man sich das eben beschriebene Szenario innerhalb von fünf Minuten
zusammenklicken. Davor muss der Benutzer geschützt werden.
Das Problem sollte klar sein: Eine App soll in den seltensten Fällen
die gleichen Rechte haben wie der Anwender. Apple löst dies mit der
Sandbox. Ab November muss jede App, die weiterhin im App Store
gelistet sein möchte, Sandboxkompatibel sein. Dies bedeutet, dass jede
App ihre komplett eigene Umgebung bekommt, die von der Umgebung des
Benutzters weitestgehend abgeschottet ist. Jetzt könnte man denken:
“Wow. Hört sich super an.”. Aber in meinen Augen geht Apple hierbei
etwas zu schnell an die Sache. Beispiele:
- Eine App, die in einer Sandbox läuft kann zwar die Spotlight API
nutzen – allerdings durchsucht Spotlight dann nur die Sandbox der App
und nicht die gesamte Festplatte. Es gibt eine ganze Reihe an Apps,
die damit Probleme haben werden: HoudahSpot und Tembo sind derartige
Apps. Die beiden Apps sind im Prinzip “Front-Ends” für Spotlight -
nutzen Spotlight und haben allerdings eine UI, die eher dem Pro-User
entgegenkommt. Diese Apps sind konzeptionell nicht Sandbox-kompatibel.
- Eine App, die in der Sandbox läuft darf keine Apple Events mehr
versenden. “WHO CARES!? AND WTF ARE APPLE EVENTS – DUDE?”. Einfach
gesagt: Apple Script basiert auf Apple Events und viele Anwendungen
nutzen Apple Script um mit Anwendungen zu kommunizieren, für die es
keine API gibt. Will eine App zum Beispiel an iPhoto ein Bild zum
Importieren schicken, so wird dies in der Regel mit einem Apple Script
gemacht. In einer Sandbox: Nicht möglich. iTunes hat ebenfalls keine
API. Es gibt zahllose Apps, die allerhand nützlicher Dinge mit iTunes
machen: Cover-Suche, Metadaten-Suche etc… alles nichtmehr möglich.
Aber halt: Als Entwickler kann man bei Apple eine Ausnahme beantragen.
Also alles garnicht so schlimm? Übertreibt der Richard wieder, weil er
in einer depressiven Phase ist und nicht klar denken kann? Nein. Bei
der Beantragung der Ausnahme muss man technisch begründen und klar
machen, wieso man diese Ausnahme benötigt. Außerdem wird diese
Ausnahme von Apple offiziell “temporary exception” – also “temporäre
Ausnahme” genannt. Man nimmt jetzt an, dass es diese Ausnahme bald
nichtmehr geben wird. Was aber “temporary” genau bedeutet ist unklar.
Es gibt sicherlich viele Entwickler, die mit weiteren Entwicklungen
jetzt erstmal zurückhalten, bis das alles geklärt ist.
Übrigens: Auf dem iPhone laufen Apps schon seit je her in einer
Sandbox. Macht dies die Sache weniger “bedrohlich”? Nein. Auf OS X
gibt es erst seit letztem Oktober einen App Store. Davor hat man
zahlreiche Jahre ohne Einschränkungen entwickelt. Von daher trifft
diese Umstellung die Entwickler besonders hart. Die Sandbox-Idee ist
grundsätzlich gut. Will ich auch haben! Aber Apple — bitte mit ein
wenig mehr Rücksicht.
1. Apple: Mach klar, was “temporary” bedeutet.
2. Apple: Gib den Entwicklern ein wenig mehr Zeit.
3. Apple: Biete für deine eigenen Apps vernünftige APIs an – dann
benötigt man auch keine Apple Events/Apple Script.
So. Fertig für heute. Deckel zu. Sorry für den länglichen Post. War mal nötig.


