Was wäre das Smartphone ohne Apps? Nicht viel mehr als ein gewöhnliches Telefon mit Touch-Screen. Es sind gerade die Apps, die ein Smartphone zu dem Begleiter schlechthin machen, das es ist. App-Entwickler tragen dabei eine große Verantwortung.
Wir alle haben die eine oder andere App auf unserem Smartphone installiert und denken gar nicht groß darüber nach, wie sehr wir dabei einem Entwickler vertrauen müssen, dass er bei der Programmierung gewissenhaft gearbeitet hat. Denn für viele von uns ist das Smartphone die Kommandozentrale geworden, unser ganzes Leben befindet sich auf dem Gerät: Wichtige E-Mails, unzählige Passwörter, private Fotos und Kontaktdaten. Da kann man Sicherheitslücken nicht wirklich gebrauchen.
Was ist eine Sicherheitslücke?
Wie der Name schon impliziert, ist eine Sicherheitslücke ein Problem, das die Sicherheit betrifft, besonders die Datensicherheit. Es handelt sich dabei um einen Fehler in einem Programm, der sich dazu ausnutzen lassen kann, Daten auszulesen, an die man normalerweise nicht kommen soll. Das kann dazu führen, dass ein Angreifer Daten kopiert oder sogar manipuliert. Beispielsweise wird beim Jailbreak eine oder mehrere Sicherheitslücke(n) ausgenutzt, um das iPhone Programme ausführen zu lassen, die es normalerweise nicht ausführen würde.
Sicherheitslücken in Apps
Während sich ein Jailbreak noch produktiv nutzen lässt und der Hersteller des Betriebssystems in der Pflicht ist, die Fehler zu beheben, sieht es bei Apps anders aus. Hier äußern sich Sicherheitslücken im besten Fall durch Abstürze. Aber es gibt auch Fälle, in denen Daten ausgelesen oder manipuliert werden können. Mit steigender Komplexität und wachsenden Möglichkeiten – beispielsweise können in iOS Apps auch untereinander kommunizieren – wächst auch das Risiko für Sicherheitslücken. Entwickler müssen daher alle Arten von Eingaben und Kommunikation genauestens überprüfen, um sicherzustellen, dass sich keine derartige Schwachstelle in ihre App einnistet.
Was könnte passieren?
Wenn eine App eine Sicherheitslücke hat, könnte eine manipulierte Webseite oder eine andere App die Lücke ausnutzen, um beispielsweise das Telefonbuch zu kopieren oder Fotos aus der Kamera auszulesen. Im Falle von iOS würde beides zwar durch das System hinterfragt werden („Darf App X auf die Fotos zugreifen?“), aber es gibt ja durchaus Apps, in denen das sinnvoll ist, weshalb der Anwender es erlauben würde. Eine Bildbearbeitungs-App, die nicht auf Fotos zugreifen kann, ist beispielsweise wenig nützlich.
Was kann der Entwickler dagegen tun?
Wenn der Entwickler sich bei externen Dienstleistern Rat holen will, beispielsweise bei Blue Frost Security, wird die App auf Herz und Nieren getestet. Dabei werden alle Schnittstellen der App mit sinnlosen Daten gefüttert, um zu überprüfen, wie sie reagiert. Dies nennt man „Penetration Test“. Außerdem kann auch der Quellcode überprüft werden, was das Aufspüren und vor allem das Beheben von Sicherheitslücken erleichtert. Grundsätzlich sollten alle Informationen, die die App von außen erhält, so behandelt werden, als wenn sie es nur darauf angelegt haben, Fehler auszunutzen. Das bedeutet, dass sowohl Nutzereingaben als auch sonstige Kommunikationen mit dem Internet, Betriebssystem oder anderen Apps gründlich geprüft und gefiltert werden müssen. Wenn die Daten den Spezifikationen entsprechen, kann damit weiter gearbeitet werden. Andernfalls müssen müssen die Daten so aufbereitet werden, dass sie harmlos sind oder mit einer Fehlermeldung verworfen werden.