一种基于配置模糊匹配的安卓应用组成成分分析方法
- 国知局
- 2024-12-06 12:28:17
本发明属于网络安全领域,尤其涉及一种基于配置模糊匹配的安卓应用组成成分分析方法。
背景技术:
1、android第三方库是广告商、支付公司、社交、推送平台和地图服务商等第三方服务公司为方便app开发人员使用其服务而开发的工具包,包括广告、支付、统计、社交、推送、地图等类别。越来越多的app通过集成第三方库来丰富自身功能。但是第三方库的引入,在给app带来功能支持的同时,也有可能会引入安全问题,例如安全漏洞和隐私滥用等。因此,app的组成成分分析越来越受到安全研究者和软件分析机构的重视。
2、目前国内外有基于多级聚类的散列特征指纹库进行匹配的工具libradar、literadar、libscout等工具,可以识别一些特征库中的sdk。但是上述工具的方法需要大量样本的建模,无法探测未知sdk的信息,且无法提取版本、开发者密钥等信息。
3、因此,设计并实现一种可以快速提取出app中的第三方库信息和开发者密钥的方法,对软件供应链分析具有重要意义。
技术实现思路
1、本发明的目的在于针对现有技术的不足,提供了一种基于配置模糊匹配的安卓应用组成成分分析方法。
2、本发明的目的是通过以下技术方案来实现的:一种基于配置模糊匹配的安卓应用组成成分分析方法,包括以下步骤:
3、(1)预处理阶段:对android安装包进行解压缩,反编译dex字节码,加载关键字集合sk、特征库sp和编译版本信息清洗正则规则集cv;
4、(2)配置提取阶段:利用关键字集合sk针对配置文件、反编译源代码、动态库进行信息提取,得到提取的信息i;
5、(3)数据清洗阶段:用特征库sp对提取的信息i进行模糊匹配,依据匹配程度进行过滤。
6、进一步地,步骤(1)中,加载特征库sp后需要构建模糊匹配模版集的后缀自动机从而使匹配时间控制在可接受的范围内。
7、进一步地,所述步骤(2)具体包括以下步骤:
8、(2.1)使用关键字集合sk过滤配置文件,提取配置文件的键值对所包含的所有sdk名称和键名,形成集合s:其中,xi表示任意一个sdk名称,yi表示sdk名称对应的键名,并提取配置文件的键值对所包含的所有sdk版本作为集合vdv:vdv=[v1…vj…vn],其中,vj表示任意一个sdk版本;在此过程中获取所有的字符串、整数引用并通过资源文件解引用;
9、通过在res/values/文件夹下查找集合s中每一个sdk名称xi所对应的xml结构中的标签,通过读取标签的属性找到xi对应的值作为解引用后的名称xi′,得到集合vs:vs=[x′1 … x′i … x′n];
10、并通过在res/values/文件夹下查找集合vdv中每一个sdk版本vj所对应的xml结构中的标签,通过读取标签的属性找到vj对应的值作为解引用后的版本v′j,得到集合vv:vv=[v1′…v′j…v′n];
11、(2.2)遍历反编译源代码的所有public static string定义语句,提取每一个public static string定义语句的代码编码的初始化值作为集合vc;
12、(2.3)提取动态库的库名、导出函数与字符串信息作为集合sd;
13、(2.4)将提取得到的集合s、集合vdv、集合vs、集合vv、集合vc和集合sd作为提取的信息i。
14、进一步地,所述步骤(3)具体包括以下子步骤:
15、(3.1)清除集合s中sdk名称和键名相同的无意义结果,得到清除后的集合
16、(3.2)对集合vs、集合vc和集合sd与特征库sp进行基于最长公共子串的模糊匹配,匹配长度大于x个字符或目标串总长度y%则认为成功匹配;
17、(3.3)根据版本信息清洗规则集cv对集合vv中每一个解引用后的版本的字段值进行正则替换,生成规范化版本信息。
18、进一步地,步骤(1)中,加载的编译版本信息清洗正则规则集cv来源包括但不限于maven仓库和全国sdk管理服务平台,且需要将sdk名字和厂商分别转为拼音、英文、英文简写后加入特征库。
19、本发明的有益效果是:
20、1)可提取sdk版本信息、开发者标识和密钥等信息;
21、2)可提取未知特征库的sdk信息。
技术特征:1.一种基于配置模糊匹配的安卓应用组成成分分析方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于配置模糊匹配的安卓应用组成成分分析方法,其特征在于,步骤(1)中,加载特征库sp后需要构建模糊匹配模版集的后缀自动机从而使匹配时间控制在可接受的范围内。
3.根据权利要求1所述的一种基于配置模糊匹配的安卓应用组成成分分析方法,其特征在于,所述步骤(2)具体包括以下步骤:
4.根据权利要求3所述的一种基于配置模糊匹配的安卓应用组成成分分析方法,其特征在于,所述步骤(3)具体包括以下子步骤:
5.根据权利要求1所述的一种基于配置模糊匹配的安卓应用组成成分分析方法,其特征在于,步骤(1)中,加载的编译版本信息清洗正则规则集cv来源包括但不限于maven仓库和全国sdk管理服务平台,且需要将sdk名字和厂商分别转为拼音、英文、英文简写后加入特征库。
技术总结本发明公开了一种基于配置模糊匹配的安卓应用组成成分分析方法。在进行移动应用软件分析时,提取第三方组件是一件费时费力的事情。本发明通过对可能出现SDK信息的配置文件与代码进行针对性搜索与提取,并基于特征库模糊匹配对结果进行过滤,实现对APK组成成分和硬编码密钥情况的静态分析。技术研发人员:张浩然,刘智扬,吴春明,边振昆,陶逸铭,汪昌兴,魏之千,买买江·克然木受保护的技术使用者:浙江大学技术研发日:技术公布日:2024/12/2本文地址:https://www.jishuxx.com/zhuanli/20241204/341578.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。