当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Scalable online vetting of Android apps for measuring declared SDK versions and their consistency with API calls
Empirical Software Engineering ( IF 3.5 ) Pub Date : 2021-01-01 , DOI: 10.1007/s10664-020-09897-6
Daoyuan Wu , Debin Gao , David Lo

Android has been the most popular smartphone system with multiple platform versions active in the market. To manage the application’s compatibility with one or more platform versions, Android allows apps to declare the supported platform SDK versions in their manifest files. In this paper, we conduct a systematic study of this modern software mechanism. Our objective is to measure the current practice of declared SDK versions (which we term as DSDK versions afterwards) in real apps, and the (in)consistency between DSDK versions and their host apps’ API calls. To successfully analyze a modern dataset of 22,687 popular apps (with an average app size of 25MB), we design a scalable approach that operates on the Android bytecode level and employs a lightweight bytecode search for app analysis. This approach achieves a good performance suitable for online vetting in app markets, requiring only around 5 seconds to process an app on average. Besides shedding light on the characteristics of DSDK in the wild, our study quantitatively measures two side effects of inappropriate DSDK versions: (i) around 35% apps under-set the minimum DSDK versions and could incur runtime crashes, but fortunately, only 11.3% apps could crash on Android 6.0 and above; (ii) around 2% apps, due to under-claiming the targeted DSDK versions, are potentially exploitable by remote code execution, and half of them invoke the vulnerable API via embedded third-party libraries. These results indicate the importance and difficulty of declaring correct DSDK , and our work can help developers fulfill this goal.

中文翻译:

可扩展的 Android 应用在线审查,用于衡量已声明的 SDK 版本及其与 API 调用的一致性

Android 一直是市场上最流行的智能手机系统,具有多个平台版本。为了管理应用程序与一个或多个平台版本的兼容性,Android 允许应用程序在其清单文件中声明支持的平台 SDK 版本。在本文中,我们对这种现代软件机制进行了系统的研究。我们的目标是衡量实际应用程序中声明的 SDK 版本(我们之后称为 DSDK 版本)的当前做法,以及 DSDK 版本与其宿主应用程序的 API 调用之间的(不)一致性。为了成功分析包含 22,687 个流行应用程序(平均应用程序大小为 25MB)的现代数据集,我们设计了一种可扩展的方法,该方法在 Android 字节码级别运行并采用轻量级字节码搜索进行应用程序分析。这种方法在应用市场中获得了适合在线审核的良好性能,平均只需要大约 5 秒来处理一个应用。除了揭示 DSDK 在野外的特性外,我们的研究还定量衡量了不适当 DSDK 版本的两个副作用:(i) 大约 35% 的应用程序低于最低 DSDK 版本并可能导致运行时崩溃,但幸运的是,只有 11.3%应用程序可能会在 Android 6.0 及更高版本上崩溃;(ii) 由于对目标 DSDK 版本的声明不足,大约 2% 的应用程序可能会被远程代码执行利用,其中一半的应用程序通过嵌入式第三方库调用易受攻击的 API。这些结果表明声明正确的 DSDK 的重要性和难度,我们的工作可以帮助开发人员实现这一目标。处理一个应用程序平均只需要大约 5 秒。除了揭示 DSDK 在野外的特性外,我们的研究还定量衡量了不适当 DSDK 版本的两个副作用:(i) 大约 35% 的应用程序低于最低 DSDK 版本并可能导致运行时崩溃,但幸运的是,只有 11.3%应用程序可能会在 Android 6.0 及更高版本上崩溃;(ii) 由于对目标 DSDK 版本的声明不足,大约 2% 的应用程序可能会被远程代码执行利用,其中一半的应用程序通过嵌入式第三方库调用易受攻击的 API。这些结果表明声明正确的 DSDK 的重要性和难度,我们的工作可以帮助开发人员实现这一目标。处理一个应用程序平均只需要大约 5 秒。除了揭示 DSDK 在野外的特性外,我们的研究还定量衡量了不适当 DSDK 版本的两个副作用:(i) 大约 35% 的应用程序低于最低 DSDK 版本并可能导致运行时崩溃,但幸运的是,只有 11.3%应用程序可能会在 Android 6.0 及更高版本上崩溃;(ii) 由于对目标 DSDK 版本的声明不足,大约 2% 的应用程序可能会被远程代码执行利用,其中一半的应用程序通过嵌入式第三方库调用易受攻击的 API。这些结果表明声明正确的 DSDK 的重要性和难度,我们的工作可以帮助开发人员实现这一目标。我们的研究定量衡量了不适当 DSDK 版本的两个副作用:(i) 大约 35% 的应用程序低于最低 DSDK 版本并可能导致运行时崩溃,但幸运的是,只有 11.3% 的应用程序会在 Android 6.0 及更高版本上崩溃;(ii) 由于对目标 DSDK 版本的声明不足,大约 2% 的应用程序可能会被远程代码执行利用,其中一半的应用程序通过嵌入式第三方库调用易受攻击的 API。这些结果表明声明正确的 DSDK 的重要性和难度,我们的工作可以帮助开发人员实现这一目标。我们的研究定量衡量了不适当 DSDK 版本的两个副作用:(i) 大约 35% 的应用低于最低 DSDK 版本并可能导致运行时崩溃,但幸运的是,只有 11.3% 的应用会在 Android 6.0 及更高版本上崩溃;(ii) 大约 2% 的应用程序,由于对目标 DSDK 版本的声明不足,可能会被远程代码执行利用,其中一半的应用程序通过嵌入式第三方库调用易受攻击的 API。这些结果表明声明正确的 DSDK 的重要性和难度,我们的工作可以帮助开发人员实现这一目标。可能会被远程代码执行利用,其中一半通过嵌入式第三方库调用易受攻击的 API。这些结果表明声明正确的 DSDK 的重要性和难度,我们的工作可以帮助开发人员实现这一目标。可能会被远程代码执行利用,其中一半通过嵌入式第三方库调用易受攻击的 API。这些结果表明声明正确的 DSDK 的重要性和难度,我们的工作可以帮助开发人员实现这一目标。
更新日期:2021-01-01
down
wechat
bug