SDK收集用户信息的检测方法及装置、电子设备、存储介质制造方法及图纸

技术编号:27742732 阅读:17 留言:0更新日期:2021-03-19 13:36
本申请提供一种SDK收集用户信息的检测方法及装置、电子设备、计算机可读存储介质,方法包括:获取待检测SDK;依据对应于敏感函数的第一正则表达式对待检测SDK进行全局搜索,判断是否存在与正则表达式匹配的嫌疑函数;若存在嫌疑函数,判断是否存在与嫌疑函数对应的调用链;若存在,使用测试数据运行待检测SDK,通过动态执行脚本生成待检测SDK运行时嫌疑函数和数据采集函数的数据使用日志;依据第二正则表达式和第三正则表达式对数据使用日志进行全局搜索,判断是否存在与第二正则表达式或第三正则表达式匹配的数据使用记录;若存在数据使用记录,确定待检测SDK会收集用户信息。本申请实现了对SDK收集用户信息的行为的检测。

【技术实现步骤摘要】
SDK收集用户信息的检测方法及装置、电子设备、存储介质
本申请涉及计算机
,特别涉及一种SDK收集用户信息的检测方法及装置、电子设备、计算机可读存储介质。
技术介绍
手机和平板电脑上的APP(Application,应用软件)内通常会包括SDK(SoftwareDevelopmentKit,软件开发工具包),这些SDK可以帮助APP实现地图、支付、统计、社交、广告等一系列功能。据统计,国内开发的APP平均会使用十多个SDK。在这种情况下,SDK的安全性对整个移动互联网生态建设非常重要。目前,SDK未经允许收集用户信息已成为非常普遍的问题。
技术实现思路
本申请实施例的目的在于提供一种SDK收集用户信息的检测方法及装置、电子设备、计算机可读存储介质,用于检测SDK是否存在收集用户信息的行为。一方面,本申请提供了一种SDK收集用户信息的检测方法,包括:获取待检测SDK;依据对应于敏感函数的第一正则表达式对所述待检测SDK进行全局搜索,判断是否存在与所述正则表达式匹配的嫌疑函数;若存在所述嫌疑函数,对所述嫌疑函数进行调用链回溯,判断是否存在与所述嫌疑函数对应的调用链;其中,所述调用链包括数据采集函数;当存在所述调用链,使用测试数据运行所述待检测SDK,并通过动态执行脚本生成所述待检测SDK运行时所述嫌疑函数和所述数据采集函数的数据使用日志;依据对应于敏感数据的第二正则表达式和对应于敏感权限的第三正则表达式对所述数据使用日志进行全局搜索,判断是否存在与所述第二正则表达式或所述第三正则表达式匹配的数据使用记录;如果存在所述数据使用记录,确定所述待检测SDK会收集用户信息。在一实施例中,在所述获取待检测SDK之前,所述方法还包括:获取所述第一正则表达式、所述第二正则表达式、所述第三正则表达式和所述动态执行脚本。在一实施例中,所述获取待检测SDK,包括:对目标应用软件进行反编译处理,获得反编译代码;判断所述反编译代码的文件夹名称是否与预设的SDK标识相同;当任一文件夹名称与所述SDK标识相同时,将所述文件夹内的反编译代码作为待检测SDK,并依据所述文件夹内的反编译代码和所述SDK标识生成所述待检测SDK的SDK指纹。在一实施例中,在确定所述待检测SDK会收集用户信息后,所述方法还包括:为所述待检测SDK生成检测报告;在预设的历史检测记录库中保存所述待检测SDK的SDK指纹和所述检测报告的关联关系。在一实施例中,所述方法还包括:当确定所述待检测SDK不会收集用户信息后,为所述待检测SDK生成检测报告;在所述历史检测记录库中保存所述待检测SDK的SDK指纹和所述检测报告的关联关系。在一实施例中,在所述依据对应于敏感函数的第一正则表达式对所述待检测SDK进行全局搜索之前,所述方法还包括:依据所述待检测SDK的SDK指纹查找所述历史检测记录库,判断是否存在与所述SDK指纹对应的检测报告;若否,执行所述依据对应于敏感函数的第一正则表达式对所述待检测SDK进行全局搜索的步骤;若是,结束检测流程。另一方面,本申请还提供了一种SDK收集用户信息的检测装置,包括:获取模块,用于获取待检测SDK;第一判断模块,用于依据对应于敏感函数的第一正则表达式对所述待检测SDK进行全局搜索,判断是否存在与所述正则表达式匹配的嫌疑函数;第二判断模块,用于若存在所述嫌疑函数,对所述嫌疑函数进行调用链回溯,判断是否存在与所述嫌疑函数对应的调用链;其中,所述调用链包括数据采集函数;生成模块,用于当存在所述调用链,使用测试数据运行所述待检测SDK,并通过动态执行脚本生成所述待检测SDK运行时所述嫌疑函数和所述数据采集函数的数据使用日志;第三判断模块,用于依据对应于敏感数据的第二正则表达式和对应于敏感权限的第三正则表达式对所述数据使用日志进行全局搜索,判断是否存在与所述第二正则表达式或所述第三正则表达式匹配的数据使用记录;确定模块,用于如果存在所述数据使用记录,确定所述待检测SDK会收集用户信息。在一实施例中,所述获取模块,还用于:对目标应用软件进行反编译处理,获得反编译代码;判断所述反编译代码的文件夹名称是否与预设的SDK标识相同;当任一文件夹名称与所述SDK标识相同时,将所述文件夹内的反编译代码作为待检测SDK,并依据所述文件夹内的反编译代码和所述SDK标识生成所述待检测SDK的SDK指纹。进一步的,本申请还提供了一种电子设备,所述电子设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述SDK收集用户信息的检测方法。另外,本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述SDK收集用户信息的检测方法。在申请方案中,通过对应于敏感数据的第一正则表达式对待检测SDK进行全局搜索,确定出嫌疑函数,并对嫌疑函数进行调用链回溯,确定数据采集函数,进而可以通过动态执行脚本生成待检测SDK运行时嫌疑函数和数据采集函数的数据使用日志,通过对应于敏感数据的第二正则表达式和对应于敏感权限的第三正则表达式对数据使用日志进行全局搜索,可确定待检测SDK是否会收集用户信息;通过静态扫描和动态扫描结合的方式,准确地检测出SDK的信息收集行为。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。图1为本申请一实施例提供的SDK收集用户信息的检测方法的应用场景示意图;图2为本申请一实施例提供的电子设备的结构示意图;图3为本申请一实施例提供的SDK收集用户信息的检测方法的流程示意图;图4为本申请一实施例提供的获取待检测SDK的方法的流程示意图;图5为本申请一实施例提供的SDK收集用户信息的检测装置的框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。图1为本申请实施例提供的SDK收集用户信息的检测方法的应用场景示意图。如图1所示,该应用场景包括服务端20、服务端30和客户端40;服务端20可以是搭载应用软件发布平台的服务器、服务器集群或云计算中心,可以向服务端30提供应用软件;客户端40可以是主机、手机、平板电脑等电子设备,可以向服务端30提供应用软件或软件开发工具包;服务端30可以是服务器、服务器集群或云计算中心,可以获取从服务端20和客户端40获取应用软件和软件开发工具包,并检测软件开发工具包是否会收集本文档来自技高网...

【技术保护点】
1.一种SDK收集用户信息的检测方法,其特征在于,包括:/n获取待检测SDK;/n依据对应于敏感函数的第一正则表达式对所述待检测SDK进行全局搜索,判断是否存在与所述正则表达式匹配的嫌疑函数;/n若存在所述嫌疑函数,对所述嫌疑函数进行调用链回溯,判断是否存在与所述嫌疑函数对应的调用链;其中,所述调用链包括数据采集函数;/n当存在所述调用链,使用测试数据运行所述待检测SDK,并通过动态执行脚本生成所述待检测SDK运行时所述嫌疑函数和所述数据采集函数的数据使用日志;/n依据对应于敏感数据的第二正则表达式和对应于敏感权限的第三正则表达式对所述数据使用日志进行全局搜索,判断是否存在与所述第二正则表达式或所述第三正则表达式匹配的数据使用记录;/n如果存在所述数据使用记录,确定所述待检测SDK会收集用户信息。/n

【技术特征摘要】
1.一种SDK收集用户信息的检测方法,其特征在于,包括:
获取待检测SDK;
依据对应于敏感函数的第一正则表达式对所述待检测SDK进行全局搜索,判断是否存在与所述正则表达式匹配的嫌疑函数;
若存在所述嫌疑函数,对所述嫌疑函数进行调用链回溯,判断是否存在与所述嫌疑函数对应的调用链;其中,所述调用链包括数据采集函数;
当存在所述调用链,使用测试数据运行所述待检测SDK,并通过动态执行脚本生成所述待检测SDK运行时所述嫌疑函数和所述数据采集函数的数据使用日志;
依据对应于敏感数据的第二正则表达式和对应于敏感权限的第三正则表达式对所述数据使用日志进行全局搜索,判断是否存在与所述第二正则表达式或所述第三正则表达式匹配的数据使用记录;
如果存在所述数据使用记录,确定所述待检测SDK会收集用户信息。


2.根据权利要求1所述的方法,其特征在于,在所述获取待检测SDK之前,所述方法还包括:
获取所述第一正则表达式、所述第二正则表达式、所述第三正则表达式和所述动态执行脚本。


3.根据权利要求1所述的方法,其特征在于,所述获取待检测SDK,包括:
对目标应用软件进行反编译处理,获得反编译代码;
判断所述反编译代码的文件夹名称是否与预设的SDK标识相同;
当任一文件夹名称与所述SDK标识相同时,将所述文件夹内的反编译代码作为待检测SDK,并依据所述文件夹内的反编译代码和所述SDK标识生成所述待检测SDK的SDK指纹。


4.根据权利要求1或3所述的方法,其特征在于,在确定所述待检测SDK会收集用户信息后,所述方法还包括:
为所述待检测SDK生成检测报告;
在预设的历史检测记录库中保存所述待检测SDK的SDK指纹和所述检测报告的关联关系。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当确定所述待检测SDK不会收集用户信息后,为所述待检测SDK生成检测报告;
在所述历史检测记录库中保存所述待检测SDK的SDK指纹和所述检测报告的关联关系。


6.根据权利要求5所述的方法,其特征在于,在所述依据对应于敏感函数的第一正则表...

【专利技术属性】
技术研发人员:邵淼徐江林胡高岩
申请(专利权)人:微医云杭州控股有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1