Mobile Apps vor Hackern schützen

Applikationssicherheit im Fokus

05.01.2017
Von 
Mirko Brandner ist Technical Manager bei Contrast Security. Der Diplom-Informatiker blickt auf über 20 Jahre Berufserfahrung in den Bereichen Sales Development, Softwareentwicklung, Produktmanagement und Consulting in der IT-Branche zurück. Seine Fokusthemen sind Applikationssicherheit, DevSecOps und RASP.
Das App-Business ist gezeichnet von Zeit- und Wettbewerbsdruck. Das Thema IT-Sicherheit bleibt deswegen oft auf der Strecke. Wir sagen Ihnen, was Sie dagegen tun können.

Wer im App-Business dauerhaft wettbewerbsfähig bleiben möchte, sollte sich vor allem auf eine schnelle Produkteinführung sowie eine gute Benutzerfreundlichkeit seiner Apps konzentrieren. Softwareentwickler setzt diese Situation enorm unter Druck: Sie müssen in möglichst kurzer Zeit möglichst viele neue mobile Applikationen kreieren, diese möglichst gründlich testen und schließlich so schnell wie möglich zur Veröffentlichung frei geben. Das Ziel sind benutzerfreundliche und widerstandsfähige Apps, die frei von Mängeln sind und den Anbietern dabei helfen sollen, ihre Wettbewerber hinter sich zu lassen und neue Einnahmequellen zu generieren.

Dass die IT-Sicherheit bei all dem Zeit- und Wettbewerbsdruck oft auf der Strecke bleibt, ist eine logische Konsequenz. Das Ergebnis sind mobile Applikationen, gespickt mit Sicherheitslücken und vermeidbaren Schwachstellen, die für Nutzer wie Anbieter hohe Sicherheitsrisiken darstellen und zudem verheerende Folgen nach sich ziehen können. Dass Applikationssicherheit sogar in kritischen Bereichen wie dem Banken- und Finanzwesen oder der Healthcare-Branche vernachlässigt wird, zeigen Untersuchungsergebnisse und Studien am laufenden Band. So auch der aktuelle "State of Application Security Report" von Arxan, der rund 50 der beliebtesten mobilen Banking- und Bezahl-Apps untersucht hat und zu einem erschreckenden Ergebnis kommt: Keine der getesteten Finanz-Apps wies ausreichende Sicherheitsmaßnahmen auf, um sich gegen Hackerangriffe zu schützen. So gut wie allen Anwendungen mangelte es an einem wirksamen Binärcodeschutz sowie einer ausreichenden Sicherung der Transportschicht, weshalb sie extrem anfällig für gefährliche Manipulationen und Datendiebstahl sind.

Durch den steigenden Wettbewerbsdruck wird die Applikationssicherheit vernachlässigt. Mit verheerenden Folgen.
Durch den steigenden Wettbewerbsdruck wird die Applikationssicherheit vernachlässigt. Mit verheerenden Folgen.
Foto: Morrowind - shutterstock.com

So greifen die Hacker an

Mobile Apps bedeuten für Entwickler in Sachen Sicherheit eine besonders große Herausforderung, denn anders als bei Web-Applikationen ist bei mobiler Software der Binärcode in besonderem Maße gefährdet, da die Applikation und ihr Code in eine unkontrollierte Umgebung auf das Endgerät "entlassen" werden muss. Wird der Binärcode der Applikation nicht aktiv geschützt, ist die App anfällig für Malware, Code-Modifizierung und andere Arten von Manipulationen, die die Integrität der App kompromittieren. Hierzu stehen den Angreifern verschiedene Angriffsmöglichkeiten zur Verfügung:

1. Code-Modifizierung und Code-Injection:

Zur ersten Kategorie binärbasierter Exploits zählen Angriffe, bei denen der Hacker unautorisierte Code-Modifikationen vornimmt oder schadhaften Code in eine App einschleust. Eine Variante ist das sogenannte Binary Patching. In diesem Fall modifiziert der Angreifer den Binärcode einer Applikation und verändert dessen Verhalten. Auf diese Weise können Sicherheitskontrollen ausgeschaltet, Unternehmensvorgaben oder Lizenzbeschränkungen umgangen werden, beziehungsweise die mobile App schließlich als Patch, Crack oder ganz neue Version in Umlauf gebracht werden. Ähnlich agieren die Angreifer beim Repackaging, wo sie nach dem Einschleusen eines schadhaften Codes in den Binärcode die Möglichkeit haben, die Applikation „umzuverpacken“ und als neue (vermeintlich offizielle) Anwendung in einem Drittanbieter-Store zu veröffentlichen, beziehungsweise auf dem Gerät des ahnungslosen Nutzers zu reinstallieren. Sicherheitsbarrieren wie Apples Code Encryption oder die Code-Signierungs-Technologie von iOS können Hacker dabei mit einfachen, aus dem Netz heruntergeladenen Werkzeugen, einer Toolchain und einem Jailbreak-Gerät außer Kraft setzen.

2. Dekompilation und Code Analysis:

Die zweite Kategorie binärbasierter Exploits umfasst Angriffe, bei denen Binärcodes mobiler Apps statisch und dynamisch analysiert werden können. Mit Hilfe von Code-Analyse-Tools können dabei die Binärcodes rekonstruiert werden. Die Hacker sind so in der Lage, wertvolle Codes (inklusive Quellcodes), sensible Daten oder geistiges Eigentum zu extrahieren, wiederzuverwenden oder umzuverpacken.

Eine Variante ist das sogenannte Android APK Reverse Engineering: Hierbei nutzen Hacker nach einem Download aus dem Google Play Store den Binärcode einer Android-App, um den originalen Quellcode zu rekonstruieren. Dabei wird die Applikation mit einfachen, kostenlosen Tools in ihr Java-Bytecode-Äquivalent konvertiert. Tools lesen dazu einfach die Java-Klassendateien, die im APK gespeichert sind, aus. Auf diese Weise können Hacker eine nahezu exakte Nachbildung konstruieren.

Nur eine „gehärtete“ App ist sicher

In Anbetracht der Leichtigkeit mit der Hacker den Binärcode einer Applikation mittlerweile angreifen und manipulieren können, müssen Entwickler in Sachen App-Sicherheit neue und effektivere Wege gehen. Im Vordergrund ihrer Überlegungen sollte dabei nicht mehr die Frage stehen, ob ein Hacker zuschlägt, sondern vielmehr wann er zuschlägt. Der Fokus ihrer Sicherheitsmaßnahmen muss daher ganz klar auf der Implementierung von Applikations-Selbstschutz und Code-Härtungsmaßnahmen liegen, statt auf herkömmlichen Sicherheitsmaßnahmen wie Vulnerability-Tests oder ähnlichem.

Denn nur wenn der Binärcode der App am Ende des Entwicklungsprozesses gehärtet wird, ist er vor Manipulationen und Reverse Engineering geschützt – vor allem während der Laufzeit. Selbstverständlich darf die Code-Härtung keinerlei Auswirkungen auf den sensiblen Quellcode haben. Eine derart geschützte App ist schließlich in der Lage, proaktiv und dynamisch ihre eigene Integrität zu wahren und Angriffe und Manipulationsversuche jeglicher Art selbstständig zu erkennen und abzuwehren – und zwar zu jeder Zeit, auf jedem Gerät und in jeder Umgebung. Die Code-Härtung erfolgt dabei ohne Auswirkungen auf den Quellcode.

Sicherheit muss eben auch in unserer schnelllebigen Zeit oberste Priorität haben. Denn mit einer unsicheren Applikation – und sind sie noch so benutzerfreundlich – machen Unternehmen langfristig gesehen keinen Gewinn. (fm)