JISE


  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]


Journal of Information Science and Engineering, Vol. 31 No. 1, pp. 111-129


DROIT: Dynamic Alternation of Dual-Level Tainting for Malware Analysis


CHIWEI WANG AND SHIUHPYNG WINSTON SHIEH
epartment of Computer and Information Science
National Chiao Tung University
Hsinchu, 300 Taiwan
E-mail: cwwangabc@gmail.com; ssp@cs.nctu.edu.tw 

 


    Taint analysis for Android malware has received much attention in recent research. Existing taint techniques operate either at Java object level or at deeper instruction level. Object-level tracking is suitable for malware written in Java byte-code, but not for native ones. Instruction-level tracking captures the finest data flow. However, it leads to obscure semantic reconstruction and low performance. In this paper, we present DROIT, a taint tracker which dynamically alternates between object-level and instruction-level tracking on demands. DROIT tracks data flow at Java object level in general. When its Dalvik VM exits the byte-code execution, DROIT automatically switches to instructionlevel tracking, and vice versa. The trigger-based DROIT can alternate between the two levels in an efficient manner, and can provide dual-level whole image of the data flow, rather than fragments. Tracking at the dual levels also eases the semantic reconstruction significantly. The experiment with Android information-stealing trojans showed that DROIT can handle Java-based malware, those composed in native code, and those alternating between the two levels (e.g., DroidKungFu), respectively. 


Keywords: mobile security, malware analysis, taint analysis, information flow tracking, binary translation, Android operating system, Dalvik virtual machine

  Retrieve PDF document (JISE_201501_06.pdf)