Android静态分析中的调用图 soundness
软件工程
2024-07-11 v1
摘要
静态分析在理论上是sound的,但实际实现可能以不sound的方式遗漏对程序代码的分析。任何此类遗漏都构成对工具输出有效性的严重威胁。我们的工作是首次测量这些遗漏的流行程度。此前,研究人员和分析师并不了解静态分析遗漏了什么、遗漏的代码类型,或背后的原因。为填补这一空白,我们对13个静态分析工具和一个动态分析在1000个Android应用上进行测试。动态分析中出现但静态分析中未出现的任何方法,都被视为不soundness。我们的发现包括:(1)围绕外部框架构建的应用挑战静态分析器。在平均情况下,13个静态分析工具未能捕获61%的动态执行方法。(2)调用图构建的高精度水平等同于高水平的不soundness;(3)没有现有方法显著改善静态分析的soundness。这包括专为特定机制设计的工具,如DroidRA用于解决反射问题,以及系统性方法如EdgeMiner,系统性地捕获Android框架中的所有回调。(4)建模入口点方法挑战调用图构建,危及soundness。
引用
@article{arxiv.2407.07804,
title = {Call Graph Soundness in Android Static Analysis},
author = {Jordan Samhi and René Just and Tegawendé F. Bissyandé and Michael D. Ernst and Jacques Klein},
journal= {arXiv preprint arXiv:2407.07804},
year = {2024}
}