June 2014 | WILLIAM ENCK, PETER GILBERT, SEUNGYEOP HAN, VASANT TENDULKAR, BYUNG-GON CHUN, LANDON P. COX, JAEYEON JUNG, PATRICK MCDANIEL, ANMOL N. SHETH
TaintDroid is an efficient, system-wide dynamic taint tracking and analysis system for real-time privacy monitoring on smartphones. It tracks the flow of privacy-sensitive data through third-party applications, enabling users and security services to identify misbehaving applications. TaintDroid leverages Android's virtualized execution environment for real-time analysis, with minimal performance overhead (32% for CPU-bound microbenchmarks) and negligible impact on interactive applications. In 2010, TaintDroid analyzed 30 popular Android applications and found 20 potentially misused users' private information. A similar fraction was found in 2012 studies. TaintDroid automatically labels data from privacy-sensitive sources and propagates labels through program variables, files, and interprocess messages. When tainted data is transmitted, TaintDroid logs the data's labels, the application responsible, and the destination. This provides real-time feedback to users and security services.
TaintDroid uses dynamic taint analysis to monitor privacy-sensitive information. Sensitive information is first identified at a taint source, where a taint marking is assigned. Dynamic taint analysis tracks how labeled data impacts other data, potentially leaking the original sensitive information. This tracking is performed at the instruction level, and affected data is identified before it leaves the system at a taint sink (usually the network interface). TaintDroid integrates multiple granularities of taint propagation: variable-level, method-level, message-level, and file-level. It uses the Dalvik VM interpreter for variable-level tracking, message-level tracking between applications, method-level tracking for system-provided native libraries, and file-level tracking for persistent data.
TaintDroid's design ensures efficient taint tracking by leveraging architectural features of virtual-machine-based smartphones. It instruments the VM interpreter to provide variable-level tracking, uses message-level tracking between applications, and employs method-level tracking for native libraries. Taint tags are stored adjacent to variables in memory, providing spatial locality. TaintDroid also handles taint propagation for native code, IPC, and secondary storage. It uses a taint interface library to communicate taint tags with the tracking system, and integrates with the Dalvik JIT compiler for performance optimization.
TaintDroid's privacy analysis identifies when tainted information is transmitted over the network interface. It places hooks in Android's LocationManager and SensorManager services for low-bandwidth sensors, and in ContentResolver and CursorWrapper classes for information databases. It instruments APIs for device identifiers such as phone number, SIM card identifiers, and device identifier. TaintDroid's application studies found that 15 of 30 applications in 2010 reported users' locations to remote advertising servers, and 7 collected device ID and other sensitive information. Similar findings were observed in 2012 studies. TaintDroid's findings demonstrate its ability to expose potential misbehavior by third-party applications.TaintDroid is an efficient, system-wide dynamic taint tracking and analysis system for real-time privacy monitoring on smartphones. It tracks the flow of privacy-sensitive data through third-party applications, enabling users and security services to identify misbehaving applications. TaintDroid leverages Android's virtualized execution environment for real-time analysis, with minimal performance overhead (32% for CPU-bound microbenchmarks) and negligible impact on interactive applications. In 2010, TaintDroid analyzed 30 popular Android applications and found 20 potentially misused users' private information. A similar fraction was found in 2012 studies. TaintDroid automatically labels data from privacy-sensitive sources and propagates labels through program variables, files, and interprocess messages. When tainted data is transmitted, TaintDroid logs the data's labels, the application responsible, and the destination. This provides real-time feedback to users and security services.
TaintDroid uses dynamic taint analysis to monitor privacy-sensitive information. Sensitive information is first identified at a taint source, where a taint marking is assigned. Dynamic taint analysis tracks how labeled data impacts other data, potentially leaking the original sensitive information. This tracking is performed at the instruction level, and affected data is identified before it leaves the system at a taint sink (usually the network interface). TaintDroid integrates multiple granularities of taint propagation: variable-level, method-level, message-level, and file-level. It uses the Dalvik VM interpreter for variable-level tracking, message-level tracking between applications, method-level tracking for system-provided native libraries, and file-level tracking for persistent data.
TaintDroid's design ensures efficient taint tracking by leveraging architectural features of virtual-machine-based smartphones. It instruments the VM interpreter to provide variable-level tracking, uses message-level tracking between applications, and employs method-level tracking for native libraries. Taint tags are stored adjacent to variables in memory, providing spatial locality. TaintDroid also handles taint propagation for native code, IPC, and secondary storage. It uses a taint interface library to communicate taint tags with the tracking system, and integrates with the Dalvik JIT compiler for performance optimization.
TaintDroid's privacy analysis identifies when tainted information is transmitted over the network interface. It places hooks in Android's LocationManager and SensorManager services for low-bandwidth sensors, and in ContentResolver and CursorWrapper classes for information databases. It instruments APIs for device identifiers such as phone number, SIM card identifiers, and device identifier. TaintDroid's application studies found that 15 of 30 applications in 2010 reported users' locations to remote advertising servers, and 7 collected device ID and other sensitive information. Similar findings were observed in 2012 studies. TaintDroid's findings demonstrate its ability to expose potential misbehavior by third-party applications.