首页> 中国专利> 软件开发工具包的安全检测方法、装置以及存储介质

软件开发工具包的安全检测方法、装置以及存储介质

摘要

本公开提供了一种软件开发工具包的安全检测方法、装置以及存储介质,涉及计算机安全技术领域,其中的方法包括:获取终端应用调用的软件开发工具包的元数据信息;根据所述元数据信息生成与所述软件开服工具包相对应的标识信息并存储;获取所述标识信息并对所述标识信息进行安全分析处理;基于安全分析处理结果生成安全检测分析报告。本公开的方法、装置以及存储介质,能够便捷、高效地对软件开发工具包是否安全进行分析,定位非安全的软件开发工具包和终端应用;从软件开发工具包的安全角度出发,实现对终端应用调用的第三方软件开发工具包进行威胁分析和统一管理,能够提升安全检测的准确性。

著录项

  • 公开/公告号CN113821797A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 中国电信股份有限公司;

    申请/专利号CN202010560790.4

  • 发明设计人 吴吞;姚腾东;黄玉娈;

    申请日2020-06-18

  • 分类号G06F21/56(20130101);

  • 代理机构11038 中国贸促会专利商标事务所有限公司;

  • 代理人方亮

  • 地址 100033 北京市西城区金融大街31号

  • 入库时间 2023-06-19 13:46:35

说明书

技术领域

本公开涉及计算机安全技术领域,尤其涉及一种软件开发工具包的安全检测方法、装置以及存储介质。

背景技术

移动互联网的高速发展不可避免的引发各类新的安全风险,针对移动用户的流量资费、个人隐私、金融资产、商业情报乃至国家机密等重要信息资源的窃取,广泛而且隐蔽。近年来,Android应用信息泄露事件频发,例如个人隐私泄露、手游勒索病毒、用户信息泄露事件等。在现有的Android应用安全测试方案中,通常利用分析工具对Android应用的源代码进行安全分析和代码审计。但是,现有的检测方法仅考虑了程序自身的安全性,忽视了程序调用的第三方SDK的安全性,无法针对各个厂商的SDK进行威胁分析和统一管理。

发明内容

有鉴于此,本发明要解决的一个技术问题是提供一种软件开发工具包的安全检测方法、装置以及存储介质。

根据本公开的第一方面,提供一种软件开发工具包的安全检测方法,包括:获取终端应用调用的软件开发工具包的元数据信息;根据所述元数据信息生成与所述软件开服工具包相对应的标识信息并存储;获取所述标识信息并对所述标识信息进行安全分析处理;基于安全分析处理结果生成安全检测分析报告。

可选地,所述获取终端应用调用的软件开发工具包的元数据信息包括:在终端中,基于Xposed框架对所述终端应用调用的所述软件开发工具包的KPI进行Hook处理,获取所述终端应用调用的所述软件开发工具包列表和所述元数据信息。

可选地,所述基于所述元数据信息生成与所述软件开服工具包相对应的标识信息包括:获取所述终端应用的名称信息、所述软件开服工具包的版本信息;根据预设的标识生成规则,使用所述名称信息、所述版本信息和所述元数据信息生成所述标识信息。

可选地,所述获取所述标识信息,对所述标识信息进行安全分析处理包括:基于所述标识信息在本地生成软件开发工具包应用列表;依次获取所述软件开发工具包应用列表中的各个软件开发工具包的标识信息,并提取此标识信息中的所述元数据信息;使用预设的匹配算法将所述元数据信息与预设的非安全的元数据信息进行匹配;其中,所述匹配算法包括:KMP算法;基于匹配结果确定非安全的软件开发工具包。

可选地,基于安全分析处理结果生成安全检测分析报告包括:基于所述标识信息获取所述非安全的软件开发工具包的版本信息;根据所述标识信息获取与所述非安全的软件开发工具包相关联的非安全的终端应用;根据所述版本信息和所述非安全的终端应用的关联关系生成所述安全检测分析报告。

可选地,所述元数据信息包括:软件开发工具包的IP、Domain、电话、凭证、Email信息中的至少一个信息;所述终端应用包括:Android应用。

根据本公开的第二方面,提供一种软件开发工具包的安全检测装置,包括:元数据获取模块,用于获取终端应用调用的软件开发工具包的元数据信息;标识生成模块,用于根据所述元数据信息生成与所述软件开服工具包相对应的标识信息并存储;安全分析模块,用于获取所述标识信息并对所述标识信息进行安全分析处理;分析报告生成模块,用于基于安全分析处理结果生成安全检测分析报告。

可选地,所述元数据获取模块,具体用于在终端中,基于Xposed框架对所述终端应用调用的所述软件开发工具包的KPI进行Hook处理,获取所述终端应用调用的所述软件开发工具包列表和所述元数据信息。

可选地,所述标识生成模块,具体用于获取所述终端应用的名称信息、所述软件开服工具包的版本信息;根据预设的标识生成规则,使用所述名称信息、所述版本信息和所述元数据信息生成所述标识信息。

可选地,所述安全分析模块,具体用于基于所述标识信息在本地生成软件开发工具包应用列表;依次获取所述软件开发工具包应用列表中的各个软件开发工具包的标识信息,并提取此标识信息中的所述元数据信息;使用预设的匹配算法将所述元数据信息与预设的非安全的元数据信息进行匹配;其中,所述匹配算法包括:KMP算法;基于匹配结果确定非安全的软件开发工具包。

可选地,分析报告生成模块,具体用于基于所述标识信息获取所述非安全的软件开发工具包的版本信息;根据所述标识信息获取与所述非安全的软件开发工具包相关联的非安全的终端应用;根据所述版本信息和所述非安全的终端应用的关联关系生成所述安全检测分析报告。

根据本公开的第三方面,提供一种软件开发工具包的安全检测装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。

根据本公开的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上的方法。

本公开的软件开发工具包的安全检测方法、装置以及存储介质,获取终端应用调用的软件开发工具包的元数据信息,生成与软件开服工具包相对应的标识信息,对标识信息进行安全分析处理并生成安全检测分析报告;能够便捷、高效地对软件开发工具包是否安全进行分析,定位非安全的软件开发工具包和终端应用;从软件开发工具包的安全角度出发,实现对终端应用调用的第三方软件开发工具包进行威胁分析和统一管理,能够提升安全检测的准确性。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为根据本公开的软件开发工具包的安全检测方法的一个实施例的流程示意图;

图2为根据本公开的软件开发工具包的安全检测方法的一个实施例中的生成标识信息的流程示意图;

图3为根据本公开的软件开发工具包的安全检测方法的一个实施例中的进行安全分析处理的流程示意图;

图4为根据本公开的软件开发工具包的安全检测方法的一个实施例中的生成安全检测分析报告的流程示意图;

图5为根据本公开的软件开发工具包的安全检测装置的一个实施例的模块示意图;

图6为根据本公开的软件开发工具包的安全检测装置的另一个实施例的模块示意图。

具体实施方式

下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。下面结合各个图和实施例对本公开的技术方案进行多方面的描述。

图1为根据本公开的软件开发工具包的安全检测方法的一个实施例的流程示意图,如图1所示:

步骤101,获取终端应用调用的软件开发工具包的元数据信息。

终端可以为手机、平板电脑等,终端应用可以为各种APP应用,例如为Android应用等。软件开发工具包SDK为建立应用软件时的开发工具的集合,包括为某个程序设计语言提供应用程序接口API的一些文件等。元数据(Metadata)为描述数据的数据,为对数据及信息资源的描述性信息。软件开发工具包的元数据信息包括软件开发工具包的IP、Domain、电话、凭证、Email信息中的至少一个信息,元数据信息描述软件开发工具包的提供商或作者的信息,可以从软件开发工具包的相关文件中获取。

步骤102,根据元数据信息生成与软件开服工具包相对应的标识信息并存储。

步骤103,获取标识信息并对标识信息进行安全分析处理。

步骤104,基于安全分析处理结果生成安全检测分析报告。

在一个实施例中,可以使用多种方法获取终端应用调用的软件开发工具包的元数据信息。安卓的Hook技术有Xposed框架的Hook技术,Xposed提供Hook(钩子)应用方法,Xposed框架可以在Java层Hook。在终端中,基于Xposed框架对终端应用调用的软件开发工具包的KPI进行Hook处理,获取终端应用调用的软件开发工具包列表和元数据信息。

例如,终端的操作系统为Android,终端应用为Android应用。在Android设备上通过用户接口配置检测应用,基于Xposed框架对Android应用使用的API进行Hook,获取Android应用调用的软件开发工具包列表和元数据信息,元数据信息包括IP、Domain、电话、凭证、Email信息等。可以使用现有的Xposed框架以及Hook技术,获取终端应用调用的软件开发工具包列表和元数据信息。

图2为根据本公开的软件开发工具包的安全检测方法的一个实施例中的生成标识信息的流程示意图,如图2所示:

步骤201,获取终端应用的名称信息、软件开服工具包的版本信息。

步骤202,根据预设的标识生成规则,使用名称信息、版本信息和元数据信息生成标识信息。

在一个实施例中,通过对Android应用所调用的软件开发工具包进行提取分析,采用多种标识生成规则,使用各个软件开发工具包的IP、Domain、Phone(电话)、Cert(凭证)、Email等元数据信息、终端应用的名称信息以及软件开服工具包的版本信息生成标识信息并进行存储,可以结合终端应用的MD5信息进行加密存储。

标识信息可以作为该版本的软件开发工具包的标识,可以采用现有的多种方法获取终端应用的名称信息、软件开服工具包的版本信息。例如,终端应用的名称信息为:翼支付;软件开服工具包的版本信息为天翼统一账号认证1.0,标识信息可以为:(翼支付:天翼统一账号认证1.0:IP:Domain:Phone:Cert:Email)。

在一个实施例中,可以采用多种方法进行安全分析处理。图3为根据本公开的软件开发工具包的安全检测方法的一个实施例中的进行安全分析处理的流程示意图,如图3所示:

步骤301,基于标识信息在本地生成软件开发工具包应用列表。

可以在PC端进行安全分析处理。通过PC端登录用户接口,获取终端或云端存储的多条标识信息,基于多条标识信息在PC端生成软件开发工具包应用列表。

步骤302,依次获取软件开发工具包应用列表中的各个软件开发工具包的标识信息,并提取此标识信息中的元数据信息。

步骤303,使用预设的匹配算法将元数据信息与预设的非安全的元数据信息进行匹配;其中,匹配算法包括KMP算法等。

匹配算法可以为字符串的匹配算法。KMP算法是一种改进的字符串匹配算法,核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。KMP算法具体是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息,可在一个主文本字符串内查找一个词的出现位置。

步骤304,基于匹配结果确定非安全的软件开发工具包。

可以在PC端预先设置有恶意元数据信息,使用KMP算法将元数据信息与恶意元数据信息等进行匹配,基于匹配结果确定非安全的软件开发工具包,并快速定位受影响的终端应用。

例如,PC端预先设置有恶意的Domain信息,依次获取软件开发工具包应用列表中的各个软件开发工具包的标识信息,并提取标识信息中的Domain信息(元数据信息),使用KMP算法将标识信息中的Domain信息与恶意的Domain信息进行匹配,如果标识信息中的Domain信息与恶意的Domain信息相同,则确定此软件开发工具包为非安全的软件开发工具包,基于对应的标识信息获取非安全的软件开发工具包的版本信息以及对应的终端应用的名称信息。

在一个实施例中,生成安全检测分析报告可以采用多种方法。图4为根据本公开的软件开发工具包的安全检测方法的一个实施例中的生成安全检测分析报告的流程示意图,如图4所示:

步骤401,基于标识信息获取非安全的软件开发工具包的版本信息。

步骤402,根据标识信息获取与非安全的软件开发工具包相关联的非安全的终端应用。

步骤404,根据版本信息和非安全的终端应用的关联关系生成安全检测分析报告。

在一个实施例中,遍历软件开发工具包应用列表中各个软件开发工具包的标识信息,获取非安全的软件开发工具包的标识信息,从标识信息中获取非安全的软件开发工具包的版本信息。获取与非安全的软件开发工具包的版本信息相对应的终端应用的名称信息,确定非安全的终端应用。

根据版本信息和非安全的终端应用的关联关系生成安全检测分析报告,安全检测分析报告包含有非安全的软件开发工具包的版本信息、调用非安全的软件开发工具包的非安全的终端应用的名称信息、以及版本信息和非安全的终端应用的关联关系(调用关系)。通过提供安全检测分析报告,能够方便安全人员对终端应用调用的第三方软件开发工具包进行威胁分析和统一管理。

在一个实施例中,如图5所示,本公开提供一种软件开发工具包的安全检测装置50,包括元数据获取模块51、标识生成模块52、安全分析模块53和分析报告生成模块54。

元数据获取模块51获取终端应用调用的软件开发工具包的元数据信息。标识生成模块52根据元数据信息生成与软件开服工具包相对应的标识信息并存储。安全分析模块53获取标识信息并对标识信息进行安全分析处理。分析报告生成模块54基于安全分析处理结果生成安全检测分析报告。

在一个实施例中,元数据获取模块51在终端中,基于Xposed框架对终端应用调用的软件开发工具包的KPI进行Hook处理,获取终端应用调用的软件开发工具包列表和元数据信息。

标识生成模块52获取终端应用的名称信息、软件开服工具包的版本信息,根据预设的标识生成规则,使用名称信息、版本信息和元数据信息生成标识信息。

安全分析模块53基于标识信息在本地生成软件开发工具包应用列表,依次获取软件开发工具包应用列表中的各个软件开发工具包的标识信息,并提取此标识信息中的元数据信息。安全分析模块53使用预设的匹配算法将元数据信息与预设的非安全的元数据信息进行匹配;其中,匹配算法包括KMP算法。安全分析模块53基于匹配结果确定非安全的软件开发工具包。

分析报告生成模块54基于标识信息获取非安全的软件开发工具包的版本信息,根据标识信息获取与非安全的软件开发工具包相关联的非安全的终端应用。分析报告生成模块54根据版本信息和非安全的终端应用的关联关系生成安全检测分析报告。

在一个实施例中,图6为根据本公开的软件开发工具包的安全检测装置的另一个实施例的模块示意图。如图6所示,该装置可包括存储器61、处理器62、通信接口63以及总线64。存储器61用于存储指令,处理器62耦合到存储器61,处理器62被配置为基于存储器61存储的指令执行实现上述的软件开发工具包的安全检测方法。

存储器61可以为高速RAM存储器、非易失性存储器(non-volatile memory)等,存储器61也可以是存储器阵列。存储器61还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器62可以为中央处理器CPU,或专用集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本公开的软件开发工具包的安全检测方法的一个或多个集成电路。

在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的软件开发工具包的安全检测方法。

上述实施例提供的软件开发工具包的安全检测方法、装置以及存储介质,获取终端应用调用的软件开发工具包的元数据信息,生成与软件开服工具包相对应的标识信息,对标识信息进行安全分析处理并生成安全检测分析报告;能够便捷、高效地对软件开发工具包是否安全进行分析,定位非安全的软件开发工具包和终端应用;从软件开发工具包的安全角度出发,实现对终端应用调用的第三方软件开发工具包进行威胁分析和统一管理,能够提升安全检测的准确性,提高网络安全监管质量,能够提升网络服务水平。

可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号