Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

GPU-Based Static Data-Flow Analysis for Fast and Scalable Android App Vetting

Conference ·
Many popular vetting tools for Android applications use static code analysis techniques. In particular, Interprocedural Data-Flow Graph (IDFG) construction is the computation at the core of Android static data-flow analysis and consumes most of the analysis time. Many analysis tools use a worklist algorithm, an iterative fixed-point approach, to construct the IDFG. In this paper, we observe that a straightforward GPU parallelization of the worklist algorithm leads to significant underutilization of the GPU resources. We identify four performance bottlenecks, namely, frequent dynamic memory allocations, high branch divergence, workload imbalance, and irregular memory access patterns. Accordingly, we propose GDroid, a GPU-based worklist algorithm implementation with multiple fine-grained optimizations tailored to common characteristics of Android applications. The optimizations considered are: matrix-based data structure, memory access-based node grouping, and worklist merging. Our experimental evaluation, performed on 1000 Android applications, shows that the proposed optimizations are beneficial to performance, and GDroid can achieve up to 128X speedups against a plain GPU implementation.
Research Organization:
Argonne National Laboratory (ANL)
Sponsoring Organization:
National Science Foundation (NSF); USDOE Office of Science - Office of Advanced Scientific Computing Research (ASCR); USDOE Office of Science - Office of Basic Energy Sciences
DOE Contract Number:
AC02-06CH11357
OSTI ID:
1804071
Country of Publication:
United States
Language:
English

References (39)

A GPU implementation of inclusion-based points-to analysis
  • Mendez-Lojo, Mario; Burtscher, Martin; Pingali, Keshav
  • Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming - PPoPP '12 https://doi.org/10.1145/2145816.2145831
conference January 2012
GPU-Based Iterative Medical CT Image Reconstructions journal March 2018
Algorithmic Techniques for Solving Graph Problems on the Automata Processor conference May 2016
SEP-graph: finding shortest execution paths for graph processing under a hybrid framework on GPU
  • Wang, Hao; Geng, Liang; Lee, Rubao
  • PPoPP '19: 24th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming https://doi.org/10.1145/3293883.3295733
conference February 2019
Robotomata: A framework for approximate pattern matching of big data on an automata processor conference December 2017
O3FA: A Scalable Finite Automata-based Pattern-Matching Engine for Out-of-Order Deep Packet Inspection
  • Yu, Xiaodong; Feng, Wu-chun; Yao, Danfeng (Daphne)
  • ANCS '16: Symposium on Architectures for Networking and Communications Systems, Proceedings of the 2016 Symposium on Architectures for Networking and Communications Systems https://doi.org/10.1145/2881025.2881034
conference March 2016
AAlign: A SIMD Framework for Pairwise Sequence Alignment on x86-Based Multi-and Many-Core Processors conference May 2016
Accelerating CUDA graph algorithms at maximum warp conference January 2011
Precise interprocedural dataflow analysis with applications to constant propagation journal January 1996
Inter-procedural data-flow analysis with IFDS/IDE and Soot conference January 2012
Information-Flow Analysis of Android Applications in DroidSafe conference January 2015
Enterprise: breadth-first graph traversal on GPUs
  • Liu, Hang; Huang, H. Howie
  • SC15: The International Conference for High Performance Computing, Networking, Storage and Analysis, Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis https://doi.org/10.1145/2807591.2807594
conference November 2015
Revisiting State Blow-Up: Automatically Building Augmented-FA While Preserving Functional Equivalence journal October 2014
cuBLASTP: Fine-Grained Parallelization of Protein Sequence Search on CPU+GPU journal July 2017
Demystifying automata processing: GPUs, FPGAs or Micron's AP? conference January 2017
Throughput-oriented GPU memory allocation
  • Gelado, Isaac; Garland, Michael
  • PPoPP '19: 24th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming https://doi.org/10.1145/3293883.3295727
conference February 2019
Precise and compact modular procedure summaries for heap manipulating programs journal June 2011
Scalable GPU graph traversal
  • Merrill, Duane; Garland, Michael; Grimshaw, Andrew
  • Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming - PPoPP '12 https://doi.org/10.1145/2145816.2145832
conference January 2012
FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps journal June 2014
GPU acceleration of regular expression matching for large datasets: exploring the implementation space conference January 2013
An Enhanced Image Reconstruction Tool for Computed Tomography on GPUs conference May 2017
Soot: a Java bytecode optimization framework conference January 2010
Do Android taint analysis tools keep their promises?
  • Pauck, Felix; Bodden, Eric; Wehrheim, Heike
  • ESEC/FSE '18: 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering https://doi.org/10.1145/3236024.3236029
conference October 2018
cuART: Fine-Grained Algebraic Reconstruction Technique for Computed Tomography Images on GPUs conference May 2016
EigenCFA: accelerating flow analysis with GPUs
  • Prabhu, Tarun; Ramalingam, Shreyas; Might, Matthew
  • Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '11 https://doi.org/10.1145/1926385.1926445
conference January 2011
Optimized Non-contiguous MPI Datatype Communication for GPU Clusters: Design, Implementation and Evaluation with MVAPICH2 conference September 2011
JN-SAF: Precise and Efficient NDK/JNI-aware Inter-language Static Analysis Framework for Security Vetting of Android Applications with Native Code
  • Wei, Fengguo; Lin, Xingwei; Ou, Xinming
  • CCS '18: 2018 ACM SIGSAC Conference on Computer and Communications Security, Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security https://doi.org/10.1145/3243734.3243835
conference October 2018
Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware conference May 2016
Amandroid: A Precise and General Inter-component Data Flow Analysis Framework for Security Vetting of Android Apps
  • Wei, Fengguo; Roy, Sankardas; Ou, Xinming
  • CCS'14: 2014 ACM SIGSAC Conference on Computer and Communications Security, Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security https://doi.org/10.1145/2660267.2660357
conference November 2014
An Efficient GPU Implementation of Inclusion-Based Pointer Analysis journal February 2016
GPU-Aware MPI on RDMA-Enabled Clusters: Design, Implementation and Evaluation journal October 2014
Implementation techniques for efficient data-flow analysis of large programs conference January 2001
A generic worklist algorithm for graph reachability problems in program analysis conference January 2002
BFS-4K: An Efficient Implementation of BFS for Kepler GPU Architectures journal July 2015
Collusive Data Leak and More: Large-scale Threat Analysis of Inter-app Communications
  • Bosu, Amiangshu; Liu, Fang; Yao, Danfeng (Daphne)
  • ASIA CCS '17: ACM Asia Conference on Computer and Communications Security, Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security https://doi.org/10.1145/3052973.3053004
conference April 2017
Precise interprocedural dataflow analysis via graph reachability
  • Reps, Thomas; Horwitz, Susan; Sagiv, Mooly
  • Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '95 https://doi.org/10.1145/199448.199462
conference January 1995
Profiling user-trigger dependence for Android malware detection journal March 2015
Composite Constant Propagation: Application to Android Inter-Component Communication Analysis conference May 2015
Fast and Efficient Graph Traversal Algorithm for CPUs: Maximizing Single-Node Efficiency
  • Chhugani, Jatin; Satish, Nadathur; Kim, Changkyu
  • 2012 IEEE International Symposium on Parallel & Distributed Processing (IPDPS), 2012 IEEE 26th International Parallel and Distributed Processing Symposium https://doi.org/10.1109/IPDPS.2012.43
conference May 2012

Similar Records

Population Count on Intel® CPU, GPU, and FPGA
Conference · Tue Dec 31 23:00:00 EST 2019 · OSTI ID:1804082

Highly Efficient Compensation-Based Parallelism for Wavefront Loops on GPUs
Conference · Tue May 01 00:00:00 EDT 2018 · OSTI ID:1474547

Efficient Parallelization of Irregular Applications on GPU Architectures
Thesis/Dissertation · Sun Dec 31 23:00:00 EST 2023 · OSTI ID:2349242