论文标题

APER:Android应用程序的Evolution-Aware-Aware运行时滥用滥用检测

Aper: Evolution-Aware Runtime Permission Misuse Detection for Android Apps

论文作者

Wang, Sinan, Wang, Yibo, Zhan, Xian, Wang, Ying, Liu, Yepang, Luo, Xiapu, Cheung, Shing-Chi

论文摘要

Android平台在6.0版中介绍了运行时许可模型。新模型可大大提高数据隐私和用户体验,但为应用程序开发人员带来了新的挑战。首先,它允许用户自由撤销授予的权限。因此,开发人员不能假设授予应用程序的许可将继续被授予。相反,他们应该在调用危险API之前仔细检查其应用程序。其次,许可规范不断发展,将新型的兼容性问题带入了生态系统。为了了解挑战的影响,我们对13,352个受欢迎的Google Play应用程序进行了一项实证研究。我们发现,在许可管理后,有86.0%的应用程序使用了危险的API,而61.2%的应用程序使用了不断发展的危险API。如果应用程序无法正确处理权限撤销或平台差异,则可能发生意外的运行时问题,甚至导致应用程序崩溃。我们将这种Android运行时许可问题称为ARP错误。不幸的是,现有的运行时许可问题检测工具无法有效地处理异步许可管理和权限规范演变所引起的ARP错误。为了填补空白,我们设计了一个静态分析仪,APER,该仪对Android应用程序执行定义和主导者分析,以检测两种类型的ARP错误。为了将APER与现有工具进行比较,我们从60个真正的ARP错误构建了一个基准ARPFIX。我们的实验结果表明,APER在ARPFIX上的ARPDroid和RevDroid和RevDroid的两种学术工具明显优于ARPFIX的工业工具,而F1得分的平均提高了46.3%。此外,APER在214个OpenSource Android应用程序中成功找到了34个ARP错误,其中大多数可能会根据我们的手动验证导致异常的应用程序行为(例如应用程序崩溃)。

The Android platform introduces the runtime permission model in version 6.0. The new model greatly improves data privacy and user experience, but brings new challenges for app developers. First, it allows users to freely revoke granted permissions. Hence, developers cannot assume that the permissions granted to an app would keep being granted. Instead, they should make their apps carefully check the permission status before invoking dangerous APIs. Second, the permission specification keeps evolving, bringing new types of compatibility issues into the ecosystem. To understand the impact of the challenges, we conducted an empirical study on 13,352 popular Google Play apps. We found that 86.0% apps used dangerous APIs asynchronously after permission management and 61.2% apps used evolving dangerous APIs. If an app does not properly handle permission revocations or platform differences, unexpected runtime issues may happen and even cause app crashes. We call such Android Runtime Permission issues as ARP bugs. Unfortunately, existing runtime permission issue detection tools cannot effectively deal with the ARP bugs induced by asynchronous permission management and permission specification evolution. To fill the gap, we designed a static analyzer, Aper, that performs reaching definition and dominator analysis on Android apps to detect the two types of ARP bugs. To compare Aper with existing tools, we built a benchmark, ARPfix, from 60 real ARP bugs. Our experiment results show that Aper significantly outperforms two academic tools, ARPDroid and RevDroid, and an industrial tool, Lint, on ARPfix, with an average improvement of 46.3% on F1-score. In addition, Aper successfully found 34 ARP bugs in 214 opensource Android apps, most of which can result in abnormal app behaviors (such as app crashes) according to our manual validation.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源