CN110990833A - 一种sdk安全检测方法及相关设备 - Google Patents

一种sdk安全检测方法及相关设备 Download PDF

Info

Publication number
CN110990833A
CN110990833A CN201911057489.5A CN201911057489A CN110990833A CN 110990833 A CN110990833 A CN 110990833A CN 201911057489 A CN201911057489 A CN 201911057489A CN 110990833 A CN110990833 A CN 110990833A
Authority
CN
China
Prior art keywords
sdk
information
target
sample
target object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911057489.5A
Other languages
English (en)
Other versions
CN110990833B (zh
Inventor
张登超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Simplecredit Micro-Lending Co ltd
Original Assignee
Simplecredit Micro-Lending Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Simplecredit Micro-Lending Co ltd filed Critical Simplecredit Micro-Lending Co ltd
Priority to CN201911057489.5A priority Critical patent/CN110990833B/zh
Publication of CN110990833A publication Critical patent/CN110990833A/zh
Application granted granted Critical
Publication of CN110990833B publication Critical patent/CN110990833B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Abstract

本申请实施例公开了一种SDK安全检测方法及相关设备,所述方法应用于计算机技术领域,包括:在检测到开发周期中的预设触发事件时,获取预设触发事件对应的目标对象的软件开发工具包SDK信息,并获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息。进一步地,可以检测各个SDK样本中是否存在与上述SDK信息匹配的目标SDK样本,若是,则确定该目标对象存在SDK安全漏洞。采用本申请实施例,可以在开发周期中高效地实现对SDK的安全性检测。

Description

一种SDK安全检测方法及相关设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种SDK安全检测方法及相关设备。
背景技术
在软件开发生命周期过程中,开发人员使用项目自动化构建工具(例如Maven、Gradle、Ant等)安装软件开发工具包(Software Development Kit,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安全漏洞之后,还可以确定所述函数在所述代码编写页面中所处的目标位置;在所述目标位置输出第二提示信息,所述第二提示信息用于提示所述函数存在SDK安全漏洞。
在一个实施例中,所述预设触发事件包括打包请求,所述打包请求用于请求将所述开发周期编译的代码打包成应用程序,所述预设触发事件对应的目标对象为所述开发周期所使用的SDK,所述在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应目标对象的SDK信息的具体实施方式为:当检测到所述开发周期中的打包请求时,确定所述开发周期所使用的目标SDK,并获取所述目标SDK的SDK信息。
第二方面,本申请实施例提供了一种SDK安全检测装置,该SDK安全检测装置包括用于执行上述第一方面的方法的模块。
第三方面,本申请实施例提供了一种服务器,该服务器包括处理器、通信接口和存储器,所述处理器、通信接口和存储器相互连接,其中,所述通信接口受所述处理器的控制用于收发消息,所述存储器用于存储支持服务器执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本申请实施例中,可以在检测到开发周期中的预设触发事件时,获取预设触发事件对应的目标对象的软件开发工具包SDK信息,并获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息。进一步地,可以检测各个SDK样本中是否存在与上述SDK信息匹配的目标SDK样本,若是,则确定该目标对象存在SDK安全漏洞。采用这样的方式,可以在开发周期中高效地实现对SDK的安全性检测。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种SDK安全检测方法的流程示意图;
图2是本申请实施例提供的另一种SDK安全检测方法的流程示意图;
图3是本申请实施例提供的一种SDK安全检测方法的页面的示意图;
图4是本申请实施例提供的一种SDK安全检测装置的示意性框图;
图5是本申请实施例提供的一种服务器的示意性框图。
具体实施方式
应用程序的开发周期包括三个阶段,分别为:1、构建初始阶段,在这个阶段中,开发人员根据项目需求在自动化构建工具的配置中输入SDK相关信息,也即针对SDK进行配置SDK文件,该SDK文件包括该SDK的SDK信息(包括开发商、名称、版本信息),进一步地,自动化构建工具会自动下载用户填写的SDK名称及版本信息相对应的SDK。其中,该SDK主要为开发人员提供开发软件所需的基本方法,函数和已定义好的变量,常量等。2、代码编写阶段,在这个阶段中,开发人员可以通过代码编写页面导入已下载SDK中的函数,进行代码的编写。3、编译使用阶段,在这个阶段中,开发人员将编译的代码打包成应用程序。
由于应用程序的整个开发周期比较长,开发周期中的各个阶段均可能检测出新的安全漏洞。例如,在构建初始阶段,下载的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,图1是本申请实施例提供的一种SDK安全检测方法的流程示意图,本实施例可由服务器或者终端设备执行,该方法可以应用于应用程序的整个开发周期中,如图所示,该SDK安全检测方法可包括:
S101:在检测到开发周期中的预设触发事件时,获取预设触发事件对应的目标对象的软件开发工具包SDK信息。
其中,该预设触发事件为开发周期的不同阶段下的触发事件,该目标对象为开发周期的不同阶段对应的检测对象,该SDK信息包括SDK名称和SDK版本信息。
在一个实施例中,在构建初始阶段,开发人员根据项目需求在自动化构建工具的配置中输入SDK相关信息,也即针对SDK进行配置SDK文件。这种情况下,该预设触发事件为针对SDK进行配置SDK文件,该SDK文件包括用户填写的该SDK的SDK信息,该预设触发事件对应的目标对象为该SDK。服务器执行步骤S101的具体实现方式为:在检测到开发周期中针对SDK进行配置SDK文件时,从SDK配置文件中获取该SDK的SDK信息。
在一个实施例中,在代码编写阶段,开发人员可以通过代码编写页面导入已下载SDK中的函数,进行代码的编写。这种情况下,该预设触发事件为通过代码编写页面导入SDK中的函数,预设触发事件对应的目标对象为导入的该SDK类和/或该函数。服务器执行步骤S101的具体实现方式为:当检测到开发周期中通过代码编写页面导入SDK中的函数时,解析该SDK中的函数,得到该函数对应的SDK信息。
在一个实施例中,在编译使用阶段,开发人员可以向服务器发送打包请求,该打包请求用于请求将开发周期中编译的代码打包成应用程序。这种情况下,该预设触发事件为打包请求,该预设触发事件对应的目标对象为开发周期所使用的所有SDK。服务器执行步骤S101的具体实现方式为:当检测到开发周期中的打包请求时,确定开发周期所使用的目标SDK,并获取该目标SDK的SDK信息。
S102:获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息,各个SDK样本的SDK安全漏洞信息是实时更新的。
其中,SDK安全漏洞信息包括SDK名称、SDK版本信息、SDK开发商和修复方法链接中的至少一种。在一个实施例中,服务器可以预先采集多个SDK样本的SDK安全漏洞信息,并将采集到各个SDK安全漏洞信息与对应的SDK样本关联存储至SDK漏洞数据库中。
在一个实施例中,服务器可以通过自动运行爬虫程序,从数据网站实时获取各个SDK样本的SDK漏洞信息,并从SDK漏洞信息中解析出预设字段,进而在SDK漏洞数据库中将预设字段与对应的SDK样本关联存储,该预设字段包括SDK名称、SDK版本号、SDK开发商和修复方法链接中的一种或者多种。
S103:检测各个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的安全性检测。
参见图2,图2是本申请实施例提供的另一种SDK安全检测方法的流程示意图,本实施例可由服务器或者终端设备执行,如图所示,该SDK安全检测方法可包括:
S201:在检测到开发周期中针对SDK进行配置SDK文件时,从SDK配置文件中获取该SDK的SDK信息。
在一个实施中,在应用程序开发的构建初始阶段,开发人员可以根据项目需求针对SDK进行配置SDK文件,该SDK文件包括该SDK的SDK信息(包括开发商、名称、版本信息)。进一步地,服务器可以按照预设周期或者实时读取开发人员配置的SDK文件,从SDK文件中提取该SDK的SDK名称、开发该SDK的公司和SDK的版本信息。
S202:获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息,各个SDK样本的SDK安全漏洞信息是实时更新的。
S203:检测各个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配置文件。或者,若服务器在预设时间内未检测到针对第一提示信息的确认指令时,可以退出开发集成环境。其中,该确认指令的输入方式可以包括语音、按压、滑动、点击等等,本申请实施例对此不作具体限定。
示例性地,假设第一提示信息如图3中的301所示,若服务器检测到用户针对图3中“确定”按钮输入的触控操作(即确认指令),则可以根据修复方法链接下载更新后的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的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或者图2所述的方法的模块,配置于服务器。具体地,参见图4,是本申请实施例提供的SDK安全检测装置的示意框图。本实施例的SDK安全检测装置包括:
获取模块40,用于在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应的目标对象的软件开发工具包SDK信息,所述目标对象为所述开发周期的不同阶段时对应的检测对象;
所述获取模块40,还用于获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息,所述各个SDK样本的SDK安全漏洞信息是实时更新的;
处理模块41,用于检测所述各个SDK样本中是否存在目标SDK样本,所述目标SDK样本的SDK安全漏洞信息与所述目标对象的SDK信息匹配;
所述处理模块41,还用于若检测到所述各个SDK样本中存在所述目标SDK样本,则确定所述目标对象存在SDK安全漏洞。
在一个实施例中,所述预设触发事件包括针对SDK进行配置SDK文件,所述预设触发事件对应的目标对象为所述SDK,所述处理模块41,具体用于在检测到所述开发周期中针对SDK进行配置SDK文件时,从所述SDK配置文件中获取所述SDK的SDK信息。
在一个实施例中,所述装置还包括输出模块42,其中:处理模块41,还用于在检测到所述SDK使用时,从所述目标SDK样本的SDK安全漏洞信息中获取所述目标SDK样本对应的修复方法链接;输出模块42,用于输出包括所述目标SDK样本对应的修复方法链接的第一提示信息,所述第一提示信息用于提示所述目标对象存在SDK安全漏洞,以及提示基于所述目标SDK样本对应的修复方法链接更新所述目标对象。
在一个实施例中,处理模块41,还用于当检测到针对所述第一提示信息的确认指令时,根据所述修复方法链接下载更新后的SDK;基于所述更新后的SDK更新所述SDK配置文件。在一个实施例中,所述预设触发事件还包括通过代码编写页面导入SDK中的函数,所述预设触发事件对应的目标对象为导入的所述函数,所述处理模块41,具体用于当检测到所述开发周期中代码编写页面导入SDK中的函数时,解析所述函数,得到所述函数对应的SDK信息。
在一个实施例中,所述处理模块41,还用于确定所述函数在所述代码编写页面中所处的目标位置,通过输出模块42在所述目标位置输出第二提示信息,所述第二提示信息用于提示所述函数存在SDK安全漏洞。
在一个实施例中,所述预设触发事件包括打包请求,所述打包请求用于请求将所述开发周期编译的代码打包成应用程序,所述预设触发事件对应的目标对象为所述开发周期所使用的SDK,所述处理模块41,具体用于当检测到所述开发周期中的打包请求时,确定所述开发周期所使用的目标SDK,并获取所述目标SDK的SDK信息。
需要说明的是,本申请实施例所描述的SDK安全检测装置的各功能模块的功能可根据上述图1或者图2所述的所述的方法实施例中的方法具体实现,其具体实现过程可以参照图1或者图2的方法实施例的相关描述,此处不再赘述。
请参见图5,图5是本申请实施例提供的一种服务器的示意性框图,如图5所示,该服务器包括,处理器501、存储器502、通信接口503和输出设备504。上述处理器501、存储器502、通信接口503和输出设备504可通过总线或其他方式连接,在本申请实施例所示图5中以通过总线连接为例。其中,通信接口503受所述处理器的控制用于收发消息,存储器502用于存储计算机程序,所述计算机程序包括程序指令,处理器501用于执行存储器502存储的程序指令。其中,处理器501被配置用于调用所述程序指令执行:在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应的目标对象的软件开发工具包SDK信息,所述目标对象为所述开发周期的不同阶段时对应的检测对象;获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息,所述各个SDK样本的SDK安全漏洞信息是实时更新的;检测所述各个SDK样本中是否存在目标SDK样本,所述目标SDK样本的SDK安全漏洞信息与所述目标对象的SDK信息匹配;若是,则确定所述目标对象存在SDK安全漏洞。
在一个实施例中,所述预设触发事件包括针对SDK进行配置SDK文件,所述预设触发事件对应的目标对象为所述SDK,所述处理器501,具体用于在检测到所述开发周期中针对SDK进行配置SDK文件时,从所述SDK配置文件中获取所述SDK的SDK信息。
在一个实施例中,所述装置还包括输出设备504,其中:处理器501,还用于在检测到所述SDK使用时,从所述目标SDK样本的SDK安全漏洞信息中获取所述目标SDK样本对应的修复方法链接;输出设备504,用于输出包括所述目标SDK样本对应的修复方法链接的第一提示信息,所述第一提示信息用于提示所述目标对象存在SDK安全漏洞,以及提示基于所述目标SDK样本对应的修复方法链接更新所述目标对象。
在一个实施例中,处理器501,还用于当检测到针对所述第一提示信息的确认指令时,根据所述修复方法链接下载更新后的SDK;基于所述更新后的SDK更新所述SDK配置文件。在一个实施例中,所述预设触发事件还包括通过代码编写页面导入SDK中的函数,所述预设触发事件对应的目标对象为导入的所述函数,所述处理器501,具体用于当检测到所述开发周期中代码编写页面导入SDK中的函数时,解析所述函数,得到所述函数对应的SDK信息。
在一个实施例中,所述处理器501,还用于确定所述函数在所述代码编写页面中所处的目标位置,通过输出设备504在所述目标位置输出第二提示信息,所述第二提示信息用于提示所述函数存在SDK安全漏洞。
在一个实施例中,所述预设触发事件包括打包请求,所述打包请求用于请求将所述开发周期编译的代码打包成应用程序,所述预设触发事件对应的目标对象为所述开发周期所使用的SDK,所述处理器501,具体用于当检测到所述开发周期中的打包请求时,确定所述开发周期所使用的目标SDK,并获取所述目标SDK的SDK信息。
应当理解,在本申请实施例中,所称处理器501可以是中央处理单元(CentralProcessing Unit,CPU),该处理器501还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。输出设备504可以为显示装置,例如LED屏,带有显示装置的终端装置等。
具体实现中,本申请实施例中所描述的处理器501、存储器502、通信接口503和输出设备504可执行本申请实施例提供的图1或者图2所述的方法实施例所描述的实现方式,也可执行本申请实施例所描述的SDK安全检测装置的实现方式,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。

Claims (10)

1.一种SDK安全检测方法,其特征在于,所述方法适用于应用程序的开发周期,所述方法包括:
在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应的目标对象的软件开发工具包SDK信息,所述目标对象为所述开发周期的不同阶段时对应的检测对象;
获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息,所述各个SDK样本的SDK安全漏洞信息是实时更新的;
检测所述各个SDK样本中是否存在目标SDK样本,所述目标SDK样本的SDK安全漏洞信息与所述目标对象的SDK信息匹配;
若是,则确定所述目标对象存在SDK安全漏洞。
2.根据权利要求1所述的方法,其特征在于,所述预设触发事件包括针对SDK进行配置SDK文件,所述预设触发事件对应的目标对象为所述SDK,所述在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应目标对象的SDK信息,包括:
在检测到所述开发周期中针对SDK进行配置SDK文件时,从所述SDK配置文件中获取所述SDK的SDK信息。
3.根据权利要求2所述的方法,其特征在于,所述确定所述目标对象存在SDK安全漏洞之后,所述方法还包括:
在检测到所述SDK使用时,从所述目标SDK样本的SDK安全漏洞信息中获取所述目标SDK样本对应的修复方法链接;
输出包括所述目标SDK样本对应的修复方法链接的第一提示信息,所述第一提示信息用于提示所述目标对象存在SDK安全漏洞,以及提示基于所述目标SDK样本对应的修复方法链接更新所述目标对象。
4.根据权利要求3所述的方法,其特征在于,所述输出包括所述目标SDK样本对应的修复方法链接的第一提示信息之后,所述方法还包括:
当检测到针对所述第一提示信息的确认指令时,根据所述修复方法链接下载更新后的SDK;
基于所述更新后的SDK更新所述SDK配置文件。
5.根据权利要求1所述的方法,其特征在于,所述预设触发事件还包括通过代码编写页面导入SDK中的函数,所述预设触发事件对应的目标对象为导入的所述函数,所述在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应目标对象的SDK信息,包括:
当检测到所述开发周期中代码编写页面导入SDK中的函数时,解析所述函数,得到所述函数对应的SDK信息。
6.根据权利要求5所述的方法,其特征在于,所述确定所述目标对象存在SDK安全漏洞之后,所述方法还包括:
确定所述函数在所述代码编写页面中所处的目标位置;
在所述目标位置输出第二提示信息,所述第二提示信息用于提示所述函数存在SDK安全漏洞。
7.根据权利要求1所述的方法,其特征在于,所述预设触发事件包括打包请求,所述打包请求用于请求将所述开发周期编译的代码打包成应用程序,所述预设触发事件对应的目标对象为所述开发周期所使用的SDK,所述在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应目标对象的SDK信息,包括:
当检测到所述开发周期中的打包请求时,确定所述开发周期所使用的目标SDK,并获取所述目标SDK的SDK信息。
8.一种SDK安全检测装置,其特征在于,所述装置适用于应用程序的开发周期,所述装置包括:
获取模块,用于在检测到所述开发周期中的预设触发事件时,获取所述预设触发事件对应的目标对象的软件开发工具包SDK信息,所述目标对象为所述开发周期的不同阶段时对应的检测对象;
所述获取模块,还用于获取SDK漏洞数据库中存储的各个SDK样本的SDK安全漏洞信息,所述各个SDK样本的SDK安全漏洞信息是实时更新的;
处理模块,用于检测所述各个SDK样本中是否存在目标SDK样本,所述目标SDK样本的SDK安全漏洞信息与所述目标对象的SDK信息匹配;
所述处理模块,还用于若检测到所述各个SDK样本中存在所述目标SDK样本,则确定所述目标对象存在SDK安全漏洞。
9.一种服务器,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-7任一项所述的方法。
CN201911057489.5A 2019-10-31 2019-10-31 一种sdk安全检测方法及相关设备 Active CN110990833B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911057489.5A CN110990833B (zh) 2019-10-31 2019-10-31 一种sdk安全检测方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911057489.5A CN110990833B (zh) 2019-10-31 2019-10-31 一种sdk安全检测方法及相关设备

Publications (2)

Publication Number Publication Date
CN110990833A true CN110990833A (zh) 2020-04-10
CN110990833B CN110990833B (zh) 2022-08-05

Family

ID=70082847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911057489.5A Active CN110990833B (zh) 2019-10-31 2019-10-31 一种sdk安全检测方法及相关设备

Country Status (1)

Country Link
CN (1) CN110990833B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287343A (zh) * 2020-10-16 2021-01-29 深圳市和讯华谷信息技术有限公司 Sdk监控方法、装置、计算机设备及存储介质
CN112463200A (zh) * 2020-12-10 2021-03-09 微医云(杭州)控股有限公司 开发工具包处理方法、装置、电子设备以及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103065090A (zh) * 2012-12-20 2013-04-24 广东欧珀移动通信有限公司 一种应用程序恶意广告拦截方法及装置
CN103713896A (zh) * 2013-12-17 2014-04-09 北京京东尚科信息技术有限公司 用于访问服务器的软件开发工具包生成方法及装置
US20150040233A1 (en) * 2003-07-01 2015-02-05 Securityprofiling, Llc Sdk-equipped anti-vulnerability system, method, and computer program product
CN107239702A (zh) * 2016-03-29 2017-10-10 腾讯科技(深圳)有限公司 一种安全漏洞检测的方法以及装置
CN107437029A (zh) * 2017-08-23 2017-12-05 北京奇虎科技有限公司 漏洞修复方法、漏洞修复装置及服务器
CN107644165A (zh) * 2017-08-29 2018-01-30 国家电网公司 安全防护平台以及安全防护方法和装置
CN107766728A (zh) * 2017-08-28 2018-03-06 国家电网公司 移动应用安全管理装置、方法及移动作业安全防护系统
CN108416216A (zh) * 2018-02-28 2018-08-17 阿里巴巴集团控股有限公司 漏洞检测方法、装置及计算设备
CN109254914A (zh) * 2018-08-15 2019-01-22 中国平安人寿保险股份有限公司 软件开发包测试方法、系统、计算机装置及可读存储介质
CN109976761A (zh) * 2019-02-27 2019-07-05 平安科技(深圳)有限公司 软件开发工具包的生成方法、装置及终端设备
CN110162977A (zh) * 2019-04-24 2019-08-23 北京邮电大学 一种Android车载终端系统漏洞检测系统及方法
US20190303586A1 (en) * 2008-10-21 2019-10-03 Lookout, Inc. Methods and systems for conditionally granting access to services based on the security state of the device requesting access

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150040233A1 (en) * 2003-07-01 2015-02-05 Securityprofiling, Llc Sdk-equipped anti-vulnerability system, method, and computer program product
US20190303586A1 (en) * 2008-10-21 2019-10-03 Lookout, Inc. Methods and systems for conditionally granting access to services based on the security state of the device requesting access
CN103065090A (zh) * 2012-12-20 2013-04-24 广东欧珀移动通信有限公司 一种应用程序恶意广告拦截方法及装置
CN103713896A (zh) * 2013-12-17 2014-04-09 北京京东尚科信息技术有限公司 用于访问服务器的软件开发工具包生成方法及装置
CN107239702A (zh) * 2016-03-29 2017-10-10 腾讯科技(深圳)有限公司 一种安全漏洞检测的方法以及装置
CN107437029A (zh) * 2017-08-23 2017-12-05 北京奇虎科技有限公司 漏洞修复方法、漏洞修复装置及服务器
CN107766728A (zh) * 2017-08-28 2018-03-06 国家电网公司 移动应用安全管理装置、方法及移动作业安全防护系统
CN107644165A (zh) * 2017-08-29 2018-01-30 国家电网公司 安全防护平台以及安全防护方法和装置
CN108416216A (zh) * 2018-02-28 2018-08-17 阿里巴巴集团控股有限公司 漏洞检测方法、装置及计算设备
CN109254914A (zh) * 2018-08-15 2019-01-22 中国平安人寿保险股份有限公司 软件开发包测试方法、系统、计算机装置及可读存储介质
CN109976761A (zh) * 2019-02-27 2019-07-05 平安科技(深圳)有限公司 软件开发工具包的生成方法、装置及终端设备
CN110162977A (zh) * 2019-04-24 2019-08-23 北京邮电大学 一种Android车载终端系统漏洞检测系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JUNJIE TANG 等: "NIVAnalyzer: a Tool for Automatically Detecting and Verifying Next-Intent Vulnerabilities in Android", 《2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST)》 *
万洋: "基于Android平台的轻量级企业移动应用SDK的研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *
马杰: "Android系统外部SDK安全漏洞检测研究", 《信息技术与网络安全》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287343A (zh) * 2020-10-16 2021-01-29 深圳市和讯华谷信息技术有限公司 Sdk监控方法、装置、计算机设备及存储介质
CN112463200A (zh) * 2020-12-10 2021-03-09 微医云(杭州)控股有限公司 开发工具包处理方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN110990833B (zh) 2022-08-05

Similar Documents

Publication Publication Date Title
CN108196878B (zh) 应用程序安装包的生成方法、装置、电子设备及存储介质
JP6686529B2 (ja) 脆弱性分析のための自律型推論システム
CN112416327A (zh) 项目构建方法、装置、计算机设备及存储介质
CN104077140A (zh) 用于持续集成的自动化编译方法和编译装置
CN113885870B (zh) 应用程序更新方法、电子设备、终端设备及系统
EP3234851B1 (en) A system and method for facilitating static analysis of software applications
US9405906B1 (en) System and method for enhancing static analysis of software applications
CN110990833B (zh) 一种sdk安全检测方法及相关设备
US10229273B2 (en) Identifying components for static analysis of software applications
CN109117368A (zh) 一种接口测试方法、电子设备及存储介质
US9971573B2 (en) Computing platform and method thereof for searching, executing, and evaluating computational algorithms
CN112419057A (zh) 智能合约的日志生成及保存方法、装置、设备和存储介质
CN115543781A (zh) 汽车软件模型自动化验证的方法及交互系统
CN111427771A (zh) 一种代码覆盖率分析方法、设备、服务器及可读存储介质
EP3211526A1 (en) Compilation cache with imports scanner
CN110874475A (zh) 漏洞挖掘方法、漏洞挖掘平台及计算机可读存储介质
CN110334031B (zh) 内存分配代码检测方法、装置、计算机设备及存储介质
KR101629578B1 (ko) Rte 코드 생성 방법 및 이를 실행하는 장치
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
WO2014197258A1 (en) Declarative configuration elements
CN115168175A (zh) 程序错误解决方法、装置、电子设备和存储介质
CN112612474A (zh) 产品移植方法、装置、存储介质和电子设备
CN111045724A (zh) 调用链信息的查询方法、装置和可读存储介质
CN113032006B (zh) 插件构建方法、装置、设备和存储介质
CN112100072B (zh) 应用程序代码的静态检测方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant