介绍
这是来自CCS 2022的一篇论文《Detecting and Measuring Misconfigured Manifests in Android Apps》,作者如下:Yuqing Yang, Mohamed Elsabagh, Chaoshun Zuo, Ryan Johnson, Angelos Stavrou, Zhiqiang Lin
前置知识
- manifest文件错误配置根据其根本原因可以分为以下几类:
1.元素和属性的位置错误:
1)元素超出上界 2)一个元素放在无效的父元素中 3)错误的元素声明
2.缺少元素和属性:缺少某个必须的元素或属性
3.意外的元素和属性:如出现一个没有定义的元素
4.属性值错误:属性值不满足数据类型 - 错误配置android:permission属性会导致组件劫持
- 错误配置android:allowbackup会导致信息泄露
文章主要内容
-
开发了自动化检测工具MANIScope,用于检测manifest文件中的错误配置。该检测工具是基于NLP技术。
-
使用该工具对1,853,862个app和692,106个pre-installed app进行测量
数据集来源
应用数据集来自两部分:2020年google play中的180万应用程序以及2011年到2020年期间的三星固件中提取的pre-installed app
ManiScope工作原理
简单来说该工具由五个主要的组件构成:文件收集器、位置约束提取器、定量约束提取器、模式生成器、manifest验证器。
文件收集器:获取manifest文件,使用自上而下的遍历算法识别属性和元素
位置约束提取器:判断元素和属性的位置关系
定量约束提取器:包括实体辨别器和约束过滤器。实体辨别器处理元素缺失,约束过滤器用判断意外元素和属性
模式生成器:通过位置约束和定量约束将其转换为结构化数据
manifest验证器:对丢失、错位和意外三种错误配置进行验证
测量角度
1.manifest提取分析
1)提取结果
对不同版本的Android开发者文档,使用该工具提取约束特征信息,并在最新的文档中进行手动测试证明其提取数据的正确率
2)对manifest文档进化进行评估
2.manifest错误配置检测
检测结果:
3.与安全相关的错误配置
1)错误配置的严重程度和影响评估
根据CVSS评分指标对错误配置进行分类
2)google play和pre-installed app中受错误配置的影响情况
目前我仍未找到该工具的源代码,若有找到该工具源代码的朋友恳请私信我。