The Android operating system provides a rich security model that specifies over 100 distinct permissions. Before performing a sensitive operation, an app must obtain the corresponding permission through a request to the user. Unfortunately, an app is treated as an opaque, monolithic security principal, which is granted or denied permission as a whole. This blunts the effectiveness of the permissions model. Even the recent enhancements in Android do not account for the interactions between multiple permissions or for multiple uses of a single permission for disparate functionality. We describe app splitting, a technique that partitions a monolithic Android app into a number of collaborating minion apps. This technique exposes information flows inside an application to OS-level mediation mechanisms to allow more expressive security and privacy policies. We implement app splitting in a tool called AppSaw. We describe a method for automatically selecting code partitions that isolate permission uses to distinct minion apps, and use existing security mechanisms to mediate the flow of privileged data. Our partitioning strategy based on vertex multicuts ensures that the minion apps are created efficiently. In our experiments, AppSaw was effective at splitting real-world apps, and incurred a low average performance overhead of 3%.
CITATION STYLE
Davidson, D., Rastogi, V., Christodorescu, M., & Jha, S. (2018). Enhancing android security through app splitting. In Lecture Notes of the Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering, LNICST (Vol. 238, pp. 24–44). Springer Verlag. https://doi.org/10.1007/978-3-319-78813-5_2
Mendeley helps you to discover research relevant for your work.