应用安全防护方法及装置、电子设备和存储介质与流程

文档序号:31765049发布日期:2022-10-12 04:07阅读:41来源:国知局
应用安全防护方法及装置、电子设备和存储介质与流程

1.本公开涉及网络安全技术领域,具体而言,涉及一种应用安全防护方法、应用安全防护装置、电子设备以及计算机可读存储介质。


背景技术:

2.随着互联网的发展,恶意渗透攻击成为威胁互联网安全最大的安全隐患,恶意代码的种类、传播速度、感染数量和影响范围都在逐渐增强。然而,最近几年的研究表明,恶意代码是基于现有程序而开发的,随着恶意代码更新速度的加快,产生了大量的变种恶意代码以及0day攻击代码,也导致未知恶意攻击无法准确阻隔与防护。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本公开的目的在于提供一种应用安全防护方法、应用安全防护装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服由于恶意代码更新速度较快,基于现有程序开发的恶意代码产生了大量变种,导致对未知恶意攻击无法进行准确阻隔和防护的问题。
5.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
6.根据本公开的第一方面,提供一种应用安全防护方法,包括:接收针对应用程序的当前操作行为,确定所述当前操作行为的入口运行参数;获取预先配置的参考匹配规则,将所述入口运行参数与所述参考匹配规则进行对比,得到所述当前操作行为的初始行为类型;确定所述当前操作行为对应的参考函数调用逻辑;根据所述参考函数调用逻辑与所述初始行为类型,对所述当前操作行为进行安全性分析处理,以生成所述当前操作行为的控制指令。
7.在本公开的一种示例性实施方案中,所述参考匹配规则存储于实时动态更新的规则匹配库;所述将所述入口运行参数与所述参考匹配规则进行对比,得到所述当前操作行为的初始行为类型,包括:对所述入口运行参数进行解析处理,得到对应的解析运行参数;将所述解析运行参数与所述参考匹配规则进行对比,确定所述解析运行参数的异常分析结果;根据所述异常分析结果确定所述当前操作行为的初始行为类型。
8.在本公开的一种示例性实施方案中,所述参考函数调用逻辑基于函数调用逻辑集合获取;所述函数调用逻辑集合基于下述步骤生成:获取预先配置的增强类库,基于所述增强类库确定函数内容集合;基于所述函数内容集合确定操作行为日志;所述操作行为日志包括历史用户操作行为对应的历史行为标识和历史行为时间戳;根据所述历史行为标识与所述历史行为行为戳,对所述历史用户操作行为对应的函数进行时间排序后得到函数链调用顺序;根据多个所述函数链调用顺序生成所述函数调用逻辑集合。
9.在本公开的一种示例性实施方案中,所述增强类库下述步骤生成:从初始增强类库中确定待增强类;所述初始增强类库包括所述待增强类与增强扩展类之间的关联关系;对所述待增强类进行封装处理,得到对应的封装类数据;所述封装类数据包括类类型、入参参数与类对象中的一种或多种;将原始的待增强函数作基础父类;将所述封装类数据写入至代理函数,基于所述基础父类对所述待增强类中的待增强函数进行重写处理;所述重写处理包括生成所述基础父类的新增函数;修改经过所述重写处理的增强函数的函数名称,以得到增强扩展函数;基于所述增强扩展函数生成所述增强类库。
10.在本公开的一种示例性实施方案中,所述确定所述当前操作行为对应的参考函数调用逻辑,包括:响应于所述当前操作行为对应的程序调用指令,采用反射机制获取所述程序调用指令的传输数据;所述传输数据包括所述当前操作行为的操作标识和操作时间戳;根据所述操作标识与所述操作时间戳,从函数调用逻辑集合中确定与所述当前操作行为对应的参考函数调用逻辑。
11.在本公开的一种示例性实施方案中,所述根据所述参考函数调用逻辑与所述初始行为类型,对所述当前操作行为进行安全性分析处理,以生成所述当前操作行为的控制指令,包括:如果所述初始行为类型为潜在异常行为类型,则根据所述参考函数调用逻辑确定所述当前操作行为对应的前置数据来源;对所述前置数据来源进行安全性分析处理,得到安全性分析结果;根据所述安全性分析结果生成所述当前操作行为的控制指令。
12.在本公开的一种示例性实施方案中,所述控制指令包括拦截指令,所述方法还包括:如果所述控制指令为拦截指令,则对所述当前操作行为进行拦截,生成对应的行为拦截数据;所述行为拦截数据包括拦截通知消息;将所述拦截通知消息发送至指定服务端,并将所述行为拦截数据存储至知识存储库。
13.根据本公开的第二方面,提供一种应用安全防护装置,包括:参数获取模块,用于接收针对应用程序的当前操作行为,确定所述当前操作行为的入口运行参数;初始类型确定模块,用于获取预先配置的参考匹配规则,将所述入口运行参数与所述参考匹配规则进行对比,得到所述当前操作行为的初始行为类型;调用逻辑确定模块,用于确定所述当前操作行为对应的参考函数调用逻辑;安全性分析模块,用于根据所述参考函数调用逻辑与所述初始行为类型,对所述当前操作行为进行安全性分析处理,以生成所述当前操作行为的控制指令。
14.在本公开的一种示例性实施方案中,所述参考匹配规则存储于实时动态更新的规则匹配库;所述初始类型确定模块包括初始类型确定单元,用于对所述入口运行参数进行解析处理,得到对应的解析运行参数;将所述解析运行参数与所述参考匹配规则进行对比,确定所述解析运行参数的异常分析结果;根据所述异常分析结果确定所述当前操作行为的初始行为类型。
15.在本公开的一种示例性实施方案中,所述参考函数调用逻辑基于函数调用逻辑集合获取;所述应用安全防护装置包括调用逻辑生成模块,用于获取预先配置的增强类库,基于所述增强类库确定函数内容集合;基于所述函数内容集合确定操作行为日志;所述操作行为日志包括历史用户操作行为对应的历史行为标识和历史行为时间戳;根据所述历史行为标识与所述历史行为行为戳,对所述历史用户操作行为对应的函数进行时间排序后得到函数链调用顺序;根据多个所述函数链调用顺序生成所述函数调用逻辑集合。
16.在本公开的一种示例性实施方案中,所述调用逻辑生成模块包括增强类库生成单元,用于从初始增强类库中确定待增强类;所述初始增强类库包括所述待增强类与增强扩展类之间的关联关系;对所述待增强类进行封装处理,得到对应的封装类数据;所述封装类数据包括类类型、入参参数与类对象中的一种或多种;将原始的待增强函数作基础父类;将所述封装类数据写入至代理函数,基于所述基础父类对所述待增强类中的待增强函数进行重写处理;所述重写处理包括生成所述基础父类的新增函数;修改经过所述重写处理的增强函数的函数名称,以得到增强扩展函数;基于所述增强扩展函数生成所述增强类库。
17.在本公开的一种示例性实施方案中,所述调用逻辑确定模块包括调用逻辑确定单元,用于响应于所述当前操作行为对应的程序调用指令,采用反射机制获取所述程序调用指令的传输数据;所述传输数据包括所述当前操作行为的操作标识和操作时间戳;根据所述操作标识与所述操作时间戳,从函数调用逻辑集合中确定与所述当前操作行为对应的参考函数调用逻辑。
18.在本公开的一种示例性实施方案中,所述安全性分析模块包括安全性分析单元,用于如果所述初始行为类型为潜在异常行为类型,则根据所述参考函数调用逻辑确定所述当前操作行为对应的前置数据来源;对所述前置数据来源进行安全性分析处理,得到安全性分析结果;根据所述安全性分析结果生成所述当前操作行为的控制指令。
19.在本公开的一种示例性实施方案中,所述控制指令包括拦截指令,所述应用安全防护装置还包括拦截处理模块,用于如果所述控制指令为拦截指令,则对所述当前操作行为进行拦截,生成对应的行为拦截数据;所述行为拦截数据包括拦截通知消息;将所述拦截通知消息发送至指定服务端,并将所述行为拦截数据存储至知识存储库。
20.根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据上述任意一项所述的应用安全防护方法。
21.根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的应用安全防护方法。
22.本公开提供的技术方案可以包括以下有益效果:
23.本公开的示例性实施例中的应用安全防护方法,一方面,通过提取当前操作行为的入口运行参数,将入口运行参数作为当前操作行为的分析依据,可以有效实现拦截分离,降低主程序机器性能占用,提高运行西能。另一方面,基于参考函数调用逻辑对当前操作行为进行安全性分析,可以有效提高重要业务的错误拦截损失,提高拦截准确率。
24.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
26.图1示意性示出了现有技术中对异常代码的安全检测流程图;
27.图2示意性示出了根据本公开的示例性实施方式的应用安全防护方法的流程图;
28.图3示意性示出了根据本公开的示例性实施方式的对异常行为进行安全性检测的整体流程图;
29.图4示意性示出了根据本公开的示例性实施方式的对入口运行参数进行解析处理的流程图;
30.图5示意性示出了根据本公开的示例性实施方式的函数调用方法链的匹配流程图;
31.图6示意性示出了根据本公开的示例性实施方式的应用安全防护装置的方框图;
32.图7示意性示出了根据本公开一示例性实施例的电子设备的框图;
33.图8示意性示出了根据本公开一示例性实施例的计算机可读存储介质的示意图。
具体实施方式
34.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
35.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
36.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
37.由于现有的恶意代码是基于现有程序开发的,且随着恶意代码更新速度的加快,产生了大量的变种恶意代码以及0day攻击代码,导致未知恶意攻击无法准确阻隔、防护。参考图1,现有的应用防护方案,在步骤s110中,通过运行时程序自保护(runtime application self-protection,rasp)程序110进行数据提取与统一资源定位系统(uniform resource locator,url)提取过程;在步骤s120中,将提取到的数据进行数据分析与规则匹配;匹配结束后,在步骤s130中,进行异常代码判定过程。如果检测到代码存在异常,则在步骤s140中,进行拦截处理,将拦截处理结果发送至网络应用端120,以对网络应用程序进行安全防护。
38.基于此,在本示例实施例中,首先提供了一种应用安全防护方法,可以利用服务器来实现本公开的应用安全防护方法,也可以利用终端设备来实现本公开所述的方法,其中,本公开中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personal digital assistant,pda)等移动终端,以及诸如台式计算机等固定终端。图2示意性示出了根据本公开的一些实施例的应用安全防护方法流程的示意图。参考图2,该应用安全防护方法可以包括以下步骤:
39.步骤s210,接收针对应用程序的当前操作行为,确定当前操作行为的入口运行参数。
40.根据本公开的一些示例性实施例,应用程序可以是网络(web)上运行的应用程序。当前操作行为可以是针对应用程序的操作行为,例如,登录该应用程序的行为、针对应用程序某些数据的操作行为。入口运行参数可以是采用钩子(hook)机制获取到当前操作行为作用于应用程序的运行参数。
41.参考图3,图3示意性示出了根据本公开的示例性实施方式的对异常行为进行安全性检测的整体流程图。图3中的网络应用端311运行有网络应用程序,对于网络应用端311的网络应用程序,可以针对其进行登录、浏览、数据输入等操作行为,当检测到针对应用程序的操作行为时,将该操作行为确定为当前操作行为,并确定出当前操作行为的入口运行参数。本公开可以在应用程序中嵌入代理(agent)形式的rasp库,其中,rasp是一种新型应用安全保护技术,将保护程序注入至应用程序中,以实时检测和阻断安全攻击。
42.在本实施例中,应用程序中可以嵌入agent形式的rasp库,并采用运行时程序自保护钩子312,以hooks形式提取到应用程序的代码运行时的入口运行参数。举例而言,可以采用外挂于应用程序上的代理方法,获取入口运行参数,如通过java虚拟机(java virtual machine,jvm)的代码,提取到主应用程序中一些参数。例如,提取到的入口运行参数可以包括外部传入的参数和应用程序代码自身传入的固定参数,如字符串、数字与对象等形式的参数;以用户登录的操作行为为例,入口运行参数可以包括用户名和密码等。由于是通过hooks形式提取到入口运行参数,可以在不侵入源代码的情况下实现攻击面管理(attack surface management,asm)提取运行参数。
43.步骤s220,获取预先配置的参考匹配规则,将入口运行参数与参考匹配规则进行对比,得到当前操作行为的初始行为类型。
44.根据本公开的一些示例性实施例,参考匹配规则可以是用于判断入口运行参数的是否存在异常的匹配规则。初始行为类型可以是当前操作行为是否存在异常的类型,例如,初始行为类型可以包括潜在异常行为类型和正常行为类型。
45.在获取到入口运行参数后,可以获取预先配置的用于对入口运行参数进行分析以确定操作行为的初始行为类型的参考匹配规则。继续参考图3,在步骤s310中,将获取到的入口运行参数与参考匹配规则(rasp规则)进行对比,可以得到当前操作行为对应的初始行为类型。参考匹配规则可以基于云端规则库320获取。
46.通常,初始行为类型可以包括潜在异常行为类型与正常行为类型。将入口运行参数与参考匹配规则进行对比后,如果确定出当前操作行为的初始行为类型是潜在异常行为类型,则还需对当前操作行为进行进一步分析。
47.步骤s230,确定当前操作行为对应的参考函数调用逻辑。
48.根据本公开的一些示例性实施例,函数调用逻辑可以是应用程序运行时不同函数之间由于相互调用所产生的调用逻辑。参考函数调用逻辑可以是与当前操作行为对应的函数调用逻辑。
49.在确定出当前操作行为的初始行为类型后,可以进一步确定当前操作行为对应的参考函数调用逻辑,继续参考图3,在步骤s320中,通过参考函数调用逻辑对当前操作行为进行安全性分析,基于参考函数调用逻辑的安全性分析方式可以包括动态上下文分析与日
志方法运行分析等方式。
50.步骤s240,根据参考函数调用逻辑与初始行为类型,对当前操作行为进行安全性分析处理,以生成当前操作行为的控制指令。
51.根据本公开的一些示例性实施例,安全性分析处理可以是对当前操作行为的安全性进行分析处理的过程。控制指令可以是控制当前操作行为是否继续进行的指令,控制指令可以包括拦截指令,拦截指令可以是指如果当前操作行为存在安全性风险时,对当前操作行为进行行为拦截的指令。
52.继续参考图3,根据参考函数调用逻辑与初始行为类型,对当前操作行为进行安全性分析处理后,在步骤s330中,对当前操作行为进行异常行为判定,得到当前操作行为的异常行为判定结果。在步骤s340中,采用用户hook规则对当前操作行为进行管理,生成针对当前操作行为的控制指令,包括拦截指令和不拦截指令。如果生成的控制指令为拦截指令,则在步骤s350中,对当前操作行为进行拦截。否则,在步骤s360中,不对当前操作行为进行拦截。
53.根据本示例实施例中的应用安全防护方法,一方面,通过提取当前操作行为的入口运行参数,将入口运行参数作为当前操作行为的分析依据,可以有效实现拦截分离,降低主程序机器性能占用,提高运行西能。另一方面,基于参考函数调用逻辑对当前操作行为进行安全性分析,可以有效提高重要业务的错误拦截损失,提高拦截准确率。
54.下面,将对本示例实施例步骤s210~步骤s240中的应用安全防护方法进行进一步的说明。
55.在本公开的一种示例性实施方案中,参考匹配规则存储于实时动态更新的规则匹配库;将入口运行参数与参考匹配规则进行对比,得到当前操作行为的初始行为类型,包括:对入口运行参数进行解析处理,得到对应的解析运行参数;将解析运行参数与参考匹配规则进行对比,确定解析运行参数的异常分析结果;根据异常分析结果确定当前操作行为的初始行为类型。
56.其中,规则匹配库,又称云端规则库,可以是用于存储参考匹配规则的数据库。解析处理可以将入口运行参数进行转换为解析运行参数的处理过程。解析运行参数可以是对入口运行参数进行解析处理后得到的参数。异常分析结果可以是判断解析运行参数是否存在异常的结果。
57.参考图4,图4示意性示出了根据本公开的示例性实施方式的对入口运行参数进行解析处理的流程图。在步骤s410中,对入口运行参数进行解析处理,得到对应的解析运行参数。由于获取到的入口运行参数可以是应用程序执行时所使用的参数格式,如入口运行参数可以是密文形式,如字节码形式。将提取到的字节码传输到rasp规则配置端,将入口运行参数对应的字节码解析为对应的运行函数和运行参数,即解析运行参数。
58.在步骤s420中,将解析运行参数与参考匹配规则进行对比,确定解析运行参数的异常分析结果。在得到解析运行参数后,可以从云端规则库中获取参考匹配规则,云端规则库中可以采用以补丁、版本形式对其中存储匹配规则进行实时更新。rasp规则配置服务端包含有知识存储库、漏洞库,如通用漏洞披露(common vulnerabilities exposures)库,为后续的潜在危险行为进行安全性比对分析。将得到的解析运行参数与规则匹配库进行对比,得到对应的异常分析结果。具体的,解析运行参数与规则匹配库的对比过程,可以是一
个正则的匹配过程。
59.在步骤s430中,根据异常分析结果确定当前操作行为的初始行为类型。例如,在对比分析过程中,如果匹配到存在危险的潜在异常函数或者潜在异常参数,可以将当前操作行为的初始行为类型确定为潜在异常行为类型。通过上述处理过程,可以确定出当前操作行为是否为潜在异常行为类型。
60.在本公开的一种示例性实施方案中,从初始增强类库中确定待增强类;初始增强类库包括待增强类与增强扩展类之间的关联关系;对待增强类进行封装处理,得到对应的封装类数据;封装类数据包括类类型、入参参数与类对象中的一种或多种;将原始的待增强函数作基础父类;将封装类数据写入至代理函数,基于基础父类对待增强类中的待增强函数进行重写处理;重写处理包括生成基础父类的新增函数;修改经过重写处理的增强函数的函数名称,以得到增强扩展函数;基于增强扩展函数生成增强类库。
61.其中,初始增强类库可以是待增强类组成的数据库。待增强类可以是需要增强的类。增强扩展类可以是对待增强类进行增强扩展处理后所生成的类。封装类数据可以是对待增强类进行封装处理后所得到的数据。类类型可以是封装数据中包含的类的具体类型。入参参数可以是待增强类的入口运行参数。类对象可以是基于待增强类生成的对象。基础父类可以对需要增强的函数进行重写处理时所依赖的父类,其他需要增强的函数可以在基础父类的基础上生成。代理函数可以是实现代理目的的函数。函数名称可以对需要增强的函数进行重写处理后该函数对应的名称。增强扩展函数可以是通过上述增强处理步骤后得到的函数。
62.参考图5,图5示意性示出了根据本公开的示例性实施方式的函数调用方法链的匹配流程图。基于应用程序的代理入口(即agent入口)510,通过代理工具instrument进入代理主函数(agent main)520中,agent main支持的是附着接口(attach api)方式。在步骤s510中,进行待增强类处理,通过类名匹配,在初始增强类库(enhancermap)530中确定待增强类,enhancermap中保存了需要增强的类名与增强扩展类之间的关系。
63.对待增强类进行增强处理的过程,可以类比动态代理执行的方式,对将需要代理的待增强类进行封装处理,得到封装类数据,封装类数据可以包括class类型、入参、对象等数据,将封装类数据带入到代理函数中,可以对需要增强的函数重写。在对函数进行重写时,可以将重写之前的函数作为基底类并且修改对应的函数名称。通过上述处理步骤,可以得到对应的增强扩展函数,基于生成的增强扩展函数可以生成增强类库。
64.在此过程中,可以将函数延后处理,当应用程序调用的时候再去实时进行反射操作获取传输数据,以根据传输数据进行后续的安全性分析处理。
65.在本公开的一种示例性实施方案中,获取预先配置的增强类库,基于增强类库确定函数内容集合;基于函数内容集合确定操作行为日志;操作行为日志包括历史用户操作行为对应的历史行为标识和历史行为时间戳;根据历史行为标识与历史行为行为戳,对历史用户操作行为对应的函数进行时间排序后得到函数链调用顺序;根据多个函数链调用顺序生成函数调用逻辑集合。
66.其中,增强类库可以是多个增强类包含的函数与参数所组成的数据库。函数内容集合可以是用于存储用户操作行为的相关内容的集合。操作行为日志可以是过去时间段中用户针对应用程序所进行的操作行为对应的日志文件。历史用户操作行为可以是用户过去
针对应用程序所进行的操作行为。历史行为标识可以是用户过去针对应用程序进行操作行为的唯一标识。历史行为时间戳可以是历史用户操作行为对应的时间戳。函数链调用顺序可以是应用程序运行过程中所涉及的多个函数之间的调用顺序。函数调用逻辑集合可以是由多个不同的函数链调用顺序与其他逻辑数据所组成的内容集合。
67.继续参考图5,在生成函数调用逻辑集合时,可以先获取预先配置的增强类库530(enhancermap),增强类库中保存了增强类名与增强扩展类之间的关系。从获取到的增强类库中可以确定出函数内容集合540(method content array),并从函数内容集合中确定操作行为日志,操作行为日志中包含用户过去对应用程序进行操作,所产生的用户历史操作行为对应的历史用户标识与历史行为时间戳。从操作行为日志中确定历史用户操作行为,即时间戳在标识之前的函数550。
68.在获取到针对应用程序的用户历史操作行为的上述信息后,可以根据上述信息对历史用户操作行为对应的函数按照事件排序后得到函数链调用顺序。例如,函数链调用顺序中可以包括函数a对函数b的调用,函数b对函数c的调用等等信息。根据获取到的所有历史用户操作行为对应的函数调用顺序后,用户可以对不同的函数运行链的权限进行配置,例如,对相应的函数进行拦截或者不拦截的配置;另外,用户还可以对不同函数确定重要等级,如确定出程序运行过程中多个函数调用链的重要等级,对根据重要等级配置相应的权重。结合用户的权限配置,可以根据生成的多个函数调用顺序生成函数调用逻辑集合。
69.在本公开的一种示例性实施方案中,响应于当前操作行为对应的程序调用指令,采用反射机制获取程序调用指令的传输数据;传输数据包括当前操作行为的操作标识和操作时间戳;根据操作标识与操作时间戳,从函数调用逻辑集合中确定与当前操作行为对应的参考函数调用逻辑。
70.其中,程序调用指令可以是当前操作行为对应的调用其他函数的指令。传输数据可以是采用反射机制获取到的当前操作行为的相关数据。操作标识可以是当前操作行为对应的唯一标识。操作时间戳可以是当前操作行为对应的时间戳。
71.继续参考图5,在步骤s510中,采用代理机制获取传输数据。响应于当前操作行为对应的程序调用指令,采用反射机制获取程序调用指令对应的传输数据。例如,传输数据中包括当前操作行为对应的操作标识和操作时间戳。操作标识可以表示出当前操作行为在操作过程中所执行的多个函数,操作时间戳可以示出多个函数之间的执行时间的先后顺序。通过操作标识与操作时间戳可以确定当前操作行为在执行过程中的函数调用顺序链560。因此,根据传输数据中的操作标识和操作时间戳,可以从函数调用逻辑集合包含的时间戳在标识之前的函数550中,确定出与当前操作行为对应的参考函数调用逻辑,以进一步根据参考函数调用逻辑对当前操作行为进行安全性分析。
72.在本公开的一种示例性实施方案中,如果初始行为类型为潜在异常行为类型,则根据参考函数调用逻辑确定当前操作行为对应的前置数据来源;对前置数据来源进行安全性分析处理,得到安全性分析结果;根据安全性分析结果生成当前操作行为的控制指令。
73.其中,潜在异常行为类型可以是存在潜在异常的操作行为所对应的类型。前置数据来源可以是当前操作行为对应的前置数据的数据来源,例如,传输至当前操作行为对应的函数的相关数据的来源。安全性分析结果可以是对当前操作行为是否存在异常进行分析,得到的关于安全性的分析结果。
74.由于参考函数调用逻辑中包含多个函数之间的调用关系,函数之间的调用关系可以包含数据流向等相关信息。因此,当前异常分析结果为初始行为类型是潜在异常行为类型,可以根据参考函数调用逻辑进一步确定当前操作行为对应的前置数据来源。对前置数据来源进行安全性分析处理,分析前置数据来源是否安全,确定存在潜在异常的exec、readfile等函数的前置来源的数据安全,得到安全性分析结果。
75.例如,针对某一当前操作行为,检测出为潜在异常行为类型,当前操作行为对应的函数对应一个前置的函数a,函数a向当前操作行为的运行函数传了一个参数a,此时,可以判定这个函数a传的参数a是危险的还是安全的。如果前置函数a是一个存在异常的函数,则传来的参数a也可以认为是存在风险的,此时这个函数的调用链就是一个恶意的调用链。
76.根据得到的安全性分析结果,确定是否对当前操作行为进行拦截,并对应生成当前操作行为的控制指令。如果对前置数据来源进行安全性分析后,认为当前操作行为存在异常风险,则所生成的当前操作行为的控制指令为拦截指令;如果对前置数据来源进行安全性分析后,认为当前操作行为不存在异常风险,则控制指令为继续运行指令。
77.在本公开的一种示例性实施方案中,如果控制指令为拦截指令,则对当前操作行为进行拦截,生成对应的行为拦截数据;行为拦截数据包括拦截通知消息;将拦截通知消息发送至指定服务端,并将行为拦截数据存储至知识存储库。
78.其中,拦截指令可以是对当前操作行为进行拦截的指令。行为拦截数据可以是对当前操作行为进行拦截处理时所产生的相关数据。拦截通知消息可以是表明当前操作行为被拦截的消息。指定服务端可以是接收拦截通知消息的用户端。知识存储库可以是用于存储被拦击的操作行为的数据库。
79.如果生成的控制指令为拦截指令,则对作用于应用程序的当前操作行为进行拦截,以确保对应用程序的安全防护。在对当前操作行为进行拦截时,生成对应的行为拦截数据。例如,生成的行为拦截数据包括对当前操作行为进行拦截的通知消息,可以将该拦截通知消息以邮件形式发送至指定服务端,如运维人员对应的服务端。另外,还可以拦截当前操作行为时产生的行为拦截数据存储至知识存储库中。
80.本领域技术人员容易理解的是,还可以采用其他方式将拦截通知消息发送至指定服务端,本公开对拦截通知消息的具体形式不作任何特殊限定。
81.综上所述,接收针对应用程序的当前操作行为,确定当前操作行为的入口运行参数;获取预先配置的参考匹配规则,将入口运行参数与参考匹配规则进行对比,得到当前操作行为的初始行为类型;确定当前操作行为对应的参考函数调用逻辑;根据参考函数调用逻辑与初始行为类型,对当前操作行为进行安全性分析处理,以生成当前操作行为的控制指令。一方面,通过提取当前操作行为的入口运行参数,将入口运行参数作为当前操作行为的分析依据,可以有效实现拦截分离,降低主程序机器性能占用,提高运行西能。另一方面,基于参考函数调用逻辑对当前操作行为进行安全性分析,可以有效提高重要业务的错误拦截损失,提高拦截准确率。再一方面,在确定出需要拦截操作行为后,可以将生成的拦截数据存储至知识存储库中,对知识存储库进行更新,可以进一步提高后续的拦截准确率。
82.需要说明的是,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执
行,以及/或者将一个步骤分解为多个步骤执行等。
83.此外,在本示例实施例中,还提供了一种应用安全防护装置。参考图6,该应用安全防护装置600可以包括:参数获取模块610、初始类型确定模块620、调用逻辑确定模块630以及安全性分析模块640。
84.具体的,参数获取模块610,用于接收针对应用程序的当前操作行为,确定当前操作行为的入口运行参数;初始类型确定模块620,用于获取预先配置的参考匹配规则,将入口运行参数与参考匹配规则进行对比,得到当前操作行为的初始行为类型;调用逻辑确定模块630,用于确定当前操作行为对应的参考函数调用逻辑;安全性分析模块640,用于根据参考函数调用逻辑与初始行为类型,对当前操作行为进行安全性分析处理,以生成当前操作行为的控制指令。
85.在本公开的一种示例性实施方案中,参考匹配规则存储于实时动态更新的规则匹配库;初始类型确定模块620包括初始类型确定单元,用于对入口运行参数进行解析处理,得到对应的解析运行参数;将解析运行参数与参考匹配规则进行对比,确定解析运行参数的异常分析结果;根据异常分析结果确定当前操作行为的初始行为类型。
86.在本公开的一种示例性实施方案中,参考函数调用逻辑基于函数调用逻辑集合获取;应用安全防护装置600包括调用逻辑生成模块,用于获取预先配置的增强类库,基于增强类库确定函数内容集合;基于函数内容集合确定操作行为日志;操作行为日志包括历史用户操作行为对应的历史行为标识和历史行为时间戳;根据历史行为标识与历史行为行为戳,对历史用户操作行为对应的函数进行时间排序后得到函数链调用顺序;根据多个函数链调用顺序生成函数调用逻辑集合。
87.在本公开的一种示例性实施方案中,调用逻辑生成模块包括增强类库生成单元,用于从初始增强类库中确定待增强类;初始增强类库包括待增强类与增强扩展类之间的关联关系;对待增强类进行封装处理,得到对应的封装类数据;封装类数据包括类类型、入参参数与类对象中的一种或多种;将原始的待增强函数作基础父类;将封装类数据写入至代理函数,基于基础父类对待增强类中的待增强函数进行重写处理;重写处理包括生成基础父类的新增函数;修改经过重写处理的增强函数的函数名称,以得到增强扩展函数;基于增强扩展函数生成增强类库。
88.在本公开的一种示例性实施方案中,调用逻辑确定模块630包括调用逻辑确定单元,用于响应于当前操作行为对应的程序调用指令,采用反射机制获取程序调用指令的传输数据;传输数据包括当前操作行为的操作标识和操作时间戳;根据操作标识与操作时间戳,从函数调用逻辑集合中确定与当前操作行为对应的参考函数调用逻辑。
89.在本公开的一种示例性实施方案中,安全性分析模块640包括安全性分析单元,用于如果初始行为类型为潜在异常行为类型,则根据参考函数调用逻辑确定当前操作行为对应的前置数据来源;对前置数据来源进行安全性分析处理,得到安全性分析结果;根据安全性分析结果生成当前操作行为的控制指令。
90.在本公开的一种示例性实施方案中,控制指令包括拦截指令,应用安全防护装置600还包括拦截处理模块,用于如果控制指令为拦截指令,则对当前操作行为进行拦截,生成对应的行为拦截数据;行为拦截数据包括拦截通知消息;将拦截通知消息发送至指定服务端,并将行为拦截数据存储至知识存储库。
91.上述中各应用安全防护装置的虚拟模块的具体细节已经在对应的应用安全防护方法中进行了详细的描述,因此此处不再赘述。
92.应当注意,尽管在上文详细描述中提及了应用安全防护装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
93.此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
94.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
95.下面参考图7来描述根据本公开的这种实施例的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
96.如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740。
97.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
98.存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(rom)723。
99.存储单元720可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
100.总线730可以表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
101.电子设备700也可以与一个或多个外部设备770(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
102.通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储
介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
103.其中,网络设备可以是用于与移动设备通信的设备,网络设备可以是wlan中的接入点(access point,ap),gsm或cdma中的基站(base transceiver station,bts),也可以是wcdma中的基站(nodeb,nb),还可以是lte中的演进型基站(evolutional node b,enb或enodeb),或者中继站或接入点,或者车载设备、可穿戴设备以及5g网络中的网络设备或者基站(gnb)或者未来演进的plmn网络中的网络设备等。
104.值得指出的是,本公开实施例所描述的技术不限于lte(long term evolution,长期演进型)/lte-a(lte-advanced,lte的演进)系统,还可用于其他无线通信系统,诸如cdma(code division multiple access,码分多址)、tdma(time division multiple access,时分多址)、fdma(frequency division multiple access,频分多址)、ofdma(orthogonal frequency division multiple access,正交频分多址)、sc-fdma(single-carrier frequency-division multiple access,单载波频分多址)和其他系统。本公开实施例中的术语“系统”和“网络”常被可互换地使用,所描述的技术既可用于以上提及的系统和无线电技术,也可用于其他系统和无线电技术。然而,以下描述出于示例目的描述了5g系统,并且在以下大部分描述中使用5g术语,尽管这些技术也可应用于5g系统应用以外的应用,如6g(6th generation,第6代)通信系统。
105.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
106.参考图8所示,描述了根据本发明的实施例的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
107.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
108.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
109.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有
线、光缆、rf等等,或者上述的任意合适的组合。
110.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
111.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
112.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
113.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1