一句话:提出流、上下文、线程敏感的静态分析框架 ER Catcher,用摘要函数与向量时钟检测 Android 事件竞态缺陷。
Android 平台提供了多种并发机制,但移动开发者难以正确掌握,已有研究表明事件竞态等并发缺陷在实际 Android 应用中十分普遍。本文提出 ER Catcher,一个流敏感、上下文敏感且线程敏感的静态分析框架,用于检测 Android 应用中的事件竞态缺陷。其关键设计包括:一种新的摘要函数,用于建模应用与库中方法的并发行为;以及一种静态构造的向量时钟,用于快速分析 happens-before 关系。这些设计使 ER Catcher 不仅能以显著更高的准确率发现事件竞态缺陷,而且相比现有最先进技术仅需其一小部分分析时间。
Android platform provisions a number of sophisticated concurrency mechanisms for the development of apps. The concurrency mechanisms, while powerful, are quite difficult to properly master by mobile developers. In fact, prior studies have shown concurrency issues, such as event-race defects, to be prevalent among real-world Android apps. In this paper, we propose a flow-, context-, and thread-sensitive static analysis framework, called ER Catcher, for detection of event-race defects in Android apps. ER Catcher introduces a new type of summary function aimed at modeling the concurrent behavior of methods in both Android apps and libraries. In addition, it leverages a novel, statically constructed Vector Clock for rapid analysis of happens-before relations. Altogether, these design choices enable ER Catcher to not only detect event-race defects with a substantially higher degree of accuracy, but also in a fraction of time compared to the existing state-of-the-art technique.