发明内容
本发明实施例提供了一种软件漏洞的定位方法及装置、系统、存储介质、电子装置。
根据本发明的一个实施例,提供了一种软件漏洞的定位方法,包括:获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;判断所述行为链中是否存在不合法的恶意行为特征;在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞。
可选的,在根据所述恶意行为特征定位操作所述软件的漏洞之后,所述方法还包括:修补所述漏洞;或,追溯利用所述漏洞的恶意程序,并拦截或删除所述恶意程序,其中,所述恶意程序用于控制所述软件以产生所述恶意行为特征。
可选的,判断所述行为链中是否存在不合法的恶意行为特征包括:解析所述行为链,得到所述多个行为特征;判断所述多个行为特征中的每个行为特征是否与所述软件的预设行为特征库中的行为特征匹配,其中,所述预设行为特征库保存有所述软件的多个合法行为特征;在所述行为链存在不匹配的指定行为特征时,将所述指定行为特征确定为所述恶意行为特征;在所述行为链不存在不匹配的指定行为特征时,确定所述行为链中不存在不合法的恶意行为特征。
可选的,判断所述多个行为特征中的每个行为特征是否与所述软件的预设行为特征库中的行为特征匹配包括:依次将所述多个行为特征中的每个行为特征与所述预设行为特征库中的任一合法行为特征进行比较;在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征相同时,确定匹配;在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征均不同时,确定不匹配。
可选的,在判断所述行为链中是否存在不合法的恶意行为特征之前,所述方法还包括:在所述软件在安全状态的运行过程中,检测所述软件触发的操作行为;收集所述操作行为产生的合法行为链,其中,所述合法行为链由多个合法行为特征组成。
可选的,根据所述恶意行为特征定位操作所述软件的漏洞包括:识别控制所述软件产生所述恶意行为特征的执行程序;将所述执行程序关联所述软件的关联路径确定为所述软件的漏洞。
根据本发明的另一个实施例,提供了一种软件漏洞的定位装置,包括:获取模块,用于获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;判断模块,用于判断所述行为链中是否存在不合法的恶意行为特征;定位模块,用于在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞。
可选的,所述装置还包括:修补模块,用于在所述定位模块根据所述恶意行为特征定位操作所述软件的漏洞之后,修补所述漏洞;或,处理模块,用于在所述定位模块根据所述恶意行为特征定位操作所述软件的漏洞之后,追溯利用所述漏洞的恶意程序,并拦截或删除所述恶意程序,其中,所述恶意程序用于控制所述软件以产生所述恶意行为特征。
可选的,所述判断模块包括:解析单元,用于解析所述行为链,得到所述多个行为特征;判断单元,用于判断所述多个行为特征中的每个行为特征是否与所述软件的预设行为特征库中的行为特征匹配,其中,所述预设行为特征库保存有所述软件的多个合法行为特征;确定单元,用于在所述行为链存在不匹配的指定行为特征时,将所述指定行为特征确定为所述恶意行为特征;在所述行为链不存在不匹配的指定行为特征时,确定所述行为链中不存在不合法的恶意行为特征。
可选的,所述判断单元还包括:比较子单元,用于依次将所述多个行为特征中的每个行为特征与所述预设行为特征库中的任一合法行为特征进行比较;确定子单元,用于在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征相同时,确定匹配;在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征均不同时,确定不匹配。
可选的,所述装置还包括:检测模块,用于在所述判断模块判断所述行为链中是否存在不合法的恶意行为特征之前,在所述软件在安全状态的运行过程中,检测所述软件触发的操作行为;收集模块,用于收集所述操作行为产生的合法行为链,其中,所述合法行为链由多个合法行为特征组成。
可选的,所述定位模块包括:识别单元,用于识别控制所述软件产生所述恶意行为特征的执行程序;确定单元,用于将所述执行程序关联所述软件的关联路径确定为所述软件的漏洞。
根据本发明的又一个实施例,还提供了一种软件漏洞的定位系统,包括客户端和服务器,所述服务器包括:获取模块,用于获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;判断模块,用于判断所述行为链中是否存在不合法的恶意行为特征;定位模块,用于在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞;所述客户端,与所述服务器连接,用于在本地运行所述软件,并产生所述行为链。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项装置实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成,进而判断所述行为链中是否存在不合法的恶意行为特征,在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞,通过使用行为链来判断和定位软件漏洞,可以定位利用白程序的漏洞,提高准确率,解决了相关技术中软件漏洞定位率低的技术问题,提高了使用软件的安全性。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图1是本发明实施例的一种软件漏洞的定位服务器的硬件结构框图。如图1所示,服务器10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种软件漏洞的定位方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种软件漏洞的定位方法,图2是根据本发明实施例的一种软件漏洞的定位方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;
本实施例的软件可以运行在各种设备中,如台式电脑,笔记本,手机,平板电脑,U盘等可以接入网络或者是可以被控制的电子设备。软件在执行一个操作行为时,会产生一系列与该操作行为相关的行为特征,如操作行为的触发代码,执行代码,执行流程,调用流程,调用接口等,这些行为特征形成该操作行为的行为链。
步骤S204,判断所述行为链中是否存在不合法的恶意行为特征;
步骤S206,在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞。
通过上述步骤,获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成,进而判断所述行为链中是否存在不合法的恶意行为特征,在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞,通过使用行为链来判断和定位软件漏洞,与该恶意行为特征相关的软件代码即该软件的漏洞,可以定位利用白程序的漏洞,提高准确率,解决了相关技术中软件漏洞定位率低的技术问题,提高了使用软件的安全性。
软件漏洞是指应用软件或操作系统软件在逻辑设计上的缺陷或在编写时产生的错误,这个缺陷或错误可以被不法者或者电脑黑客利用,通过植入木马、病毒等方式来攻击或控制整个电脑,从而窃取电脑中的重要资料和信息,甚至破坏整个系统。如Windows操作系统,Windows XP默认启动的UPNP服务存在严重安全漏洞。UPNP(Universal Plug andPlay)体系面向无线设备、PC机和智能应用,提供普遍的对等网络连接,在家用信息设备、办公用网络设备间提供TCP/IP连接和Web访问功能,该服务可用于检测和集成UPNP硬件。UPNP协议存在安全漏洞,使攻击者可非法获取任何Windows XP的系统级访问、进行攻击,还可通过控制多台XP机器发起分布式的攻击。
在本实施例中,在根据所述恶意行为特征定位操作所述软件的漏洞之后,还包括:修补所述漏洞;或,追溯利用所述漏洞的恶意程序,并拦截或删除所述恶意程序,其中,所述恶意程序用于控制所述软件以产生所述恶意行为特征。在修补漏洞或者,查杀利用漏洞的恶意程序(如木马、病毒等)后,软件的运行系统安全,恶意程序不能利用合法软件来执行越权行为或作恶,软件也不会因为执行越权行为或非法操作被安全软件查杀。
在本实施例的一个实施方式中,判断所述行为链中是否存在不合法的恶意行为特征包括:
S11,解析所述行为链,得到所述多个行为特征;多个行为特征是指行为链包含的多个行为特征,通过解析报文或内存序列可以得到所述多个行为特征;
S12,判断所述多个行为特征中的每个行为特征是否与所述软件的预设行为特征库中的行为特征匹配,其中,所述预设行为特征库保存有所述软件的多个合法行为特征;判断所述多个行为特征中的每个行为特征是否与所述软件的预设行为特征库中的行为特征匹配包括:依次将所述多个行为特征中的每个行为特征与所述预设行为特征库中的任一合法行为特征进行比较;在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征相同时,确定匹配;在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征均不同时,确定不匹配。
软件的预设行为特征库与软件对应,例如,微信软件的预设行为特征库包括三个合法行为特征,分别是{a,b,c},而软件的行为链中,解析得到行为特征为{b,c,f}。
S13,在所述行为链存在不匹配的指定行为特征时,将所述指定行为特征确定为所述恶意行为特征;在所述行为链不存在不匹配的指定行为特征时,确定所述行为链中不存在不合法的恶意行为特征。
通过比对分析,行为特征为{b,c,f}中,b,c与预设行为特征库存在匹配项,而f与{a,b,c}中的任一行为特征均不同,则f为所述恶意行为特征。识别软件产生的行为链,判断对比行为链的行为信息是否在预设行为特征库内,如果在,则是合法和安全的。
根据本实施例的上述实施方式,可以提前确定和存储预设行为特征库,预设行为特征库可以包括多个合法行为链,每个合法行为链包括一系列的行为特征,每个行为链有一个标识,用于检索行为链进而得到行为链中的合法行为特征,或者预设行为特征库直接包括多个合法行为特征,在判断所述行为链中是否存在不合法的恶意行为特征之前,还包括:
S21,在所述软件在安全状态的运行过程中,检测所述软件触发的操作行为;
S22,收集所述操作行为产生的合法行为链,其中,所述合法行为链由多个合法行为特征组成。
可选的,根据所述恶意行为特征定位操作所述软件的漏洞包括:识别控制所述软件产生所述恶意行为特征的执行程序;将所述执行程序关联所述软件的关联路径确定为所述软件的漏洞。关联路径是指执行程序控制该软件的方式,对应软件设计上的缺陷或错误,即BUG,可以是软件设计者故意留的后门,也可以是设计者在编写软件时产生的问题代码、问题策略、问题函数等,如:不正确的编码或转义输出,跨站点请求伪造,明文传送敏感信息,不正确的初始化,错误的资源关闭或发布等。
可选地,上述步骤的执行主体可以为连接一个或多个客户端的服务器等,客户端可以是移动终端,PC等,服务器可以是防火墙服务器,安全服务器等,但不限于此。在应用在服务器端时,服务器通过网络连接到多个运行软件的客户端,对其进行安全防护,图3是本发明实施例的应用场景图,服务器连接多个客户端,客户端运行软件,并产生的行为链,服务器获取该行为链,判断所述行为链中是否存在不合法的恶意行为特征,根据所述恶意行为特征定位操作所述软件的漏洞。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种软件漏洞的定位装置,可以是终端或服务器,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的软件漏洞的定位装置的结构框图,可以应用在客户端或服务器中,如图4所示,该装置包括:获取模块40,判断模块42,定位模块44,其中,
获取模块40,用于获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;
判断模块42,用于判断所述行为链中是否存在不合法的恶意行为特征;
定位模块44,用于在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞。
可选的,所述装置还包括:修补模块,用于在所述定位模块根据所述恶意行为特征定位操作所述软件的漏洞之后,修补所述漏洞;或,处理模块,用于在所述定位模块根据所述恶意行为特征定位操作所述软件的漏洞之后,追溯利用所述漏洞的恶意程序,并拦截或删除所述恶意程序,其中,所述恶意程序用于控制所述软件以产生所述恶意行为特征。
可选的,所述判断模块包括:解析单元,用于解析所述行为链,得到所述多个行为特征;判断单元,用于判断所述多个行为特征中的每个行为特征是否与所述软件的预设行为特征库中的行为特征匹配,其中,所述预设行为特征库保存有所述软件的多个合法行为特征;确定单元,用于在所述行为链存在不匹配的指定行为特征时,将所述指定行为特征确定为所述恶意行为特征;在所述行为链不存在不匹配的指定行为特征时,确定所述行为链中不存在不合法的恶意行为特征。
可选的,所述判断单元还包括:比较子单元,用于依次将所述多个行为特征中的每个行为特征与所述预设行为特征库中的任一合法行为特征进行比较;确定子单元,用于在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征相同时,确定匹配;在所述行为链的行为特征与所述预设行为特征库中的任一合法行为特征均不同时,确定不匹配。
可选的,所述装置还包括:检测模块,用于在所述判断模块判断所述行为链中是否存在不合法的恶意行为特征之前,在所述软件在安全状态的运行过程中,检测所述软件触发的操作行为;收集模块,用于收集所述操作行为产生的合法行为链,其中,所述合法行为链由多个合法行为特征组成。
可选的,所述定位模块包括:识别单元,用于识别控制所述软件产生所述恶意行为特征的执行程序;确定单元,用于将所述执行程序关联所述软件的关联路径确定为所述软件的漏洞。
本实施例还提供了一种软件漏洞的定位系统,包括客户端和服务器,所述服务器包括:获取模块,用于获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;判断模块,用于判断所述行为链中是否存在不合法的恶意行为特征;定位模块,用于在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞;所述客户端,与所述服务器连接,用于在本地运行所述软件,并产生所述行为链。
需要说明的是,终端和服务器仅是方案在执行主体上的差异,上述软件权限的设置装置中的各个示例和可选方案同样适应在服务器中,并产生相同的技术效果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;
S2,判断所述行为链中是否存在不合法的恶意行为特征;
S3,在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取软件在运行过程中产生的行为链,其中,所述行为链由多个行为特征组成;
S2,判断所述行为链中是否存在不合法的恶意行为特征;
S3,在所述行为链中存在不合法的恶意行为特征时,根据所述恶意行为特征定位操作所述软件的漏洞。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。