本技术涉及计算机及通信,具体而言,涉及一种网络攻击行为检测方法及相关设备。
背景技术:
1、随着计算机技术的发展,办公软件越来越普及,在各种电子设备中安装的比例很高。但随之而来的,利用办公软件漏洞进行网络攻击也已经成为黑客惯用的手段。
2、目前,用以通过办公软件进行网络攻击的漏洞中,内存破坏漏洞是经常使用的漏洞类型之一。然而,在传统的安全防御软件中,没有可靠有效的防御手段来发现和识别利用了内存破坏漏洞的网络攻击行为。
技术实现思路
1、本技术的实施例提供了一种网络攻击行为检测方法及相关设备,进而至少在一定程度上可以克服现有技术的没有可靠有效的防御手段来发现和识别利用了内存破坏漏洞的网络攻击行为的问题。
2、本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
3、根据本技术实施例的一个方面,提供了一种网络攻击行为检测方法,网络攻击行为检测方法包括:通过目标软件打开目标文件,所述目标软件的进程中注入有检测单元;将所述目标文件的执行流导入所述检测单元;通过所述检测单元,在所述目标文件的执行流中确定分配内存总和;根据所述分配内存总和,确定目标文件是否存在堆喷行为。
4、在本技术的一个实施例中,所述通过所述检测单元检测所述目标文件是否存在堆喷行为,具体包括:将所述目标文件的执行流导入所述检测单元;通过所述检测单元,在所述目标文件的执行流中确定分配内存总和;根据所述分配内存总和,确定目标文件是否存在堆喷行为。
5、在本技术的一个实施例中,所述将所述目标文件的执行流导入所述检测单元,具体包括:检测所述目标文件是否执行预定步骤;若所述目标文件执行了预定步骤,则将所述目标文件的执行流导入所述检测单元。
6、在本技术的一个实施例中,所述通过所述检测单元,在所述目标文件的执行流中确定分配内存总和,具体包括:通过所述检测单元,在所述目标文件的执行流中获取目标数据,所述目标数据包括内存栈帧数据;根据所述内存栈帧数据,确定所述分配内存总和。
7、在本技术的一个实施例中,所述根据所述内存栈帧数据,确定所述分配内存总和,具体包括:根据所述内存栈帧数据,确定当前分配内存;对所述当前分配内存累加,得到分配内存总和。
8、在本技术的一个实施例中,在所述判定所述目标文件有网络攻击行为之后,所述网络攻击行为检测方法还包括:根据所述目标信息,得到分析结果,所述目标信息包括所述分配内存总和。
9、在本技术的一个实施例中,所述目标数据还包括内存对象地址,所述目标信息还包括句柄值,在所述根据所述目标信息,得到分析结果之前,所述方法还包括:根据所述内存对象地址,确定实际内存数据地址;根据所述实际内存地址,确定所述句柄值。
10、在本技术的一个实施例中,所述根据所述内存对象地址,确定实际内存数据地址,具体包括:根据所述内存对象地址,获取cmembytes内存对象;对所述cmembytes内存对象进行解析,得到实际内存数据地址。
11、在本技术的一个实施例中,所述根据所述实际内存地址,确定所述句柄值,具体包括:根据所述实际内存地址,获取实际内存数据;对所述实际内存数据进行解析,得到句柄值。
12、在本技术的一个实施例中,所述根据所述分配内存总和,确定目标文件是否存在堆喷行为,具体包括:在预定时间内,若所述分配内存总和大于预定堆喷阈值,则判定发生堆喷行为;在预定时间内,若所述分配内存总和不大于预定堆喷阈值,则判定未发生堆喷行为。
13、在本技术的一个实施例中,在所述通过目标软件打开目标文件之前,所述网络攻击行为检测方法还包括:响应于目标软件的启动,暂停所述目标软件的进程;在所述目标软件的进程中注入动态库程序文件,所述动态库程序文件中包含所述检测单元;对所述动态库程序文件进行初始化,以使所述目标软件的进程能够导入所述检测单元。
14、在本技术的一个实施例中,所述动态库程序文件包含预设的配置文件,所述对所述动态库程序文件进行初始化,以使所述目标软件的进程能够导入所述检测单元,具体包括:加载所述预设的配置文件,所述配置文件中记录有配置信息,所述配置信息包含目标模块名称;根据所述目标模块名称,在所述目标软件的进程中确定目标模块;在所述目标模块中导入所述检测单元,以使所述目标模块的进程能够导入所述检测单元。
15、在本技术的一个实施例中,所述配置信息还包括目标偏移位置,所述在所述目标模块中导入所述检测单元,以使所述目标模块的进程能够导入所述检测单元,具体包括:获取所述目标模块的模块信息,所述模块信息包括所述目标模块的偏移位置;确定所述模块信息和所述配置信息是否匹配;若所述模块信息和所述配置信息匹配,则在所述目标模块的偏移位置导入所述检测单元。
16、在本技术的一个实施例中,所述在所述目标模块的偏移位置导入所述检测单元,具体包括:通过挂钩函数,使所述目标软件的执行流跳转至所述检测单元中;在所述检测单元结尾跳转回所述目标模块中执行流的原始位置。
17、根据本技术实施例的一个方面,提供了一种网络攻击行为检测装置,其特征在于,所述网络攻击行为检测装置包括:软件启动模块,用于通过目标软件打开目标文件,所述目标软件的进程中注入有检测单元;行为检测模块,用于通过所述检测单元检测所述目标文件是否存在堆喷行为;行为判定模块,用于若所述目标文件存在堆喷行为,则判定所述目标文件有网络攻击行为。
18、在本技术的一个实施例中,所述行为检测模块具体包括:流量导入子模块,用于将所述目标文件的执行流导入所述检测单元;总和确定子模块,用于通过所述检测单元,在所述目标文件的执行流中确定分配内存总和;行为确定子模块,用于根据所述分配内存总和,确定目标文件是否存在堆喷行为。
19、在本技术的一个实施例中,所述流量导入子模块具体包括:条件检测单元,用于检测所述目标文件是否执行预定步骤;文件导流单元,用于若所述目标文件执行了预定步骤,则将所述目标文件的执行流导入所述检测单元。
20、在本技术的一个实施例中,所述总和确定子模块具体包括:数据获取单元,用于通过所述检测单元,在所述目标文件的执行流中获取目标数据,所述目标数据包括内存栈帧数据;总和确定单元,用于根据所述内存栈帧数据,确定所述分配内存总和。
21、在本技术的一个实施例中,所述数据获取单元具体用于执行:根据所述内存栈帧数据,确定当前分配内存;对所述当前分配内存累加,得到分配内存总和。
22、在本技术的一个实施例中,所述网络攻击行为检测装置还包括:结果分析模块,用于根据所述目标信息,得到分析结果,所述目标信息包括所述分配内存总和。
23、在本技术的一个实施例中,所述目标数据还包括内存对象地址,所述目标信息还包括句柄值,所述网络攻击行为检测装置还包括:地址确定模块,用于根据所述内存对象地址,确定实际内存数据地址;句柄确定模块,用于根据所述实际内存地址,确定所述句柄值。
24、在本技术的一个实施例中,所述地址确定模块具体包括:内存对象子模块,用于根据所述内存对象地址,获取cmembytes内存对象;第一解析子模块,用于对所述cmembytes内存对象进行解析,得到实际内存数据地址。
25、在本技术的一个实施例中,所述句柄确定模块具体包括:实际内存子模块,用于根据所述实际内存地址,获取实际内存数据;第二解析子模块,用于对所述实际内存数据进行解析,得到句柄值。
26、在本技术的一个实施例中,所述行为确定子模块具体包括:第一判定单元,用于在预定时间内,若所述分配内存总和大于预定堆喷阈值,则判定发生堆喷行为;第二判定单元,用于在预定时间内,若所述分配内存总和不大于预定堆喷阈值,则判定未发生堆喷行为。
27、在本技术的一个实施例中,所述网络攻击行为检测装置还包括:进程暂停模块,用于响应于目标软件的启动,暂停所述目标软件的进程;文件注入模块,用于在所述目标软件的进程中注入动态库程序文件,所述动态库程序文件中包含所述检测单元;初始化模块,用于对所述动态库程序文件进行初始化,以使所述目标软件的进程能够导入所述检测单元。
28、在本技术的一个实施例中,所述动态库程序文件包含预设的配置文件,所述初始化模块具体包括:文件加载子模块,用于加载所述预设的配置文件,所述配置文件中记录有配置信息,所述配置信息包含目标模块名称;模块确定子模块,用于根据所述目标模块名称,在所述目标软件的进程中确定目标模块;检测导入子模块,用于在所述目标模块中导入所述检测单元,以使所述目标模块的进程能够导入所述检测单元。
29、在本技术的一个实施例中,所述配置信息还包括目标偏移位置,所述检测导入子模块具体包括:信息获取单元,用于获取所述目标模块的模块信息,所述模块信息包括所述目标模块的偏移位置;信息匹配单元,用于确定所述模块信息和所述配置信息是否匹配;检测导入单元,用于若所述模块信息和所述配置信息匹配,则在所述目标模块的偏移位置导入所述检测单元。
30、在本技术的一个实施例中,所述检测导入单元具体用于执行:通过挂钩函数,使所述目标软件的执行流跳转至所述检测单元中;在所述检测单元结尾跳转回所述目标模块中执行流的原始位置。
31、根据本技术实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的网络攻击行为检测方法。
32、根据本技术实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的网络攻击行为检测方法。
33、在本技术的一些实施例所提供的技术方案中,通过检测目标文件是否存在堆喷行为,确定其是否有网络攻击行为,对于利用内存破坏漏洞的网络攻击行为,其一般会事先借助控件进行堆喷,以完成内存布局,当检测到目标文件借助控件进行堆喷时,可以认为其准备进行网络攻击,完成网络攻击行为的检测,解决了现有技术的没有可靠有效的防御手段来发现和识别利用了内存破坏漏洞的网络攻击行为的问题。
34、同时,由于堆喷行为发生在正式的网络攻击行为之前,是网络攻击行为的准备步骤,故通过对堆喷行为的识别检测,可以较快地得出目标文件是否存在网络攻击行为,以在网络攻击行为发动前,及时发现、拦截和阻断此网络攻击行为,保护网络设备的安全。
35、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
1.一种网络攻击行为检测方法,其特征在于,所述网络攻击行为检测方法包括:
2.如权利要求1所述的网络攻击行为检测方法,其特征在于,所述通过所述检测单元检测所述目标文件是否存在堆喷行为,具体包括:
3.如权利要求2所述的网络攻击行为检测方法,其特征在于,所述将所述目标文件的执行流导入所述检测单元,具体包括:
4.如权利要求2所述的网络攻击行为检测方法,其特征在于,所述通过所述检测单元,在所述目标文件的执行流中确定分配内存总和,具体包括:
5.如权利要求4所述的网络攻击行为检测方法,其特征在于,所述根据所述内存栈帧数据,确定所述分配内存总和,具体包括:
6.如权利要求2所述的网络攻击行为检测方法,其特征在于,所述根据所述分配内存总和,确定目标文件是否存在堆喷行为,具体包括:
7.如权利要求1所述的网络攻击行为检测方法,其特征在于,在所述通过目标软件打开目标文件之前,所述网络攻击行为检测方法还包括:
8.一种网络攻击行为检测装置,其特征在于,所述网络攻击行为检测装置包括:
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的网络攻击行为检测方法。
10.一种电子设备,其特征在于,包括:
