From Mobile to Security : Towards Secure Smartphones
Total Page:16
File Type:pdf, Size:1020Kb
Fakultät für Elektrotechnik und Informationstechnik From Mobile to Security Towards Secure Smartphones Dissertation zur Erlangung des Grades eines Doktor-Ingenieurs der Fakultät für Elektrotechnik und Informationstechnik an der Ruhr-Universität Bochum vorgelegt von Johannes Hoffmann aus Herdecke Bochum, 30. 09. 2014 Erstgutachter: Prof. Dr. Thorsten Holz » Ruhr-Universität Bochum Zweitgutachter: Prof. Dr. Felix C. Freiling » Friedrich-Alexander-Universität Erlangen-Nürnberg Fakultät für Elektrotechnik und Informationstechnik From Mobile to Security Towards Secure Smartphones Dissertation zur Erlangung des Grades eines Doktor-Ingenieurs der Fakultät für Elektrotechnik und Informationstechnik an der Ruhr-Universität Bochum vorgelegt von Johannes Hoffmann aus Herdecke Bochum, 30. 09. 2014 Tag der mündlichen Prüfung: 28. 08. 2014 Erstgutachter: Prof. Dr. Thorsten Holz » Ruhr-Universität Bochum Zweitgutachter: Prof. Dr. Felix C. Freiling » Friedrich-Alexander-Universität Erlangen-Nürnberg Quis custodiet ipsos custodes? D. Iunius Iuvenalis This thesis was typeset with LATEX, KOMA-Script and Kile. Abstract This thesis addresses problems in the research field of mobile security—a field of in- creasing importance since the introduction of the first smartphones in 2007. Nowa- days, smartphones are commonly used, and because of their rich feature set always online, easily extensible with third-party applications, and usable for many tasks. Just like normal computers, they are complex systems of hard- and software process- ing vast amounts of data. Depending on the use cases, this may include private user data such as contact information or pictures, company secrets, as well as account credentials and payment information. A lack of knowledge related to security-sensitive tasks of most users and security related bugs in software provide evildoers with many attack vectors. Their goals can be diverse, but typically they steal data or misuse premium rate services at the users’ expense. The last years have shown that many pressing issues related to mobile security remain unsolved and must be addressed. The popularity of smartphones and their diversity make them not only attractive for their users, but also a target for cybercriminals. In this thesis, we approach a selection of these problems and provide proper solutions. We start our work with a thorough introduction of the research field of mobile security and emphasize its relevance. We point out that we need proper techniques to analyze malicious mobile applications. Therefore, we present a static program analysis tool which performs a technique called program slicing. We analyze more than 140,000 mobile applications and present many differences between benign and malicious applications. Next to our static approach, we present work in the dynamic program analysis field and evaluate whether (malicious) activities can be detected based on the energy consumption they cause on mobile devices. Following these two contributions to analyze mobile applications, we evaluate how robust state-of-the- art analysis tools are against advanced and highly obfuscated malware. We present a framework which obfuscates mobile applications and then test the effectiveness of well known tools against such altered applications. In a final step, we propose a tool which enables the usage of web browser on compromised machines while used credentials or other security relevant data is protected from attackers. We make use of the smartphone’s connectivity and link it to other computer systems in order to strengthen their security. i Zusammenfassung Diese Dissertation widmet sich dem Forschungsthema Mobile Sicherheit, welches seit der Einführung der ersten Smartphones im Jahr 2007 immer relevanter wird. Smart- phones sind sehr weit verbreitet und dank ihrer üppigen Ausstattung an Sensoren und Netzwerkkomponenten immer online und durch einfach installierbare Applika- tionen für fast jeden Anwendungsfall nutzbar. Sie sind wie übliche Computer ein komplexes Gebilde aus Hard- und Software, die gewaltige Datenmengen verarbeiten. Zu diesen Daten gehören unter anderen – je nach Anwendungsfall – private Daten des Benutzers wie Kontaktdaten und Fotos, Firmendaten des Arbeitgebers sowie Benutzerkontendaten und hinterlegte Bezahloptionen. Ein mangelndes Verständnis der meisten Benutzer bezüglich sicherheitsrelevanter Fragestellungen und Sicherheitslücken in der Software, welche oft der Komplexität der Smartphones geschuldet sind, bieten Angreifern viele Angriffsvektoren. Deren Ziele können ganz unterschiedlich sein, oft wird jedoch Datenklau betrieben oder kostenpflichtige Mehrwertdienste werden zu Lasten des Besitzers ausgenutzt. Die letzten Jahre haben gezeigt, dass es im Bereich der mobilen Sicherheit viele ungelöste Probleme gibt und entsprechende Lösungen benötigt werden. Die explosionsartige Verbreitung von Smartphones und deren Potential machen diese nicht nur für deren Benutzer interessant, sondern auch zum Ziel von Cyberkriminalität. Im Rahmen dieser Dissertation nehmen wir uns einige dieser Probleme an. Wir stellen zunächst das Forschungsfeld der mobilen Sicherheit vor und verdeutlichen dessen Relevanz. Hierbei zeigen wir, dass Techniken zur Programmanalyse drin- gend benötigt werden um Schadsoftware zu analysieren. Infolgedessen stellen wir Arbeiten im Rahmen der statischen Schadsoftwareanalyse vor, in welcher wir über 140.000 Applikationen u. a. mittels der Technik Program Slicing untersuchen und viele Erkenntnisse über Schadsoftware präsentieren. Im Rahmen der dynamisch- en Programmanalyse untersuchen wir, inwieweit sich Software auf mobilen Geräten mittels ihres Stromverbrauches erkennen lässt. Zudem evaluieren wir, wie robust be- kannte und oft genutzte Analysesysteme gegenüber stark obfuskierter Schadsoftware sind. Wir präsentieren diesbezüglich eine Applikation, welche die Instruktionen mo- biler Applikationen entsprechend ändert. Abschließend stellen wir ein System vor, welches die Webnutzung auf einem kompromittierten PC ermöglicht. Hierzu nutzen wir die Konnektivität von Smartphones aus, um diese mit anderen Computersyste- men zu verbinden und so deren Sicherheit zu erhöhen. iii Contents 1 Introduction1 1.1 Motivation................................1 1.2 Topic and Contributions.........................2 1.3 List of Publications............................5 1.4 Outline..................................7 2 Background: From Mobile to Security9 2.1 Why Mobile Security?.......................... 10 2.1.1 Smartphone Characteristics................... 18 2.1.2 Smartphone Security Mechanisms............... 22 2.1.3 Attack Vectors.......................... 27 2.1.4 Mobile Malware......................... 30 2.2 Analysis of Malicious Software..................... 34 2.2.1 Static Analysis.......................... 35 2.2.2 Dynamic Analysis........................ 36 2.2.3 Limitations............................ 37 2.3 Specific Security Aspects......................... 38 2.4 Discussion................................. 40 3 Static Approach based on Program Slicing 43 3.1 Introduction................................ 44 3.2 Related Work............................... 46 3.3 High-Level Overview of SAAF...................... 47 3.4 Static Backtracking............................ 50 v 3.4.1 General Workflow........................ 51 3.4.2 Program Slicing......................... 51 3.4.3 Opcode Handling......................... 53 3.4.4 Results.............................. 55 3.4.5 Example.............................. 56 3.5 Evaluation................................. 58 3.5.1 Analysis Results......................... 59 3.5.2 Malware Analysis......................... 67 3.6 Discussion................................. 69 4 Dynamic Approach based on Power Consumption 71 4.1 Introduction................................ 72 4.2 Related Work............................... 73 4.3 Measurement Setup........................... 75 4.3.1 Application............................ 76 4.3.2 Test Devices........................... 77 4.4 Short Time Tests............................. 77 4.4.1 Initial Tests............................ 79 4.4.2 Energy Greedy Functions.................... 81 4.4.3 Location API........................... 82 4.4.4 Data Heist............................ 83 4.5 Long Time Tests............................. 85 4.5.1 Initial Tests............................ 86 4.5.2 Energy Greedy Functions.................... 87 4.5.3 Location API........................... 88 4.5.4 Data Heist............................ 89 4.5.5 Uncalibrated Phones....................... 89 4.6 Validation................................. 90 4.7 Evaluation................................. 92 4.8 Discussion................................. 95 5 Change of Ends: Obfuscating Android Applications 97 5.1 Introduction................................ 98 5.2 Related Work............................... 100 5.2.1 Android Application Analyzers................. 100 5.2.2 Android Obfuscators....................... 106 5.3 Program Analysis Assumptions & Obfuscation Methods....... 107 5.3.1 Dynamic Analysis Evasion.................... 108 5.3.2 Static Analysis Evasion..................... 110 5.4 Evaluating the Robustness of Analysis Tools.............. 114 5.4.1 Static Analysis Systems..................... 115 vi 5.4.2 Dynamic Analysis Systems................... 116 5.4.3 Decompilers............................ 120 5.4.4 Signatures & Antivirus Detection................ 123 5.4.5 Bugs................................ 127 5.5 Implementation and Performance Evaluation............