arrow
Return

Fuzzing Android Native System Libraries via Dynamic Data Dependency Graph

delete2024-01-01
delete0
PRE
AI
X
Xiaogang Zhu
S
Siyu Zhang
C
Chaoran Li *
S
Sheng Wen
向
向阳 (Yang Xiang)
DOI:10.1109/TIFS.2024.3369479delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Google suggests using only the APIs documented in Android SDK. However, many app developers still choose Java Native Interface (JNI) to access system libraries because of the flexibility and freedom that non-SDK methods provide in implementing complex functions. However, using JNI may have unexpected consequences, including low-level bug-driven crashes. The bugs in system libraries can propagate to Android apps, and further cost much time and energy for developers to debug them. We develop a fuzzing tool, called JDYNUZZ, that exposes the bugs in system JNI to mitigate the aftermath of direct invocation of JNI. To fuzz a system library, one needs to not only prepare appropriate inputs, but also deal with the challenge of maintaining a correct sequence of API calls, both syntactically and semantically. To solve the challenge, the crux of JDYNUZZ is the dynamic refinement of a data dependency graph, which gradually resolves the problem of syntactic and semantic incorrectness when constructing API sequences. JDYNUZZ achieves the dynamic refinement based on the feature of Java reflection, which enables us to dynamically modify API sequences and test different code regions. We evaluate JDYNUZZ on the most recent version of Android Open Source Project (AOSP), i.e., version android-12.0.0_r31. In our experiments, JDYNUZZ discovers 34 new bugs in system JNI libraries, all confirmed by Google.
Keywords:
Libraries
Fuzzing
Operating systems
Java
Computer bugs
Reflection
Internet
Android native library
fuzzing
dynamic data dependency

Journal

IEEE Transactions on Information Forensics and Security cover
IEEE Transactions on Information Forensics and Security
IF:
8
Papers:
5.3K
Citations:
2.3W

Organization

S
Swinburne University of Technology
Scholars:
9.3K
Papers: 1.2W
Citations: 2.0W
Cited Papers

Cited Papers

errShare
errSave
errShare
errSave
Field Research Cooperative Wearable Systems: Challenges in Requirements, Design and Validation
err2019-10-12
err0
errOAAI
errMateus C. Silva; Vicente J. P. Amorim; Sérvio P. Ribeiro; Ricardo A. R. Oliveira
errShare
errSave
NDroid: Toward Tracking Information Flows Across Multiple Android Contexts
err2019-03-01
err41
PREAI
errXue, Lei; Qian, Chenxiong; Zhou, Hao; Luo, Xiapu; Zhou, Yajin; Shao, Yuru; Chan, Alvin T. S.
errShare
errSave
Genomewide Analysis of mRNA Processing in Yeast Using Splicing-Specific Microarrays
err2002-05-03
err0
PREAI
errTyson A. Clark; Charles W. Sugnet; Manuel Ares
errShare
errSave
Fuzzing: A Survey for Roadmap
err2022-09-09
err105
PREAI
errZhu, Xiaogang; Wen, Sheng; Camtepe, Seyit; Xiang, Yang
errShare
errSave
Deep architectures for protein contact map prediction
err2012-07-30
err0
errOAAI
errPietro Di Lena; Ken Nagata; Pierre Baldi
errShare
errSave
Deep Learning Based Attack Detection for Cyber-Physical System Cybersecurity: A Survey
err2022-03-01
err193
PREAI
errZhang, Jun; Pan, Lei; Han, Qing-Long; Chen, Chao; Wen, Sheng; Xiang, Yang
errShare
errSave
researcher View more