首页> 中国专利> 软件开发工具包的安全监控方法、装置、设备及介质

软件开发工具包的安全监控方法、装置、设备及介质

摘要

本公开涉及一种软件开发工具包的安全监控方法、装置、设备及介质。其中,软件开发工具包的安全监控方法,包括获取待检测应用程序的软件开发工具包信息;获取待检测应用程序的软件开发工具包的具体行为信息;在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息;基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息,由此,实现在实际用户环境中对软件开发工具包的安全监控,提升用户体验。

著录项

  • 公开/公告号CN116340092A

    专利类型发明专利

  • 公开/公告日2023-06-27

    原文格式PDF

  • 申请/专利权人 珠海市魅族科技有限公司;

    申请/专利号CN202310135393.6

  • 发明设计人 黄超华;

    申请日2023-02-17

  • 分类号G06F11/30(2006.01);G06F21/51(2013.01);

  • 代理机构北京开阳星知识产权代理有限公司 11710;

  • 代理人张子青

  • 地址 519085 广东省珠海市科技创新海岸魅族科技楼

  • 入库时间 2024-01-17 01:12:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-14

    实质审查的生效 IPC(主分类):G06F11/30 专利申请号:2023101353936 申请日:20230217

    实质审查的生效

  • 2023-06-27

    公开

    发明专利申请公布

说明书

技术领域

本公开涉及计算机技术领域,尤其涉及一种软件开发工具包的安全监控方法、装置、设备及介质。

背景技术

目前,软件开发工具包(Software Development Kit,SDK)属于软件供应链中重要的部分,SDK的安全也是软件供应链安全中重要的部分,在终端常见的应用程序(Application,APP)中,接入SDK是常见的开发模式,一个APP中一般都会接入多个SDK,与此同时,SDK在使用运行时也存在一些安全风险。

在SDK的安全检测中,常见的技术方法是静态分析和动态分析,静态分析是指分析SDK的权限、特征等,动态分析是指在特定的固件或环境(沙箱)或利用特定的工具进行动态检测,检测是否调用敏感权限、敏感接口、个人信息等。

但是,目前针对SDK的安全检测或管控,仍然存在较大难点,如运行过程中的安全,虽然动态检测可以在发布前一定程度上发现一些风险,但对于SDK在实际用户环境中是较难发现和阻断的。

发明内容

为了解决上述技术问题,本公开提供了一种软件开发工具包的安全监控方法、装置、设备及介质。

本公开实施例的第一方面提供了一种软件开发工具包的安全监控方法,包括:

获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息;

获取待检测应用程序的软件开发工具包的具体行为信息;

在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑;

基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息。

本公开实施例的第二方面提供了一种软件开发工具包的安全监控装置,包括:

第一获取模块,用于获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息;

第二获取模块,用于获取待检测应用程序的软件开发工具包的具体行为信息;

第三获取模块,用于在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑;

行为确定模块,用于基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息。

本公开实施例的第三方面提供了一种电子设备,包括:

处理器;

存储器,用于存储可执行指令;

其中,处理器用于从存储器中读取可执行指令,并执行可执行指令以实现上述第一方面提供的软件开发工具包的安全监控方法。

本公开实施例的第四方面提供了一种计算机非易失性可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现上述第一方面提供的软件开发工具包的安全监控方法。

本公开实施例提供的技术方案与现有技术相比具有如下优点:

本公开实施例提供的软件开发工具包的安全监控方法、装置、设备及介质,能够通过获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息,并获取待检测应用程序的软件开发工具包的具体行为信息,在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑,进而基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息,由此,实现在实际用户环境中对软件开发工具包的安全监控,提升用户体验。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

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

图1是本公开实施例提供的一种软件开发工具包的安全监控方法的流程图;

图2是本公开实施例提供的另一种软件开发工具包的安全监控方法的流程图;

图3是本公开实施例提供的一种软件开发工具包的安全监控装置的结构示意图;

图4是本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

通常情况下,在SDK的安全检测中,常见的技术方法是静态分析和动态分析,静态分析是指分析SDK的权限、特征等,动态分析是指在特定的固件或环境(沙箱)或利用特定的工具进行动态检测,检测是否调用敏感权限、敏感接口、个人信息等。但是,目前针对SDK的安全检测或管控,仍然存在较大难点,如运行过程中的安全,虽然动态检测可以在发布前一定程度上发现一些风险,但对于SDK在实际用户环境中是较难发现和阻断的。针对该问题,本公开实施例提供了一种软件开发工具包的安全监控方法,下面结合具体的实施例对该方法进行介绍。

为了更好的理解本公开实施例的发明构思,下面结合示例性的实施例对本公开实施例的技术方案进行说明。

图1是本公开实施例提供的一种软件开发工具包的安全监控方法的流程图,该方法可以由软件开发工具包的安全监控装置来执行,该软件开发工具包的安全监控装置可以采用软件和/或硬件的方式实现,该软件开发工具包的安全监控装置可配置于电子设备中,例如服务器或终端,其中,终端具体包括手机、电脑或平板电脑等。

如图1所示,本实施例提供的软件开发工具包的安全监控方法包括如下步骤。

S110、获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息。

在本公开实施例中,电子设备在对软件开发工具包进行安全监控时,获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息。

可选地,待检测应用程序的软件开发工具包包括待检测应用程序本身集成的软件开发工具包和使用的第三方的软件开发工具包。

可选地,待检测应用程序的软件开发工具包中没有包名的,则直接以包名为特征进行截取,比如腾讯的一般为com.tencent.xxx开头。

可选地,当有多个软件开发工具包接口则对应多个第一调用信息。

其中,第一调用信息包括软件开发工具包接口的调用上下关系,即包括整个调用链的关系信息。

在本公开一些实施例中,电子设备可以根据待检测应用程序的标识,从存储数据库中获取待检测应用程序的软件开发工具包信息。

在本公开另一些实施例中,电子设备可以响应于待检测应用程序开发人员的反编译、代码调查和在已知调用代码的地方打印堆栈等操作,获取待检测应用程序的软件开发工具包信息。

S120、获取待检测应用程序的软件开发工具包的具体行为信息。

在本公开实施例中,电子设备可以在获取待检测应用程序的软件开发工具包信息之后,获取待检测应用程序的软件开发工具包的具体行为信息。

可选地,具体行为信息可以包括谁会调用软件开发工具包中的接口以及调用软件开发工具包的应用的应用包名、软件开发工具包会调用谁的接口以及被软件开发工具包调用的应用包名、软件开发工具包中关键接口的intent数据等信息。

进一步地,intent可以理解为是一个消息传递对象,可以用来从其他应用组件请求操作,包括显式intent和隐式intent,显式intent是通过提供目标应用程序的包名或完全限定的组件类名来指定可处理intent的应用;隐式intent不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用的组件来处理,具体地,intent数据可以包含要执行的动作action,附加信息extra,数据类型type,要操作的数据data等。

可选地,对于第三方软件开发工具包中有startActivity/startService行为的,确认预设调起规则,即startActivity/startService行为的被调用方的包名,进而得到谁会调用软件开发工具包中的接口以及调用软件开发工具包的应用的应用包名、软件开发工具包会调用谁的接口以及被软件开发工具包调用的应用包名相关信息,将其作为软件开发工具包的具体行为信息。

可选地,在第三方软件开发工具包中并不能确定被调用方的应用包名,比如第三方SDK中通过startActivity/启动一个能阅览pdf格式文件的应用,因为系统中可能有多个有阅览pdf格式文件的应用,这时让系统帮忙找到所有有此能力的应用列表,并弹出选择框,这种情况属于隐私intent,因为目标应用不限,所以需要确定intent数据,将intent数据作为软件开发工具包的具体行为信息。

在本公开一些实施例中,电子设备可以直接根据待检测应用程序的标识,从存储数据库中获取待检测应用程序的软件开发工具包的具体行为信息。

在本公开另一些实施例中,电子设备可以响应于待检测应用程序开发人员的预设操作,获取待检测应用程序的软件开发工具包的具体行为信息。

S130、在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑。

在本公开实施例中,电子设备在获取到待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息之后,在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑。

在本公开实施例中,目标调用信息可以包括软件开发工具包调用的应用的应用包名或被软件开发工具包调用的应用包名、软件开发工具包的具体行为信息等。

在本公开实施例中,基于动态代理的钩子代码的执行逻辑可以通过动态代理的方式钩住软件开发工具包接口,不需要在每次调用到软件开发工具包接口的地方作修改。

可选地,软件开发工具包接口可以包括软件开发工具包的关键接口,比如startActivity和startService等。

S140、基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息。

在本公开实施例中,电子设备在获取到待检测应用程序的目标调用信息之后,基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息。

具体地,电子设备在获取到待检测应用程序的目标调用信息之后,将目标调用信息分别与待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息进行比对,以此来确定目标调用信息是否与待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息中的信息一致,如果与待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息一致,则确定目标调用信息属于正常调用信息。

进一步地,目标调用信息属于正常调用信息,则确定待检测应用程序的软件开发工具包处于安全状态。

在本公开实施例中,能够通过获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息,并获取待检测应用程序的软件开发工具包的具体行为信息,在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑,进而基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息,由此,实现在实际用户环境中对软件开发工具包的安全监控,提升用户体验。

在本公开上述实施例的基础上,在S110之后,该软件开发工具包的安全监控方法还包括:对待检测应用程序的软件开发工具包信息进行更新。

在本公开一些实施例中,软件开发工具包信息可以随着待检测应用程序的发布放置在待检测应用程序的资源列表中作为默认信息库,在每次对待检测应用程序进行新版本发布时,判断是否更新了软件开发工具包接口或增加或删除了软件开发工具包接口等,如果是,则基于更新后的软件开发工具包接口等信息,对待检测应用程序的软件开发工具包信息进行更新。

在本公开另一些实施例中,软件开发工具包信息可以放置在云端信息库中,基于预设的更新条件对云端信息库中的软件开发工具包信息进行更新,其中,预设的更新条件可以包括联网状态下进行更新等。

在本公开实施例中,电子设备可以通过对待检测应用程序的软件开发工具包信息进行更新,确保在待检测应用程序更新的情况下仍然能够更好地对软件开发工具包进行安全监控,进一步提高安全监控的准确性。

在本公开实施例中,S120可以具体包括:响应于对待检测应用程序的软件开发工具包的具体行为分析操作,获取待检测应用程序的软件开发工具包的具体行为信息。

在本公开实施例中,对待检测应用程序的软件开发工具包的具体行为分析操作可以包括反编译、代码调查、在已知调用代码的地方打印堆栈等。

在本公开实施例中,电子设备可以响应于对待检测应用程序的软件开发工具包的具体行为分析操作,获取待检测应用程序的软件开发工具包的具体行为信息,由此可以提高得到软件开发工具包的具体行为信息的准确性。

在本公开实施例中,待检测应用程序的软件开发工具包的具体行为信息包括待检测应用程序的软件开发工具包对应的调用关系和待检测应用程序的软件开发工具包接口的调用请求信息。

可选地,软件开发工具包对应的调用关系可以包括谁会调用软件开发工具包中的接口以及调用软件开发工具包的应用的应用包名、软件开发工具包会调用谁的接口以及被软件开发工具包调用的应用包名等。

可选地,待检测应用程序的软件开发工具包接口的调用请求信息可以理解为想要实现某一功能而发起的调用请求以及与该调用请求相关的调用信息。

在本公开实施例中,电子设备可以通过待检测应用程序的软件开发工具包对应的调用关系和待检测应用程序的软件开发工具包接口的调用请求信息来确定目标调用信息属于正常调用信息,进而确定待检测应用程序的软件开发工具包处于安全状态,提高了对软件开发工具包的安全监控的准确性。

在本公开实施例中,S130中基于所述目标函数,获取待检测应用程序的目标调用信息可以具体包括:基于目标函数,对待检测应用程序的软件开发工具包接口进行监控,获取待检测应用程序的软件开发工具包接口的第二调用信息;基于打印堆栈技术,下载待检测应用程序的软件开发工具包接口的第二调用信息,将第二调用信息确定为目标调用信息。

在本公开实施例中,打印堆栈技术可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系。比如函数A可能被B/C/D调用,如果只看代码,B/C/D谁调用A都有可能,如果通过打印调用堆栈,直接就可以确定是谁调用的。

具体地,电子设备在待检测应用程序的软件开发工具包接口处增加目标函数之后,通过目标函数中的基于动态代理的钩子代码的执行逻辑,对检测应用程序的软件开发工具包接口进行实时监控,在软件开发工具包接口发生调用时,获取待检测应用程序的软件开发工具包接口的第二调用信息,进而基于打印堆栈技术,将待检测应用程序的软件开发工具包接口的第二调用信息进行下载,进而获取到第二调用信息,将第二调用信息确定为目标调用信息。

在本公开实施例中,电子设备可以通过目标函数对软件开发工具包接口进行实时监控,得到第二调用信息,进而通过打印堆栈技术下载待检测应用程序的软件开发工具包接口的第二调用信息,得到目标调用信息,由此,提高了目标调用信息的准确性。

在本公开实施例中,S140中基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息可以具体包括:将目标调用信息与待检测应用程序的软件开发工具包信息进行比对,确定目标调用信息是待检测应用程序的软件开发工具包接口的调用信息;确定目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息一致,目标调用信息属于正常调用信息;确定目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息不一致,目标调用信息属于非正常调用信息。

具体地,电子设备在获取到目标调用信息之后,将目标调用信息中的包名和调用信息分别与待检测应用程序的软件开发工具包信息中的包名和第一调用信息进行比对,来确定目标调用信息是否来自待检测应用程序的软件开发工具包接口,如果不是,则确定目标调用信息属于非正常调用信息;如果是,则继续进一步将目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息进行比对,确定目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息一致,目标调用信息属于正常调用信息;确定目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息不一致,目标调用信息属于非正常调用信息。

在本公开一些实施例中,目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息不一致的情形可以包括通过对比发现目标调用信息中多出一些调用函数,此时可能是软件开发工具包私自更新下载恶意代码并执行或者软件开发工具包纯属过程中被劫持并篡改了等。

在本公开另一些实施例中,目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息不一致的情形可以包括目标调用信息中被调用的应用不在预设的范围内,或者intent数据的类型不一致等,此时可能是软件开发工具包因某种原因主动或被动修改了恶意数据。

在本公开实施例中,基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包对应的具体行为信息,来确定目标调用信息属于正常调用信息,可以进一步提高判断的准确性,有效且高效地对软件开发工具包进行安全监控。

在本公开实施例中,该软件开发工具包的安全监控方法还可以包括:在确定目标调用信息属于待检测应用程序的软件开发工具包的非正常调用信息之后,将目标调用信息对应的目标调用请求信息和目标调用信息上报至服务器,并将非正常调用信息进行阻断。

可选地,对非正常调用信息进行阻断的方式可以包括返回调用失败的信息如ActivityNotFound、返回错误码,还可以包括修改intent数据想指向,指定调用应用程序的预设界面。

进一步地,在对非正常调用信息进行阻断之后还可以向用户反馈“调用异常”等信息,以此来提示用户。

在本公开实施例中,电子设备可以在目标调用信息属于非正常调用信息之后,将其上报至服务器并阻断该非正常调用信息,由此,可以在发现软件开发工具包为非安全状态时,及时阻止非正常调用信息的继续执行,及时制止恶意行为,高软件开发工具包的安全性,也进一步提高用户体验,为用户及时止损。

图2是本公开实施例提供的另一种软件开发工具包的安全监控方法的流程图。

如图2所示,该图2是本公开实施例提供的另一种软件开发工具包的安全监控方法的流程图可以包括如下步骤。

S210、获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息。

S220、响应于对待检测应用程序的软件开发工具包的具体行为分析操作,获取待检测应用程序的软件开发工具包的具体行为信息。

S230、在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,对待检测应用程序的软件开发工具包接口进行监控,获取待检测应用程序的软件开发工具包接口的第二调用信息。

S240、基于打印堆栈技术,下载待检测应用程序的软件开发工具包接口的第二调用信息,将第二调用信息确定为目标调用信息。

S250、确定目标调用信息是否为待检测应用程序的软件开发工具包接口的调用信息。

在本公开实施例中,如果目标调用信息与待检测应用程序的软件开发工具包接口的调用信息不一致,则执行S260,如果目标调用信息与待检测应用程序的软件开发工具包接口的调用信息一致,则执行S270。

S260、确定目标调用信息属于非正常调用信息。

S270、判断目标调用信息是否与待检测应用程序的软件开发工具包对应的具体行为信息一致。

在本公开实施例中,如果目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息不一致,则执行S260,如果目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息一致,则执行S280。

S280、确定目标调用信息属于正常调用信息。

S290、确定待检测应用程序的软件开发工具包处于安全状态。

在本公开实施例中,电子设备可以通过获取待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,将目标调用信息分别与待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息进行比对,实现在在实际用户环境中对软件开发工具包的安全监控,同时提高对软件开发工具包安全监控的准确性,进一步提升用户体验。

图3是本公开实施例提供的一种软件开发工具包的安全监控装置的结构示意图。

在本公开实施例中,该软件开发工具包的安全监控装置可配置于电子设备中,被理解为上述电子设备中的部分功能模块。具体地,电子设备可以为服务器或终端,其中,终端具体包括手机、电脑或平板电脑等。

如图3所示,该软件开发工具包的安全监控装置300可以包括:第一获取模块310、第二获取模块320、第三获取模块330和行为确定模块340。

该第一获取模块310可以用于获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息。

该第二获取模块320可以用于获取待检测应用程序的软件开发工具包的具体行为信息。

该第三获取模块330可以用于在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑。

该行为确定模块340可以用于基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息。

在本公开实施例中,能够通过获取待检测应用程序的软件开发工具包信息,软件开发工具包信息包括待检测应用程序的软件开发工具包的包名、版本、待检测应用程序调用软件开发工具包接口的第一调用信息,并获取待检测应用程序的软件开发工具包的具体行为信息,在待检测应用程序的软件开发工具包接口处增加目标函数,基于目标函数,获取待检测应用程序的目标调用信息,其中,目标函数包括基于动态代理的钩子代码的执行逻辑,进而基于待检测应用程序的软件开发工具包信息和待检测应用程序的软件开发工具包的具体行为信息,确定目标调用信息属于正常调用信息,由此,实现在实际用户环境中对软件开发工具包的安全监控,提升用户体验。

在本公开一些实施例中,该软件开发工具包的安全监控装置300还可以包括信息更新模块350。

该信息更新模块350可以用于对待检测应用程序的软件开发工具包信息进行更新。

在本公开一些实施例中,该第二获取模块320可以具体用于响应于对待检测应用程序的软件开发工具包的具体行为分析操作,获取待检测应用程序的软件开发工具包的具体行为信息。

在本公开一些实施例中,待检测应用程序的软件开发工具包的具体行为信息包括待检测应用程序的软件开发工具包对应的调用关系和待检测应用程序的软件开发工具包接口的调用请求信息。

在本公开一些实施例中,该第三获取模块330可以包括接口监控单元3301和信息下载单元3302。

该接口监控单元3301可以用于基于目标函数,对待检测应用程序的软件开发工具包接口进行监控,获取待检测应用程序的软件开发工具包接口的第二调用信息。

该信息下载单元3302可以用于基于打印堆栈技术,下载待检测应用程序的软件开发工具包接口的第二调用信息,将第二调用信息确定为所述目标调用信息。

在本公开一些实施例中,该行为确定模块340可以包括信息比对单元3401、第一确定单元3402和第二确定单元3403。

该信息比对单元3401可以用于将目标调用信息与待检测应用程序的软件开发工具包信息进行比对,确定目标调用信息是待检测应用程序的软件开发工具包接口的调用信息。

该第一确定单元3402可以用于确定目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息一致,目标调用信息属于正常调用信息。

该第二确定单元3403可以用于确定目标调用信息与待检测应用程序的软件开发工具包对应的具体行为信息不一致,目标调用信息属于非正常调用信息。

在本公开一些实施例中,该软件开发工具包的安全监控装置300还可以包括信息阻断模块360。

该信息阻断模块360可以用于在确定目标调用信息属于待检测应用程序的软件开发工具包的非正常调用信息之后,将目标调用信息对应的目标调用请求信息和目标调用信息上报至服务器,并将非正常调用信息进行阻断。

需要说明的是,图3所示的软件开发工具包的安全监控装置300可以执行上述方法实施例中的各个步骤,并且实现上述方法实施例中的各个过程和效果,在此不做赘述。

图4是本公开实施例提供的一种电子设备的结构示意图。

在本公开实施例中,图4所示的电子设备可以为服务器或终端,其中,终端具体包括手机、电脑或平板电脑等,在此不作限制。

如图4所示,该电子设备可以包括处理器410以及存储有计算机程序指令的存储器420。

具体地,上述处理器410可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本公开实施例的一个或多个集成电路。

存储器420可以包括用于信息或指令的大容量存储器。举例来说而非限制,存储器420可以包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个及其以上这些的组合。在合适的情况下,存储器420可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器420可在综合网关设备的内部或外部。在特定实施例中,存储器420是非易失性固态存储器。在特定实施例中,存储器420包括只读存储器(Read-Only Memory,ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Electrical Programmable ROM,EPROM)、电可擦除PROM(Electrically ErasableProgrammable ROM,EEPROM)、电可改写ROM(Electrically Alterable ROM,EAROM)或闪存,或者两个或及其以上这些的组合。

处理器410通过读取并执行存储器420中存储的计算机程序指令,以执行本公开实施例所提供的软件开发工具包的安全监控方法的步骤。

在一个示例中,该电子设备还可以包括收发器430和总线440。其中,如图4所示,处理器410、存储器420和收发器430通过总线440连接并完成相互间的通信。

总线440包括硬件、软件或两者。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(ExtendedIndustry Standard Architecture,EISA)总线、前端总线(Front Side BUS,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industrial Standard Architecture,ISA)总线、无限带宽互连、低引脚数(Low Pin Count,LPC)总线、存储器总线、微信道架构(MicroChannel Architecture,MCA)总线、外围控件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)总线、视频电子标准协会局部(Video Electronics StandardsAssociation Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线440可包括一个或多个总线。

本公开实施例还提供了一种计算机非易失性可读存储介质,该存储介质可以存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现本公开实施例所提供的软件开发工具包的安全监控方法。

上述的存储介质可以例如包括计算机程序指令的存储器420,上述指令可由电子设备的处理器410执行以完成本公开实施例所提供的软件开发工具包的安全监控方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(CompactDisc ROM,CD-ROM)、磁带、软盘和光数据存储设备等。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号