FANS: Fuzzing Android Native System Services via Automated Interface Analysis Baozheng Liu1;2,∗ Chao Zhang1;2 , Guang Gong3, Yishun Zeng1;2, Haifeng Ruan4, Jianwei Zhuge1;2 1Institute of Network Science and Cyberspace, Tsinghua University
[email protected] 2Beijing National Research Center for Information Science and Technology
[email protected] 3Alpha Lab, 360 Internet Security Center 4Department of Computer Science and Technology, Tsinghua University Abstract 1 Introduction Android has become the most popular mobile operating sys- Android native system services provide essential supports and tem, taking over 85% markets according to International Data fundamental functionalities for user apps. Finding vulnerabil- Corporation1. The most fundamental functions of Android ities in them is crucial for Android security. Fuzzing is one of are provided by Android system services, e.g., the camera the most popular vulnerability discovery solutions, yet faces service. Until October 2019, hundreds of vulnerabilities re- several challenges when applied to Android native system lated to Android system services had been reported to Google, services. First, such services are invoked via a special inter- revealing that Android system services are still vulnerable and process communication (IPC) mechanism, namely binder, attractive for attackers. A large portion of these vulnerabilities via service-specific interfaces. Thus, the fuzzer has to recog- reside in native system services, i.e., those mainly written in nize all interfaces and generate interface-specific test cases C++. Vulnerabilities in Android native system services could automatically. Second, effective test cases should satisfy the allow remote attackers to compromise the Android system, interface model of each interface. Third, the test cases should e.g., performing privilege escalation, by means of launching also satisfy the semantic requirements, including variable IPC requests with crafted inputs from third-party applications.