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 language | English |
---|---|
Title of host publication | Proceedings of the 25th International Symposium on Software Testing and Analysis |
Editors | Andreas Zeller, Abhik Roychoudhury |
Place of Publication | New York NY USA |
Publisher | Association for Computing Machinery (ACM) |
Pages | 318-329 |
Number of pages | 12 |
ISBN (Electronic) | 9781450343909 |
DOIs | |
Publication status | Published - 2016 |
Externally published | Yes |
Event | International Symposium on Software Testing and Analysis 2016 - Saarbrucken, Germany Duration: 18 Jul 2016 → 20 Jul 2016 Conference number: 25th http://issta2016.cispa.saarland/ |
Conference
Conference | International Symposium on Software Testing and Analysis 2016 |
---|---|
Abbreviated title | ISSTA 2016 |
Country | Germany |
City | Saarbrucken |
Period | 18/07/16 → 20/07/16 |
Internet address |
Keywords
- Android
- DroidRA
- Reflection
- Static analysis