Security and privacy enhancing mechanisms for the Android Operating System
Doctoral Thesis
Author
Λύβας, Χρήστος - Γιάσερ
Lyvas, Christos
Date
2021-12View/ Open
Keywords
Android security ; Activity hijacking attacks ; Task hijacking attacks ; Task hijacking prevention ; Activity hijacking prevention ; Mobile operating system security ; Mobile application privacy ; Android privacy ; Intent redirection attacks prevention ; Intent hijacking prevention ; Intent encryption ; Intent authorization ; Intent authentication ; Android permissions map ; Reflection technique ; Dynamic analysis ; Mobile application securityAbstract
The Android platform is the dominant Operating System (OS) for mobile and IoT devices. Its wide distribution is mainly due to the freedom it grants to mobile manufacturers (OEMs) to use it as the primary operating system for their devices. In terms of security, Android’s enhanced security model safeguards the end-users from the threats of conventional Operating Systems (macOS, Windows, Linux, etc.). However, Android has vulnerabilities due to its architecture particularities. This thesis focuses on the threats, vulnerabilities and security mechanisms of the Android Operating System (OS).
Initially, the permission-based access control model of the Android Operating System for controlling access to sensitive phone resources and its “relation’ to the Android framework’s methods for constructing the permission maps has been investigated. The aforementioned “relation” between a framework method and a permission can be found in the Android documentation. However, in addition to the fact that documentation may accidentally lack information, Android features undocumented and hidden API methods. To this direction, this thesis proposes Dypermin, a transparent framework for compiling the Android permission map without requiring any modification to the underlying operating system. To achieve that, Dypermin capitalizes on intrinsic properties of the Android framework, that is, security exceptions during run time and the availability of any protected API method through the Android framework, as well as on the advantages of the Java reflection mechanism. Furthermore, Dypermin, in contrast to other related methods, validates itself as it relies on run time information, meaning that it does not generate false-positive map entries. Dypermin has been evaluated on different Android versions. The results have been compared with those of other proposed methods demonstrating Dypermin’s efficacy for compiling the Android permission map for any given version.
Furthermore, it has been demonstrated that the Android’s activity and task hijacking attacks may have a significant impact on end users’ data confidentiality since malicious applications can deceive end-users and silently gain access to sensitive data. Undoubtedly, such attacks are of vital importance and thus, for their thorough study, a tool named Anactijax has been proposed, used for identifying specific configurations that an application may be vulnerable to. Furthermore, an operating system level defense mechanism named TaskAuth has been proposed, controlling the access to the applications’ activities. TaskAuth is transparent to both end-users and developers by leveraging their built-in signatures. The effectiveness of TaskAuth has been evaluated against various vulnerable configurations provided by Anactijax. Results have proved that the proposed solution does not affect Android’s task management and that end-users suffer negligible execution overhead.
Finally, the Android intent redirection and intent hijacking attacks were examined. Again, this type of attacks can be launched by malicious applications in order to gain access to users’ sensitive data. For addressing this type of attacks an operating system-level defense mechanism named IntentAuth has been proposed. IntentAuth allows end-users to explicitly define dynamic policies that specify a trust model for applications allowed to interact with each other. Additionally, upon the user-defined trust model for installed applications, the proposed implementation can verify and encrypt the data transmitted (application to application) during the Android’s Inter-Process communication mechanism via implicit Intents. The execution overhead imposed has been proved to be negligible.