[论文解读] An Empirical Study on Android-related Vulnerabilities
本文对660个与Android相关的漏洞进行了大规模实证研究,分析了其类型、受影响的操作系统层级以及漏洞存活时间。通过手动和自动化分析安全公告及版本控制数据,研究发现内存缓冲区溢出和输入验证缺陷是主要成因,内核和本地库是最易受攻击的组件,并揭示了漏洞平均存活时间为724天——凸显了在移动操作系统开发中亟需更先进的检测工具和更安全的编码实践。
Mobile devices are used more and more in everyday life. They are our cameras, wallets, and keys. Basically, they embed most of our private information in our pocket. For this and other reasons, mobile devices, and in particular the software that runs on them, are considered first-class citizens in the software-vulnerabilities landscape. Several studies investigated the software-vulnerabilities phenomenon in the context of mobile apps and, more in general, mobile devices. Most of these studies focused on vulnerabilities that could affect mobile apps, while just few investigated vulnerabilities affecting the underlying platform on which mobile apps run: the Operating System (OS). Also, these studies have been run on a very limited set of vulnerabilities. In this paper we present the largest study at date investigating Android-related vulnerabilities, with a specific focus on the ones affecting the Android OS. In particular, we (i) define a detailed taxonomy of the types of Android-related vulnerability; (ii) investigate the layers and subsystems from the Android OS affected by vulnerabilities; and (iii) study the survivability of vulnerabilities (i.e., the number of days between the vulnerability introduction and its fixing). Our findings could help OS and apps developers in focusing their verification & validation activities, and researchers in building vulnerability detection tools tailored for the mobile world.
研究动机与目标
- 理解与Android相关的漏洞类型及其根本原因,特别是影响Android操作系统的漏洞。
- 识别Android操作系统中哪些架构层级和子系统最常受到漏洞影响。
- 分析漏洞的存活时间——衡量漏洞在代码库中从引入到修复的时间跨度——在Android代码库中的表现。
- 提供一份详细的Android漏洞分类体系,以指导开发人员和研究人员提升安全性。
- 为面向移动平台的自动化漏洞检测工具的设计提供依据。
提出的方法
- 对来自官方Android安全公告、CVE-details以及国家漏洞数据库的660个漏洞进行人工分析。
- 使用通用弱点枚举(CWE)分类体系对漏洞进行分类,以建立详细的漏洞类型层次结构。
- 通过分析提交历史记录和漏洞报告,识别受影响的Android操作系统层级和子系统。
- 应用SZZ算法,通过定位引入漏洞的最早提交和修复提交,估算漏洞的存活时间。
- 使用最小和最大存活时间估计值,以减轻SZZ算法可能产生的误报,提升结果的鲁棒性。
- 对部分漏洞进行人工验证,以确保分类和存活时间估算的准确性。
实验结果
研究问题
- RQ1与Android相关的漏洞的主要类型及其层级关系是什么,特别是影响Android操作系统的漏洞?
- RQ2Android操作系统内部哪些层级和子系统最常受到安全漏洞的影响?
- RQ3Android相关漏洞在被修复前通常在代码库中存活多长时间?
- RQ4Android操作系统中漏洞的主要根本原因是什么,特别是在底层组件中?
- RQ5研究发现如何能为安全编码实践和自动化漏洞检测工具的开发提供指导?
主要发现
- 最常见的漏洞类型是内存缓冲区边界操作限制不当,占所有漏洞的显著比例。
- Linux内核中的硬件驱动程序和本地库是最易受攻击的组件,表明底层系统组件是高风险区域。
- 平均而言,Android漏洞在引入后至少存活724天才被修复,凸显了长期存在的安全债务问题。
- 输入验证不当、类型错误以及数值处理缺陷是导致漏洞的主要因素之一。
- 大多数漏洞源于不安全的编码实践,尤其是在内存和数据处理方面,表明静态分析和安全设计优先的实践可预防大量问题。
- 本研究构建的漏洞分类体系为开发针对性检测工具以及提升移动操作系统开发中的验证与确认工作奠定了基础。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。