DroidRA

Taming reflection to support whole-program analysis of android apps

Li Li, Tegawendé F. Bissyandé, Damien Octeau, Jacques Klein

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

49 Citations (Scopus)

Abstract

Android developers heavily use reflection in their apps for legitimate reasons, but also significantly for hiding malicious actions. Unfortunately, current state-of-the-art static analysis tools for Android are challenged by the presence of reflective calls which they usually ignore. Thus, the results of their security analysis, e.g., for private data leaks, are inconsistent given the measures taken by malware writers to elude static detection. We propose the DroidRA instrumentation-based approach to address this issue in a non-invasive way. With DroidRA, we reduce the resolution of reflective calls to a composite constant propagation problem. We leverage the COAL solver to infer the values of reflection targets and app, and we eventually instrument this app to include the corresponding traditional Java call for each reflective call. Our approach allows to boost an app so that it can be immediately analyzable, including by such static analyzers that were not reflection-aware. We evaluate DroidRA on benchmark apps as well as on real-world apps, and demonstrate that it can allow state-of-the-art tools to provide more sound and complete analysis results.

Original languageEnglish
Title of host publicationISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis
PublisherAssociation for Computing Machinery (ACM)
Pages318-329
Number of pages12
ISBN (Electronic)9781450343909
DOIs
Publication statusPublished - 18 Jul 2016
Externally publishedYes
EventInternational Symposium on Software Testing and Analysis 2016 - Saarbrucken, Germany
Duration: 18 Jul 201620 Jul 2016
Conference number: 25th
http://issta2016.cispa.saarland/

Conference

ConferenceInternational Symposium on Software Testing and Analysis 2016
Abbreviated titleISSTA 2016
CountryGermany
CitySaarbrucken
Period18/07/1620/07/16
Internet address

Keywords

  • Android
  • DroidRA
  • Reflection
  • Static analysis

Cite this

Li, L., Bissyandé, T. F., Octeau, D., & Klein, J. (2016). DroidRA: Taming reflection to support whole-program analysis of android apps. In ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis (pp. 318-329). Association for Computing Machinery (ACM). https://doi.org/10.1145/2931037.2931044
Li, Li ; Bissyandé, Tegawendé F. ; Octeau, Damien ; Klein, Jacques. / DroidRA : Taming reflection to support whole-program analysis of android apps. ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis. Association for Computing Machinery (ACM), 2016. pp. 318-329
@inproceedings{73e470a921eb42e588ad4bcfa32e25df,
title = "DroidRA: Taming reflection to support whole-program analysis of android apps",
abstract = "Android developers heavily use reflection in their apps for legitimate reasons, but also significantly for hiding malicious actions. Unfortunately, current state-of-the-art static analysis tools for Android are challenged by the presence of reflective calls which they usually ignore. Thus, the results of their security analysis, e.g., for private data leaks, are inconsistent given the measures taken by malware writers to elude static detection. We propose the DroidRA instrumentation-based approach to address this issue in a non-invasive way. With DroidRA, we reduce the resolution of reflective calls to a composite constant propagation problem. We leverage the COAL solver to infer the values of reflection targets and app, and we eventually instrument this app to include the corresponding traditional Java call for each reflective call. Our approach allows to boost an app so that it can be immediately analyzable, including by such static analyzers that were not reflection-aware. We evaluate DroidRA on benchmark apps as well as on real-world apps, and demonstrate that it can allow state-of-the-art tools to provide more sound and complete analysis results.",
keywords = "Android, DroidRA, Reflection, Static analysis",
author = "Li Li and Bissyand{\'e}, {Tegawend{\'e} F.} and Damien Octeau and Jacques Klein",
year = "2016",
month = "7",
day = "18",
doi = "10.1145/2931037.2931044",
language = "English",
pages = "318--329",
booktitle = "ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis",
publisher = "Association for Computing Machinery (ACM)",
address = "United States of America",

}

Li, L, Bissyandé, TF, Octeau, D & Klein, J 2016, DroidRA: Taming reflection to support whole-program analysis of android apps. in ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis. Association for Computing Machinery (ACM), pp. 318-329, International Symposium on Software Testing and Analysis 2016, Saarbrucken, Germany, 18/07/16. https://doi.org/10.1145/2931037.2931044

DroidRA : Taming reflection to support whole-program analysis of android apps. / Li, Li; Bissyandé, Tegawendé F.; Octeau, Damien; Klein, Jacques.

ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis. Association for Computing Machinery (ACM), 2016. p. 318-329.

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

TY - GEN

T1 - DroidRA

T2 - Taming reflection to support whole-program analysis of android apps

AU - Li, Li

AU - Bissyandé, Tegawendé F.

AU - Octeau, Damien

AU - Klein, Jacques

PY - 2016/7/18

Y1 - 2016/7/18

N2 - Android developers heavily use reflection in their apps for legitimate reasons, but also significantly for hiding malicious actions. Unfortunately, current state-of-the-art static analysis tools for Android are challenged by the presence of reflective calls which they usually ignore. Thus, the results of their security analysis, e.g., for private data leaks, are inconsistent given the measures taken by malware writers to elude static detection. We propose the DroidRA instrumentation-based approach to address this issue in a non-invasive way. With DroidRA, we reduce the resolution of reflective calls to a composite constant propagation problem. We leverage the COAL solver to infer the values of reflection targets and app, and we eventually instrument this app to include the corresponding traditional Java call for each reflective call. Our approach allows to boost an app so that it can be immediately analyzable, including by such static analyzers that were not reflection-aware. We evaluate DroidRA on benchmark apps as well as on real-world apps, and demonstrate that it can allow state-of-the-art tools to provide more sound and complete analysis results.

AB - Android developers heavily use reflection in their apps for legitimate reasons, but also significantly for hiding malicious actions. Unfortunately, current state-of-the-art static analysis tools for Android are challenged by the presence of reflective calls which they usually ignore. Thus, the results of their security analysis, e.g., for private data leaks, are inconsistent given the measures taken by malware writers to elude static detection. We propose the DroidRA instrumentation-based approach to address this issue in a non-invasive way. With DroidRA, we reduce the resolution of reflective calls to a composite constant propagation problem. We leverage the COAL solver to infer the values of reflection targets and app, and we eventually instrument this app to include the corresponding traditional Java call for each reflective call. Our approach allows to boost an app so that it can be immediately analyzable, including by such static analyzers that were not reflection-aware. We evaluate DroidRA on benchmark apps as well as on real-world apps, and demonstrate that it can allow state-of-the-art tools to provide more sound and complete analysis results.

KW - Android

KW - DroidRA

KW - Reflection

KW - Static analysis

UR - http://www.scopus.com/inward/record.url?scp=84984868148&partnerID=8YFLogxK

U2 - 10.1145/2931037.2931044

DO - 10.1145/2931037.2931044

M3 - Conference Paper

SP - 318

EP - 329

BT - ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis

PB - Association for Computing Machinery (ACM)

ER -

Li L, Bissyandé TF, Octeau D, Klein J. DroidRA: Taming reflection to support whole-program analysis of android apps. In ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis. Association for Computing Machinery (ACM). 2016. p. 318-329 https://doi.org/10.1145/2931037.2931044