Kalauner, P. G. (2023). Analysis and bypass of android application anti-reverse engineering mechanisms [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2023.113493
E194 - Institut für Information Systems Engineering
-
Date (published):
2023
-
Number of Pages:
128
-
Keywords:
Android; Mobile Sicherheit; Applikationsanalyse; Anti-Reverse Engineering
de
Android; mobile security; application analysis; anti-reverse engineering
en
Abstract:
Im Laufe der Zeit ist die Popularität von mobilen Applikationen deutlich gestiegen. Da die Nutzung von mobilen Applikationen die Verarbeitung sensibler Daten inkludiert, haben sich verschiedenste Empfehlungen und Spezifikationen bezüglich des Schutzes mobiler Applikationen mittels Anti-Reverse Engineering Mechanismen wie Obfuskierung und Root-Detektierung etabliert. Aufgrund der Erfordernis, mobile Applikationen zu schützen, wurden kommerzielle Anti-Reverse Engineering Tools, welche verschiedene Anti-Reverse Engineering Mechanismen implementieren, entwickelt. Allerdings haben Entwickler von Schadsoftware die Möglichkeit, Anti-Reverse Engineering Tools und Mechanismen zu nutzen, um die Analyse ihrer bösartigen Applikationen zu erschweren. Daher strebt diese Arbeit an, detaillierte Einblicke in die Funktionalität von verschiedenen durch Anti-Reverse Engineering Tools bereitgestellten Mechanismen zu erlangen, um Forschenden im Bereich der IT-Sicherheit eine effiziente Analyse von bösartigen mobilen Applikationen zu ermöglichen. Diese Arbeit analysiert Anti-Reverse Engineering Mechanismen dreier Anti-Reverse Engineering Tools, indem eine Evaluations-Applikation, auf die die Mechanismen der Tools nacheinander angewandt wurden, statisch und dynamisch analysiert wird. Im engeren Sinne nutzt diese Arbeit verschiedene Reverse Engineering Techniken wie Dekompilierung und dynamische Code-Instrumentierung, um die Implementierungen von String- und Klassen-Verschlüsselung, TLS-Zertifikat-Pinning, und Root-Detektierungsmechanismen zu analysieren. Basierend auf den in dieser Arbeit erhaltenen Analyseergebnissen werden Unterschiede zwischen den Implementierungen der analysierten Tools und Mechanismen diskutiert. Daraus resultierend werden im Rahmen dieser Arbeit Skripte, welche es erlauben den Großteil der analysierten Anti-Reverse Engineering Mechanismen dynamisch zu umgehen, entwickelt. Zusätzlich werden zwei Ansätze, die es ermöglichen automatisch zu detektieren, welches der drei analysierten Tools auf eine Applikation angewandt wurde, vorgestellt. Damit ist es möglich, die entsprechenden Skripte zur Umgehung der Mechanismen automatisiert auszuführen. Abschließend - basierend auf den vorgehenden Resultaten und Umgehungsstrategien - präsentiert diese Arbeit mögliche Ideen und Ansätze, um die analysierten Anti-Reverse Engineering Mechanismen und Tools zu verbessern.
de
In the course of time, the popularity of mobile applications has increased drastically. As the usage of mobile applications includes the processing of sensitive data, various recommendations and specifications regarding the protection of mobile applications through anti-reverse engineering mechanisms, such as obfuscation and root detection, have been established. Due to the need for mobile application protection, commercial anti-reversing tools implementing various anti-reverse engineering mechanisms have emerged. However, malware developers might take advantage of anti-reversing tools and mechanisms in order to hinder analysis of their malicious applications. Therefore, this thesis aims to gain detailed insights into the functionality of various mechanisms provided by anti-reverse engineering tools in order to enable security researchers to analyse malicious mobile applications efficiently. This thesis inspects anti-reverse engineering mechanisms of three anti-reverse engineering tools through statically and dynamically analysing an evaluation application, where the mechanisms provided by the tools have been applied to one after the other. More specifically, this work makes use of various reverse engineering techniques, such as decompilation and dynamic code instrumentation, in order to analyse the implementations of string as well as class encryption, TLS certificate pinning, and root detection mechanisms. Based on the analysis results obtained in this work, implementation differences between the analysed tools and mechanisms are discussed. As a result, this work develops scripts for dynamically bypassing the majority of the analysed anti-reverse engineering mechanisms. In addition, this thesis introduces two approaches for automatically detecting which of the three analysed tools has been applied to an application, allowing to automatically execute the corresponding scripts for bypassing the applied mechanisms. Finally, building upon the previous findings and bypassing strategies, this work presents possible ideas and approaches for improving the analysed anti-reversing tools and mechanisms.