HybriDroid: static analysis framework for Android hybrid applications

S Lee, J Dolby, S Ryu - Proceedings of the 31st IEEE/ACM international …, 2016 - dl.acm.org
Proceedings of the 31st IEEE/ACM international conference on automated …, 2016dl.acm.org
Mobile applications (apps) have long invaded the realm of desktop apps, and hybrid apps
become a promising solution for supporting multiple mobile platforms. Providing both
platform-specific functionalities via native code like native apps and user interactions via
JavaScript code like web apps, hybrid apps help developers build multiple apps for different
platforms without much duplicated efforts. However, most hybrid apps are developed in
multiple programming languages with different semantics, which may be vulnerable to …
Mobile applications (apps) have long invaded the realm of desktop apps, and hybrid apps become a promising solution for supporting multiple mobile platforms. Providing both platform-specific functionalities via native code like native apps and user interactions via JavaScript code like web apps, hybrid apps help developers build multiple apps for different platforms without much duplicated efforts. However, most hybrid apps are developed in multiple programming languages with different semantics, which may be vulnerable to programmer errors. Moreover, because untrusted JavaScript code may access device-specific features via native code, hybrid apps may be vulnerable to various security attacks. Unfortunately, no existing tools can help hybrid app developers by detecting errors or security holes. In this paper, we present HybriDroid, the first static analysis framework for Android hybrid apps. We investigate the semantics of Android hybrid apps especially for the interoperation mechanism of Android Java and JavaScript. Then, we design and implement a static analysis framework that analyzes inter-communication between Android Java and JavaScript. As example analyses supported by HybriDroid, we implement a bug detector that identifies programmer errors due to the hybrid semantics, and a taint analyzer that finds information leaks cross language boundaries. Our empirical evaluation shows that the tools are practically usable in that they found previously uncovered bugs in real-world Android hybrid apps and possible information leaks via a widely-used advertising platform.
ACM Digital Library