Android-Basics: Über Android, Apps und die Rechte

22. November 2013 Kategorie: Android, Backup & Security, geschrieben von:

Was Apps dürfen, wie sie miteinander sicher kommunizieren und was das für Benutzer bedeutet. Zwei Entwickler erklären, wie Android in Sachen Rechte und Co funktioniert – Einsteiger-Level! Android Apps laufen per Definition in einer sogenannten Sandbox. Das bedeutet an sich nicht mehr, als dass die eine App die Daten und Funktionalität der anderen nicht ohne Weiteres beeinflussen und auslesen kann. Apps laufen also, inklusive ihrer Daten, in einem eigenen geschützten Bereich auf dem Gerät. In diesen Bereich kann niemand hinein aber die App auch nicht einfach so hinaus.

App Berechtigungen Android

Malware und andere Schädlinge
Trotz dieser Sandbox gibt es Schadsoftware, welche euch und eurem Gerät schaden kann oder versucht eure Daten zu stehlen und sie an Dritte weiterzugeben. Als erstes muss man unterscheiden, über was für Bedrohungen man redet. Malware an sich ist Software mit unerwünschtem “Funktionsumfang”, welche potentiell Schaden anrichten kann. Jedoch muss Malware nicht das System austricksen oder auf Sicherheitslücken zurückgreifen um dies zu tun.

Zur Verdeutlichung hier ein kleines Beispiel:
Eine Anwendung, welche auf Andoid läuft, kann sich jede Berechtigung geben lassen welche das System erlaubt und dann auf die entsprechenden Schnittstellen zugreifen. Bei der Installation wird der User gefragt ob er der App diese Berechtigungen erteilen will. Ob dies nun ein gutes oder schlechtes System ist, soll Teil einer anderen Diskussion sein.

Fakt ist, Anwendungen können einen großen Funktionsumfang abdecken ohne per se Schadsoftware sein zu müssen. Eine SMS App zum Beispiel kann es dem User erlauben SMS so zu verschicken wie er sich das vorstellt. Eine andere Anwendung mit der gleichen Berechtigung SMS zu verschicken kann jedoch ungewollt SMS verschicken und damit Kosten verursachen. Das ist an sich kein konzeptioneller Fehler des Systems, sondern einfach nur eine erlaubte Art des Zugriffs.

Eine App, welche also ungewollt, aber völlig legitim, Funktionen ausführt, die dem User nicht gefallen, kann als Malware bezeichnet werden. Dies hat aber nichts mit einem Virus, Hacking oder sonst was zu tun, sondern es handelt sich um eine ganz normale App.

Daten “Teilen”
Viele Apps bieten die Möglichkeit, gewisse Teile ihrer Daten zu teilen. Meist gibt es einen Menüpunkt mit dem Titel “Teilen”, “Senden” oder auf Englisch “Share”. Die Galerie zum Beispiel erlaubt es euch Bilder zu teilen. Benutzt ihr diese Funktion, dann öffnet sich ein Dialog zur Auswahl aller auf eurem Gerät befindlichen Apps, die in diesem Fall mit einem Bild umgehen können. Zum Beispiel könnte hier die Facebook App auftauchen um das Bild dort zu teilen oder auch Dropbox um das Bild dorthin hochzuladen.

Welche Apps in diesem Dialog auftauchen hängt davon ab welche Apps ihr installiert habt und was ihr versucht zu teilen. Nicht jede App kann mit jedem Inhalt umgehen. Welche App mit welchem Inhalt umgehen kann muss der Entwickler der jeweiligen App spezifizieren. Diese Information gibt eine App dann bei Installation an Android weiter und wenn sich nun der Teilen-Dialog für zum Beispiel einfachem Text öffnet, zeigt Android alle Apps an, für die die Entwickler spezifiziert haben, dass sie einfachen Text aufnehmen können um ihn zu teilen.

Bei diesem Vorgang kommunizieren die beiden beteiligten Apps nicht direkt miteinander und müssen auch nichts voneinander wissen, denn die gesamte Übergabe übernimmt Android selbst. Dies ist wohl die sicherste Möglichkeit um Daten von einer App in die andere zu bekommen. Dafür ist deshalb auch kein spezielles Recht nötig.

Rechte
Da wären wir auch schon bei einem sehr heiklen Thema, den Rechten. Wie bereits beschrieben darf eine App ja ihre schützende Sandbox auch nicht verlassen es sei denn, sie hat ein Recht dazu. Jedesmal wenn eine App eine Resource oder Funktionalität außerhalb ihrer Sandbox benutzen will, zum Beispiel wenn die App auf das Internet zugreifen will, muss sie dafür das Recht haben.

Diese Rechte muss der Entwickler einzeln anfordern und sie werden dem Benutzer auch alle bei der Installation aufgelistet, damit dieser genau weiß, was welche App darf. Will eine App also auf das Internet zugreifen, Daten auf die SD-Karte schreiben oder diese lesen, auf Kontakte zugreifen, Einstellungen ändern oder sonst etwas tun, dass sich nicht in ihrer Sandbox abspielt, muss sie das entsprechende Recht zugewiesen haben.

Benutzern rate ich immer dazu die Rechte von Apps genau zu lesen und mit der Funktionalität zu vergleichen. Also zu überprüfen, ob die Rechte der App für das zu gebrauchen sind, was die App tun soll. Das ist manchmal nicht ganz einfach. Denn Internet wird zum Beispiel bereits benötigt sobald eine App Werbung bereitstellt, denn diese wird ja aus dem Internet bezogen. Aber wenn eine Audiorecorder-App “Kontakte lesen” und “Internet Zugriff” benötigt, klingt das verdächtig.

Diese beiden Rechte ermöglichen es der App, sofern sie eben wirklich Schadsoftware ist, eure Kontaktdaten an Dritte im Internet weitergeben. Also Berechtigungen immer genau lesen und den gesunden Menschenverstand entscheiden lassen. Ich als Entwickler höre ja ständig Fragen nach dem Sinn einzelner Rechte in meinen Apps und versuche sie zu erklären.

Gut fände ich, wenn ich diese Beschreibung der Rechte zu meinen Apps nicht nur in die Beschreibung sondern vielleicht direkt zu den Rechten dazuschreiben könnte, damit der Nutzer auf einen Blick sieht was ich mit welchem Recht vorhabe. Wenn diese Erklärungen schlüssig sind, wäre das eine wichtige Info für Benutzer, die auch zu mehr Transparenz und somit auch zu mehr Vertrauen führen würde.

Meine Daten
Es gibt verschiedene Orte im Speicher des Gerätes, an denen Apps ihre Daten ablegen können. Bei Linux kann man als “normaler” Nutzer nicht auf alle Daten zugreifen. Dafür braucht man Administratorrechte, welche als Root-Rechte bezeichnet werden. Ordner die also als “normaler” User nicht lesbar sind, können als User mit Root-Rechten gelesen und verändert werden.

Android bietet dem Entwickler die Möglichkeit seine Daten im privaten oder im öffentlichen Speicher abzulegen. Als normaler User kann man auf den privaten Speicher nicht zugreifen und auch keine andere Anwendung hat das Recht oder die Möglichkeit dazu. Als User mit Root-Rechten kann man jedoch grundsätzlich alles machen und es gibt kein Bit mehr auf dem Gerät, auf welches man kein Zugriff mehr hat.

Des Weiteren können Apps, mit entsprechender Berechtigung, Daten auf beliebige Orte im internen Speicher (oder auf der externen SD-Karte) ablegen. Diese Daten wiederum können auch von anderen Apps mit der entsprechenden Berechtigung zum Lesen und Schreiben dieses Speichers gelesen bzw. verändert werden.

Zudem können sich Apps dazu entscheiden, Daten öffentlich für andere Apps zur Verfügung zu stellen, wie es zum Beispiel Android selber mit den Mediadaten macht. Das System scannt also den Datenträger und trägt alle gefundenen Medien in eine Liste ein. Nun kann jede Anwendung auf diese öffentliche Datenbank zugreifen und lesen. Schreiben muss nicht erlaubt sein, kann jedoch. Das ist wieder eine Frage, wie diese öffentliche Datenbank geschrieben wurde und was der Entwickler zulassen will.

Natürlich können Apps ihre Daten auch zum Beispiel auf den Servern eines Dienstbetreibers speichern. Dropbox ist hier so ein Beispiel, aber auch hier seht ihr das am entsprechenden Recht, denn damit Apps ihre Daten von eurem Gerät aus woanders hin transportieren können, müssen sie raus aus der Sandbox – zum Beispiel via Internet, NFC, Bluetooth oder ähnlichem.

Andere Apps nutzen
Oft ist es gar nicht nötig, dass eine App alles selbst können muss. Will ich in meiner App ein Foto aufnehmen so kann ich doch einfach eine bestehende Kamera-App am Gerät nutzen. Das Selbe gilt zum Beispiel für auch für Anrufe oder den Versand von SMS. Warum sollte ich einen Dialer implementieren wenn ich einfach den bestehenden mit einer Nummer meiner Wahl füttern kann und ihn dann einfach aus meiner App heraus öffne. Auf “Anrufen” muss der Benutzer aber dann noch selbst drücken.

Das hat gleich mehrere Vorteile. Erstens braucht meine App so nicht so viele Rechte für all diese Funktionen und zweitens kann der Nutzer zum Beispiel für Fotos seine bevorzugte Kamera App nutzen, der er auch vertraut. Technisch funktioniert das hier ähnlich wie mit dem Teilen von Daten. In meiner App sage ich, vereinfacht gesagt, dem Betriebssystem, dass ich gerne eine Kamera App öffnen möchte und wenn diese dann ein Foto gemacht hat, hätte ich gerne dieses Foto in meiner App. Wieder sprechen hier die beiden beteiligten Apps nicht direkt miteinander und auch die Datenübergabe läuft über das Betriebssystem. Meine App hat also keinen Einfluss auf die andere, die mir hier eine Funktion bereitstellt. Ich bekomme nur das Ergebnis, um damit in meiner App weiter zu arbeiten.

Die Auswahl welche Apps dem Benutzer angezeigt werden, um beispielsweise ein Foto zu machen, hängt wieder davon ab, welche Apps am Gerät verfügbar sind und sich beim Betriebssystem als Kamera-App registriert haben. Damit sich eine App für eine bestimmte Funktionalität am Betriebssystem registrieren kann, muss wieder der Entwickler die Apps dementsprechend kennzeichnen und eine entsprechende Schnittstelle für die Kommunikation mit seiner App mitliefern. Diese Schnittstelle kann nur Android selbst bei solchen Datenübergaben nutzen.

Fazit
Android bringt viele Möglichkeiten mit um Apps sicher zu machen und zu verhindern, dass Daten in falsche Hände geraten. Sorglos darf man deshalb aber trotzdem nicht mit seinem Gerät umgehen. Denn es liegt zu einem großen Teil einfach noch immer in der Hand des Entwicklers, wie gut oder schlecht er diese Möglichkeiten nutzt.Gerade bei der Installation von Apps ist darauf zu achten, was diese dürfen und ob die angeforderten Rechte verdächtig aussehen.

Manchmal sind aber auch nicht per se als Malware anzusehende Apps ganz ohne schlechte Absicht ein Sicherheitsrisiko, wenn sie sensible Daten außerhalb ihrer Sandbox ablegen wo diese dann ungeschützt von anderen Apps gelesen werden können. Ihr solltet also darauf achten, dass die Apps auf eurem Gerät von Entwicklern stammen die sich um eure Sicherheit sorgen. Lest die Kommentare zu den Apps, achtet auf Bewertungen und wenn ihr euch bei einer App nicht sicher seid, sucht lieber nach einer bekannteren Alternative mit der schon viele Nutzer Erfahrungen haben und diese mit euch im Play Store teilen.

Über die Autoren

Bruno Hautzenberger

Ich bin 26 Jahre alt und seit fast 8 Jahren hauptberuflich Software Entwickler, unter anderem auch am mobilen Sektor tätig. Für Android entwickle ich nebenher in meiner Freizeit auch seit langem kleine Apps und Tools, welche ihr alle im Play Store  findet.

2012 gründete ich mit dem Journalisten Georg Holzer zusammen das Netzkulturprojekt pingeb.org.
Außerdem blogge ich über Softwareentwicklung, Mobility, Everything Google und hier und da auch über Gaming und Fotografie. Außerdem findet ihr mich auch auf Twitter (@salendron) und Google+.

Michael Panzer

Ich bin 28 Jahre alt und schreibe seit ca. 3 Jahren für Android Apps. Ich habe Technische Redaktion studiert und arbeite seit ein paar Monaten hauptberuflich als Software-Entwickler für Android. Man kann mich bei Google+ finden und anschreiben.


Du entscheidest mit! Wir suchen das Smartphone des Jahres 2017! Jetzt abstimmen!

 

Über den Autor:

Hallo, ich bin Carsten! Baujahr 1977, Dortmunder im Norden, BVB-Getaufter und Gründer dieses Blogs. Auch zu finden bei Twitter, Google+, Facebook, Instagram und YouTube. Persönliches Blog. PayPal-Kaffeespende. Mail: carsten@caschys.blog

Carsten hat bereits 25422 Artikel geschrieben.