【技术实现步骤摘要】
供应链代码识别方法、装置、服务器及可读存储介质
本说明书实施例涉及计算机
,尤其涉及一种供应链代码识别方法、装置、服务器及可读存储介质。
技术介绍
随着科学技术的不断发展,电子技术也得到了飞速的发展,越来越多的功能可以通过安装在电子设备中的应用程序实现。现有技术中,在应用程序的开发过程中,会引入第三方SDK,即供应链代码,例如,在整个应用程序开发的项目中,会涉及大量团队,不同的团队可能需要使用不同的供应链代码完成各自的开发。
技术实现思路
本说明书实施例提供一种供应链代码识别方法、装置、服务器及计算机可读存储介质。第一方面,本说明书实施例提供一种供应链代码识别方法,该方法包括:获取目标应用程序的目标代码,所述目标代码中包含有所述目标应用程序在开发过程中使用的供应链代码;构建与所述目标代码对应的调用图谱,其中,所述调用图谱中包含多个节点,每个节点的节点属性包含有该节点所属代码块的包名信息;基于目标包名信息,在所述调用图谱包含的多个节点中筛选出包名信息与所述目标包名信息相匹配的节点,构成目标节点集合;获取所述目标节点集合的目标特征值,若所述目标特征值满足预设的供应链代码节点特征值范围,则确定所述目标包名信息对应的代码块为供应链代码。第二方面,本说明书实施例提供一种供应链代码识别装置,该装置包括:获取模块,用于获取目标应用程序的目标代码,所述目标代码中包含有所述目标应用程序在开发过程中使用的供应链代码;调用图谱构建模块,用于构建与所述 ...
【技术保护点】
1.一种供应链代码识别方法,所述方法包括:/n获取目标应用程序的目标代码,所述目标代码中包含有所述目标应用程序在开发过程中使用的供应链代码;/n构建与所述目标代码对应的调用图谱,其中,所述调用图谱中包含多个节点,每个节点的节点属性包含有该节点所属代码块的包名信息;/n基于目标包名信息,在所述调用图谱包含的多个节点中筛选出包名信息与所述目标包名信息相匹配的节点,构成目标节点集合;/n获取所述目标节点集合的目标特征值,若所述目标特征值满足预设的供应链代码节点特征值范围,则确定所述目标包名信息对应的代码块为供应链代码。/n
【技术特征摘要】
1.一种供应链代码识别方法,所述方法包括:
获取目标应用程序的目标代码,所述目标代码中包含有所述目标应用程序在开发过程中使用的供应链代码;
构建与所述目标代码对应的调用图谱,其中,所述调用图谱中包含多个节点,每个节点的节点属性包含有该节点所属代码块的包名信息;
基于目标包名信息,在所述调用图谱包含的多个节点中筛选出包名信息与所述目标包名信息相匹配的节点,构成目标节点集合;
获取所述目标节点集合的目标特征值,若所述目标特征值满足预设的供应链代码节点特征值范围,则确定所述目标包名信息对应的代码块为供应链代码。
2.根据权利要求1所述的方法,所述获取目标应用程序的目标代码,包括:
获取所述目标应用程序的二进制代码;
对所述二进制代码进行反编译,将反编译结果作为所述目标代码。
3.根据权利要求1所述的方法,所述构建与所述目标代码对应的调用图谱,包括:
对所述目标代码进行代码分析,提取每个节点的节点属性以及节点之间的关系,以构建图谱数据库;
基于所述图谱数据库,生成所述调用图谱。
4.根据权利要求1所述的方法,在所述基于目标包名信息,在所述调用图谱包含的多个节点中筛选出包名信息与所述目标包名信息相匹配的节点之前,所述方法还包括:
基于所述调用图谱中每个节点对应的包名信息,生成包名信息集合;
基于M个预设包名长度,分别对所述包名信息集合进行M轮包名裁剪,生成M组裁剪后的包名信息集合,其中,针对每轮包名裁剪,基于该轮包名裁剪对应的预设包名长度,将所述包名信息集合中的每个包名信息的长度裁剪成所述预设包名长度,生成该轮裁剪后的包名信息集合,M为正整数;
在所述M组裁剪后的包名信息集合中确定出所述目标包名信息。
5.根据权利要求4所述的方法,所述基于目标包名信息,在所述调用图谱包含的多个节点中筛选出包名信息与所述目标包名信息相匹配的节点,构成目标节点集合,包括:
遍历所述M组裁剪后的包名信息集合中的每个包名信息,通过以下步骤获得与每个包名信息对应的目标节点集合:
针对每组裁剪后的包名信息集合中的每个包名信息,将该包名信息作为所述目标包名信息,并基于该组裁剪后的包名信息集合对应的预设包名长度,对所述调用图谱中的每个节点的包名信息进行裁剪;基于所述目标包名信息,对每个节点的裁剪后的包名信息进行聚类,以获得与所述目标包名信息对应的目标节点集合,其中,所述目标节点集合中的每个节点的裁剪后的包名信息与所述目标包名信息之间的相似度不小于预设相似度。
6.根据权利要求1所述的方法,所述获取所述目标节点集合的目标特征值,若所述目标特征值满足预设的供应链代码节点特征值范围,则确定所述目标包名信息对应的代码块为供应链代码,包括:
获取所述目标节点集合中包含的节点总数、入口节点数、出口节点数、以及外部调用节点数;
将所述节点总数、所述入口节点数、所述出口节点数以及所述外部调用节点数与所述预设的供应链代码节点特征值范围进行匹配,若匹配成功,则确定与所述目标包名信息对应的代码块为供应链代码。
7.根据权利要求1所述的方法,若确定出多个供应链代码时,所述方法还包括:
确定所述多个供应链代码中每个供应链代码的风险等级;
基于所述每个供应链代码的风险等级,对所述每个供应链代码进行安全加固。
8.一种供应链代码识别装置,所述装置...
【专利技术属性】
技术研发人员:赵豪,李文杰,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。