paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Call Graph Soundness in Android Static Analysis

Android 静态分析中调用图的健全性
ISSTA Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis2024匹配度 3/10 · 该论文关注 Android 静态分析调用图的不健全性度量,属于经典程序分析领域,但未涉及用户核心方向中的 ML/Agentic 程序、LLM 改进静态分析、浮点或贝叶斯程序分析。其问题驱动的实证方法与用户偏好有一定契合,但研究场景与目标方向距离较远。引用 12 inbox
Jordan Samhi, René Just, Tegawendé F. Bissyandé, Michael D. Ernst, Jacques Klein
crossref: 2026-09-12

AI 速览

一句话:首次度量 Android 静态分析调用图遗漏动态执行方法的普遍性,并揭示高精度与高不健全相关。

静态分析理论上健全,但实现可能漏析程序代码,从而威胁结果有效性。本文首次度量此类遗漏的普遍程度:对 1000 个 Android 应用运行 13 个静态分析工具与动态分析,将动态执行但静态未捕获的方法视为不健全。结果显示,平均 13 个工具漏掉 61% 的动态执行方法;基于外部框架的应用尤其困难;调用图构造精度高往往意味着不健全程度高;现有方法(如 DroidRA 处理反射、EdgeMiner 系统捕获回调)均未显著改善健全性;入口点方法建模也挑战调用图构造并危及健全性。

问题
静态分析实现可能因漏析代码而不健全;此前不清楚遗漏范围、被遗漏代码类型及遗漏原因。
方法
在 1000 个 Android 应用上运行 13 个静态分析工具和动态分析,以动态执行方法为基准度量静态调用图遗漏。
评估
发现平均漏掉 61% 的动态执行方法,高精度与高不健全相关,现有反射、回调与入口点建模方法均未显著提升健全性。
原文摘要(Abstract)

Static analysis is sound in theory, but an implementation may unsoundly fail to analyze all of a program's code. Any such omission is a serious threat to the validity of the tool's output. Our work is the first to measure the prevalence of these omissions. Previously, researchers and analysts did not know what is missed by static analysis, what sort of code is missed, or the reasons behind these omissions. To address this gap, we ran 13static analysis tools and a dynamic analysis on 1000 Android apps. Any method in the dynamic analysis but not in a static analysis is an unsoundness. Our findings include the following. (1) Apps built around external frameworks challenge static analyzers. On average, the 13 static analysis tools failed to capture 61% of the dynamically-executed methods. (2) A high level of precision in call graph construction is a synonym for a high level of unsoundness. (3) No existing approach significantly improves static analysis soundness. This includes those specifically tailored for a given mechanism, such as DroidRA to address reflection. It also includes systematic approaches, such as EdgeMiner, capturing all callbacks in the Android framework systematically. (4) Modeling entry point methods challenges call graph construction which jeopardizes soundness.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot8451,
  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},
  booktitle = {ISSTA},
  year = {2024},
  doi = {10.1145/3650212.3680333}
}