网络攻击行为的检测方法、装置、电子设备及存储介质与流程

专利2022-05-09  44



1.本申请涉及网络安全技术领域,特别涉及一种网络攻击行为的检测方法、装置、一种存储介质及一种电子设备。


背景技术:

2.webshell是一种以asp、php、jsp或者cgi等网页文件形式存在的命令执行环境,也可以将其称做为一种网页后门。黑客往往通过向主机设备传输webshell文件的方式实现对于主机设备的攻击,进而达到控制网站服务器的目的。
3.相关技术中,利用安全设备基于完整流量检测的方式判断是否存在黑客上传webshell文件,进而检测网络攻击行为。但是上述相关技术从网络流量中还原出完整文件,再对整体文件进行检测,即检测过程中需要扣留网络中文件的全部数据,造成了较高的网络延迟,影响用户体验。
4.因此,如何提高网络攻击行为的检测效率,降低网络攻击行为检测对于网络流量传输延迟的影响是本领域技术人员目前需要解决的技术问题。


技术实现要素:

5.本申请的目的是提供一种网络攻击行为的检测方法、装置、一种电子设备及一种存储介质,能够提高网络攻击行为的检测效率,降低网络攻击行为检测对于网络流量传输延迟的影响。
6.为解决上述技术问题,本申请提供一种网络攻击行为的检测方法,该网络攻击行为的检测方法包括:
7.接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包;
8.判断所述当前数据包是否存在webshell文件上传特征;
9.若是,则确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作;
10.若否,则允许所述当前数据包通过。
11.可选的,判断所述当前数据包是否存在webshell文件上传特征,包括:
12.判断所述当前数据包是否存在代码起始符和/或攻击特征信息;其中,所述代码起始符为编写所述webshell文件的脚本语言起始符,所述攻击特征信息包括预设关键字和/或预设字符串;
13.若是,则判定所述当前数据包存在所述webshell文件上传特征;
14.若否,则判定所述当前数据包不存在所述webshell文件上传特征。
15.可选的,确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作,包括:
16.将存在所述代码起始符的数据包设置为文件起始数据包;
17.对所述文件起始数据包执行网络攻击行为检测操作;
18.判断在所述代码起始符之后所述文件起始数据包中是否存在代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;
19.若是,则执行根据所述排列顺序依次判断所述文件起始数据包的下一数据包是否存在webshell文件上传特征的操作流程;
20.若否,则对所述排列顺序中在所述文件起始数据包之后的数据包执行网络攻击行为检测操作直至检测到存在文件终止数据包,执行根据所述排列顺序依次判断存在所述代码终止符的数据包的下一数据包是否存在webshell文件上传特征的操作流程;其中,所述文件终止数据包为包括所述代码终止符的数据包。
21.可选的,对所述webshell文件对应的数据包执行网络攻击行为检测操作包括:
22.对所述webshell文件对应的数据包执行词法分析操作得到单词序列;
23.对所述单词序列执行语法分析操作得到对应的目标语法单元;其中,目标语法单元包括语句、函数和程序块中任一项或任几项的组合;
24.判断所述目标语法单元与黑名单中的预设语法单元的匹配程度是否大于预设值;
25.若是,则判定检测到基于webshell文件的网络攻击行为。
26.可选的,在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,还包括:
27.判断是否检测到代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;
28.若否,则记录所述单词序列对应的词法分析状态;
29.相应的,对所述webshell文件对应的数据包执行词法分析操作得到单词序列包括:
30.根据上一数据包对应的单词序列的词法分析状态对所述webshell文件对应的数据包执行词法分析操作得到当前数据包的单词序列。
31.可选的,在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,还包括:
32.判断是否检测到代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;
33.若是,则记录所述目标语法单元的语法分析状态;
34.相应的,对所述单词序列执行语法分析操作得到对应的目标语法单元包括:
35.根据上一数据包对应的目标语法单元的语法分析状态对所述webshell文件对应的数据包执行语法分析操作得到当前数据包的目标语法单元。
36.可选的,在对所述webshell文件对应的数据包执行词法分析操作得到单词序列之后,还包括:
37.判断所述单词序列中的单词数量是否大于预设数量;
38.若是,则执行对所述单词序列执行语法分析操作得到对应的目标语法单元的操作;
39.若否,则执行允许所述当前数据包通过的操作。
40.可选的,还包括:
41.判断执行语法分析操作的过程中是否检测到语法错误;
42.若是,则执行允许所述当前数据包通过的操作。
43.可选的,判断所述当前数据包是否存在webshell文件上传特征包括:
44.通过预设方式判断所述当前数据包是否存在webshell文件上传特征;其中,所述预设方式包括正则表达式检索操作或字符串匹配操作。
45.可选的,所述接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包包括:
46.接收所述网络流量,并确定所述网络流量中所述数据包的排列顺序;其中所述排列顺序根据所述数据包的文件分片序号确定;
47.按照所述文件分片序号从小到大的顺序确定当前数据包。
48.可选的,在允许所述当前数据包通过之后,还包括:
49.按照所述文件分片序号从小到大的顺序将所述当前数据包的下一数据包作为新的当前数据包。
50.本申请还提供了一种网络攻击行为的检测装置,该网络攻击行为的检测装置包括:
51.流量接收模块,用于接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包;
52.判断模块,用于判断所述当前数据包是否存在webshell文件上传特征;
53.检测模块,用于当所述当前数据包存在所述webshell文件上传特征时,确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作;
54.流量放行模块,用于当所述当前数据包不存在所述webshell文件上传特征时,允许所述当前数据包通过。
55.本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述网络攻击行为的检测方法执行的步骤。
56.本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述网络攻击行为的检测方法执行的步骤。
57.本申请提供了一种网络攻击行为的检测方法,包括接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包;判断所述当前数据包是否存在webshell文件上传特征;若是,则确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作;若否,则允许所述当前数据包通过。
58.本申请在接收到网络流量后根据网络流量数据包的排列顺序确定当前数据包,判断当前数据包是否存在webshell文件上传特征,如果存在webshell文件上传特征则确定网络流量中webshell文件对应的所有数据包,进而对webshell文件对应的所有数据包执行相应的网络攻击行为检测操作,如果网络流量数据包不存在webshell文件上传特征,则可以允许当前数据包通过。由于本申请所提供的网络攻击行为检测方法以单个数据包为粒度进行检测,因此能够使不具有webshell文件上传特征的数据包快速通过。相对于相关技术中将网络流量中的所有的数据包扣留进行网络攻击行为检测的方案,本申请能够立即放行正常流量,不造成额外的网络延迟,可见本申请能够提高网络攻击行为的检测效率,降低网络
攻击行为检测对于网络流量传输延迟的影响。本申请同时还提供了一种网络攻击行为的检测装置、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
59.为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
60.图1为本申请实施例所提供的一种数据传输系统的结构示意图;
61.图2为本申请实施例所提供的一种网络攻击行为的检测方法的流程图;
62.图3为本申请实施例所提供的一种数据包检测方法的流程图;
63.图4为本申请实施例所提供的一种网络攻击行为检测流程图;
64.图5为本申请实施例所提供的一种网络攻击行为的检测装置的结构示意图。
具体实施方式
65.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
66.为了便于理解本申请的网络攻击行为的检测方法,下面对于本申请的网络攻击行为的检测方法所适用的应用场景进行介绍。参见图1,图1为本申请实施例所提供的一种数据传输系统的结构示意图。
67.如图1所示,本申请实施例提供的数据传输系统包括:公网中的主机设备a、防火墙设备b和内网中的服务器c,主机设备a向服务器c传输的网络流量先经过防火墙设备b,防火墙设备b对网络流量中的数据包进行检测,判断是否存在webshell文件上传行为,若检测到webshell文件上传行为防火墙设备可以拦截该网络流量并生成检测到网络攻击行为的报警信息,若未检测到webshell文件则放行相应的数据包,以便将数据包转发至服务器c。
68.下面请参见图2,图2为本申请实施例所提供的一种网络攻击行为的检测方法的流程图。
69.具体步骤可以包括:
70.s101:接收网络流量并根据网络流量的数据包排列顺序确定当前数据包;
71.其中,本实施例可以应用于防火墙、交换机、等保一体机等网络安全设备,以便检测黑客对于主机设备的网络攻击行为。在本实施例中其他设备向主机设备传输的网络流量均可以先经过网络安全设备的检测操作,其中网络安全设备未检测出网络攻击行为的数据包可以允许传输至主机设备,网络设备可以对检测出网络攻击行为的数据包进行拦截。具体的,其他设备通过网络流量向主机设备传输目标文件,网络流量中包括多条链接,每条链接中包括多个数据包,所有的数据包按照顺序排列可以得到传输的目标文件。当然,在本步骤之前还可以存在对网络流量执行文件解码操作,文件解码操作可以对网络协议、http协议以及对一些被编码过的数据进行解码,还原出网络流量原始内容的过程。
72.本步骤中接收到的数据包中可以写有该数据包在目标文件中的文件分片序号,也
可以写有该数据包在所有数据包中的排列序号,进而在接收到网络流量之后确定网络流量中数据包的排列顺序。本实施例可以所有未被允许通过的数据包中排列顺序最靠前的数据包作为当前数据包,当前数据包的数量可以为1,以便实现以数据包为粒度的检测操作。
73.s102:判断当前数据包是否存在webshell文件上传特征;若是,则进入s103;若否,则进入s104;
74.其中,若向主机设备传输网络流量的设备按照目标文件的结构顺序依次传输对应的数据包,s101中数据包的接收顺序就是数据包的排列顺序,在此情况下可以每接收到一个数据包即执行依次s102的判断操作。可以理解的是,本实施例也可以在所有的数据包都接收完毕后,根据数据包的排列顺序依次进行判断。
75.本步骤中所提到的webshell文件上传特征为网络流量中存在webshell文件上传行为的特征,具体的webshell文件上传特征可以包括webshell文件的脚本语言起始符,或webshell文件中出现频次较高的关键词及字符串。若数据包中存在webshell文件上传特征,则说明该数据包对应的数据内容可能为webshell文件因此需要执行s103的网络攻击行为检测操作;若数据包中不存在webshell文件上传特征,则说明该数据包对应的数据内容不为webshell文件可以允许该数据包通过,即转发至对应的主机设备。
76.具体的,本步骤可以根据所述排列顺序依次通过正则表达式检索操作判断所述当前数据包是否存在webshell文件上传特征,本步骤还可以根据所述排列顺序依次通过字符串匹配操作判断所述当前数据包是否存在webshell文件上传特征。
77.s103:确定网络流量中webshell文件对应的数据包,并对webshell文件对应的数据包执行网络攻击行为检测操作;
78.其中,由于本实施例按照数据包的排列顺序对数据包进行依次判断,因此webshell文件对应的数据包具有连续性,即若检测到第3个数据包为webshell文件对应的数据包,且webshell文件通常需要使用至少三个数据包传输,那么第4个、第5个数据包也为webshell文件对应的数据包。本步骤中确定webshell文件对应的数据包的操作实际上相当于确定webshell文件在网络流量中的位置信息,但是由于s102中仅仅根据webshell文件上传特征作为检测webshell文件的依据,因此本步骤中所确定数据包为的webshell文件对应的数据包,通过对webshell文件对应的数据包执行网络攻击行为检测操作可以判定是否存在webshell文件上传行为。
79.s104:允许当前数据包通过。
80.本实施例在接收到网络流量后根据网络流量数据包的排列顺序确定当前数据包,判断当前数据包是否存在webshell文件上传特征,如果存在webshell文件上传特征则确定网络流量中webshell文件对应的所有数据包,进而对webshell文件对应的所有数据包执行相应的网络攻击行为检测操作,如果网络流量数据包不存在webshell文件上传特征,则可以允许当前数据包通过。由于本实施例所提供的网络攻击行为检测方法以单个数据包为粒度进行检测,因此能够使不具有webshell文件上传特征的数据包快速通过。相对于相关技术中将网络流量中的所有的数据包扣留进行网络攻击行为检测的方案,本实施例能够立即放行正常流量,不造成额外的网络延迟,可见本实施例能够提高网络攻击行为的检测效率,降低网络攻击行为检测对于网络流量传输延迟的影响。
81.请参见图3,图3为本申请实施例所提供的一种数据包检测方法的流程图,本实施
例是对图2对应实施例中s102的进一步介绍,具体描述了如何判断所述当前数据包是否存在webshell文件上传特征,可以将本实施例与图2对应的实施例相结合得到进一步的实施方式,本实施例可以包括以下步骤:
82.s201:根据排列顺序依次判断当前数据包是否存在代码起始符和/或攻击特征信息;若是,则进入s202;若否,则进入s203;
83.其中,所述代码起始符为编写所述webshell文件的脚本语言起始符,所述攻击特征信息包括预设关键字和/或预设字符串。在webshell文件中通常使用特定的起始符(字符串)来表示后面的内容是特定语言编写的可执行的代码。比如<?php,<%等符号。
84.s202:判定当前数据包存在webshell文件上传特征;
85.s203:判定当前数据包不存在webshell文件上传特征。
86.进一步的,本实施例还可以将存在所述代码起始符的当前数据包设置为文件起始数据包,并对所述文件起始数据包执行网络攻击行为检测操作。可以理解的是,若在当前数据包内代码起始符之后还存在代码终止符,则说明当前数据包对应的数据为webshell文件对应的全部内容,若不存在代码终止符则说明下一数据包还包括有webshell文件对应的内容,可以继续对下一数据包执行网络攻击行为检测操作直至检测到代码终止符。因此若将以上描述与图2对应的实施例相结合可以得到以下实施方式:
87.步骤1:接收网络流量并确定所述网络流量中数据包的排列顺序;
88.步骤2:根据所述排列顺序确定当前数据包;
89.步骤3:判断当前数据包是否存在代码起始符和/或攻击特征信息;若是,则进入步骤4;若否,则进入步骤7。
90.步骤4:判断在所述代码起始符之后当前数据包中是否存在代码终止符;若是,则进入步骤5;若否,则进入步骤6;
91.步骤5:将下一数据包作为当前数据包并进入步骤3;
92.步骤6:对所述排列顺序中在当前数据包之后的数据包执行网络攻击行为检测操作直至检测到存在文件终止数据包,将文件终止数据包的下一数据包作为当前数据包并进入步骤3;
93.步骤7:将当前数据包转发至主机设备。
94.上述实施方式通过对数据包逐个进行基于代码起始符和/或攻击特征信息的判断操作,在检测到存在代码起始符和/或攻击特征信息的数据包后对连续的数据包进行网络攻击行为检测操作。上述实施方式还通过代码起始符和代码终止符确定webshell文件对应数据包所在的位置,能够减少重复执行判断当前数据包是否存在代码起始符和/或攻击特征信息的次数,提高数据包检测的效率。
95.请参见图4,图4为本申请实施例所提供的一种网络攻击行为检测流程图,本实施例是对图2对应实施例中对数据包执行网络攻击行为检测操作的进一步介绍,可以将本实施例与图1对应的实施例相结合得到进一步的实施方式,本实施例可以包括以下步骤:
96.s301:对webshell文件对应的数据包执行词法分析操作得到单词序列;
97.其中,词法分析是计算机科学中将字符序列转换为单词(token)序列的过程。本实施例可以通过将webshell文件对应的数据包输入至词法分析器中得到对应的单词序列。词法分析器(lexical analyzer,简称lexer),也叫扫描器(scanner),是一种用于进行词法分
析的程序或者函数。词法分析器一般以函数的形式存在,供语法分析器调用。完成词法分析任务的程序称为词法分析程序或词法分析器或扫描器。
98.s302:对单词序列执行语法分析操作得到对应的目标语法单元;
99.其中,目标语法单元包括语句、函数和程序块中任一项或任几项的组合。语法分析操作可以在词法分析的基础上将单词序列组合成各类语法短语,如“程序、“语句”、“表达式”等等,语法分析程序可以判断源程序在结构上是否正确,源程序的结构由上下文无关文法描述。
100.作为一种可行的实施方式,若在在执行语法分析操作的过程中检测到语法错误,可以执行允许所述当前数据包通过的操作。
101.s303:判断目标语法单元与黑名单中的预设语法单元的匹配程度是否大于预设值;若是,则进入s304;若否,则进入s305;
102.其中,本实施例可以预先设置包括多个预设语法单元的的黑名单,可以根据目标语法单元与黑名单中的预设语法单元的匹配程度判断是否检测到基于所述webshell文件的网络攻击行为。具体的,目标语法单元与黑名单中的预设语法单元的匹配程度越高,该数据包越有可能为webshell文件对应的数据包。当然,本步骤还可以基于预设判断条件来判断该数据包是否为webshell文件对应的数据包,该预设判断条件可以由安全专家给出。
103.s304:判定检测到基于webshell文件的网络攻击行为。
104.s305:判定未检测到基于webshell文件的网络攻击行为。
105.进一步的,在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,还可以判断是否检测到代码终止符;若否,则记录所述单词序列对应的词法分析状态,以便在执行词法分析操作时根据上一数据包对应的单词序列的词法分析状态对所述webshell文件对应的数据包执行词法分析操作得到当前数据包的单词序列。其中,所述代码终止符为编写所述webshell文件的脚本语言终止符。可以存在一个单词的前半部分在第一个数据包的末尾,该单词的后半部分在第二个数据包的开头,此时通过记录词法分析状态可以对该单词进行准确转换。词法分析状态指词法分析的中间过程所需要记录的数据。当数据分为多段时,可以通过记录词法分析状态,实现完整的词法解析,而不需缓存之前数据,也不需拼接拷贝。词法分析状态可以通过一个整数来表示。
106.进一步的,在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,还可以判断是否检测到代码终止符;若是,则记录所述目标语法单元的语法分析状态,以便在执行语法分析操作时根据上一数据包对应的目标语法单元的语法分析状态对所述webshell文件对应的数据包执行语法分析操作得到当前数据包的目标语法单元。其中,所述代码终止符为编写所述webshell文件的脚本语言终止符。可以存在第一个数据包末尾处的单词与第二个数据包开头处的单词构成语句或函数,因此可以通过记录语法分析状态可以提高语法分析结果的准确率。语法分析状态为语法分析中间过程所需要记录的数据。当数据分为多段时,可以通过记录语法分析状态,实现完整的语法解析,而不需缓存之前数据,也不需拼接拷贝。语法分析状态可以通过一个栈来表示。
107.作为一种可行的实施方式,在s301对所述webshell文件对应的数据包执行词法分析操作得到单词序列之后,还可以判断所述单词序列中的单词数量是否大于预设数量;若是,则执行对所述单词序列执行语法分析操作得到对应的目标语法单元的操作;若否,则执
行允许所述当前数据包通过的操作。当单词序列中的单词数量过少时,说明该数据包不为webshell文件对应的数据包,可以执行允许所述当前数据包通过的操作。
108.下面通过在实际应用中的一种webshell文件上传行为检测系统来说明上述实施例描述的流程。该webshell文件上传行为检测系统可以包括以下模块:快速过滤模块、代码定位模块、词法分析模块、语法分析模块、条件判断模块、连接跟踪及状态记录模块、语法管理及参数配置模块。
109.快速过滤模块可以通过正则表达式或字符串匹配,判断是否存在脚本语言起始符(<?php,<%等)或者必须的攻击特征(比如php的eval等,攻击特征由安全专家指定)。对于不含起始符或者不含特征的数据包快速放行,不再进行后续流程。
110.代码定位模块可以针对特定的脚本语言,寻找起始符,定位出webshell代码可能出现的位置。比如,对于php,可以寻找<?php,<?=等等起始符,将起始符之后的部分作为webshell脚本语言的可能出现位置。
111.词法分析模块可以根据代码定位模块给出的脚本语言位置,进行特定语言的词法分析。把数据流解析为token流(即单词序列)。当遇到数据包结尾时若词法分析仍在进行,词法分析需要记录下中间状态(即词法分析状态),以便下一个数据包基于该中间状态继续进行词法解析。
112.语法分析模块可以根据词法分析模块提供的token流,进行特定语言的语法解析,把token流规约成语句、函数、程序块等语法单元。若语法分析遇到了语法错误,立刻停止语法分析,把数据包标记为不合当前语法。当遇到对应语言的终止符(比如?>,%>等)时若语法分析仍在进行,需要记录下语法分析的中间状态(即语法分析状态),以便遇到下一个起始符所对应的代码片段时,能继续语法解析。具体的,当token数量小于预设值时可以直接判断为不是webshell上传。
113.条件判断模块在语法分析模块没有发现语法错误时,可以根据词法分析模块给出的token序列,以及语法分析得到的语句、函数、程序块等语法单元的情况,基于判断条件来判断网络流量中是否存在webshell脚本上传行为。判断条件由安全专家给出。若语法分析模块出现了语法错误,则直接判断为不是webshell上传,不再考虑其他判断条件。
114.连接跟踪及状态记录模块用于管理每条连接所需要记录的信息。该信息可以包括以下内容:
115.a、每种脚本语言的词法分析的中间状态。用于继续对后续数据包进行词法分析。
116.b、每种脚本语言的语法分析的中间状态。用于继续对后续代码片段进行词法分析。(代码片段由脚本语言起始符等限定)
117.c、当前连接是否已经确定为webshell攻击。
118.d、每种脚本语言当前连接是否已经发现包含语法错误。
119.语法管理及参数配置模块可以根据网络流量中的脚本语言选择与之相应的检测方法。由于webshell可以用任何一种脚本语言写成,所以本实施例有多种可能的脚本语言需要尝试。每种脚本语言都有独立的词法、语法分析引擎,需要单独配置开关,由此模块管理。语法管理及参数配置模块还可以配置的判黑条件(比如token数量等)。
120.上述实施例利用词法引擎和语法引擎对数据包进行检测,利用连接跟踪来记录中间状态,避免了拷贝、拼接数据包,节约了内存资源。本实施例对于每个数据包立刻决定拦
截或放行,不需要等待后续数据包,能够降低等待延迟。本实施例以语法分析得到的语法单元作为主要判断特征,不同于传统的字符串或者正则表达式的判断,攻击者很难通过变形来绕过检测,提高了检测准确率。本实施例还通过多语言语法分析技术检测webshell文件上传行为,检测准确程度明显高于基于规则的传统方案。同时,本实施例具有良好的实时性,每个数据包都能直接的得到检测结果而不依赖于完整的文件。对于正常流量能够做到立刻放行,不造成额外的网络延迟,有较好的用户体验。
121.请参见图5,图5为本申请实施例所提供的一种网络攻击行为的检测装置的结构示意图;
122.该装置可以包括:
123.流量接收模块100,用于接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包;
124.判断模块200,用于判断所述当前数据包是否存在webshell文件上传特征;
125.检测模块300,用于当所述当前数据包存在所述webshell文件上传特征时,确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作;
126.流量放行模块400,用于当所述当前数据包不存在所述webshell文件上传特征时,允许所述当前数据包通过。
127.本实施例在接收到网络流量后根据网络流量数据包的排列顺序确定当前数据包,判断当前数据包是否存在webshell文件上传特征,如果存在webshell文件上传特征则确定网络流量中webshell文件对应的所有数据包,进而对webshell文件对应的所有数据包执行相应的网络攻击行为检测操作,如果网络流量数据包不存在webshell文件上传特征,则可以允许当前数据包通过。由于本实施例所提供的网络攻击行为检测方法以单个数据包为粒度进行检测,因此能够使不具有webshell文件上传特征的数据包快速通过。相对于相关技术中将网络流量中的所有的数据包扣留进行网络攻击行为检测的方案,本实施例能够立即放行正常流量,不造成额外的网络延迟,可见本实施例能够提高网络攻击行为的检测效率,降低网络攻击行为检测对于网络流量传输延迟的影响。
128.进一步的,判断模块200用于根据所述排列顺序依次判断所述当前数据包是否存在代码起始符和/或攻击特征信息;其中,所述代码起始符为编写所述webshell文件的脚本语言起始符,所述攻击特征信息包括预设关键字和/或预设字符串;若是,则判定所述当前数据包存在所述webshell文件上传特征;若否,则判定所述当前数据包不存在所述webshell文件上传特征。
129.进一步的,检测模块300包括:
130.起始数据包设置单元,用于将存在所述代码起始符的数据包设置为文件起始数据包;
131.网络攻击行为检测单元,用于对所述文件起始数据包执行网络攻击行为检测操作;
132.终止符判断单元,用于判断在所述代码起始符之后所述文件起始数据包中是否存在代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;若是,则对所述文件起始数据包的下一数据包启动流量接收模块100对应的工作流程;若否,则对
所述排列顺序中在所述文件起始数据包之后的数据包执行网络攻击行为检测操作直至检测到存在文件终止数据包,对存在所述代码终止符的数据包的下一数据包启动流量接收模块100对应的工作流程;其中,所述文件终止数据包为包括所述代码终止符的数据包。
133.进一步的,检测模块300包括:
134.词法分析单元,用于对所述webshell文件对应的数据包执行词法分析操作得到单词序列;
135.语法分析单元,用于对所述单词序列执行语法分析操作得到对应的目标语法单元;其中,目标语法单元包括语句、函数和程序块中任一项或任几项的组合;
136.匹配判断单元,用于判断所述目标语法单元与黑名单中的预设语法单元的匹配程度是否大于预设值;若是,则判定检测到基于所述webshell文件的网络攻击行为。
137.进一步的,还包括:
138.第一终止符检测单元,用于在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,判断是否检测到代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;若否,则记录所述单词序列对应的词法分析状态;
139.相应的,词法分析单元用于根据上一数据包对应的单词序列的词法分析状态对所述webshell文件对应的数据包执行词法分析操作得到当前数据包的单词序列。
140.进一步的,还包括:
141.第二终止符检测单元,用于在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,判断是否检测到代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;若是,则记录所述目标语法单元的语法分析状态;
142.相应的,语法分析单元用于根据上一数据包对应的目标语法单元的语法分析状态对所述webshell文件对应的数据包执行语法分析操作得到当前数据包的目标语法单元。
143.进一步的,还包括:
144.数量判断单元,用于在对所述webshell文件对应的数据包执行词法分析操作得到单词序列之后,判断所述单词序列中的单词数量是否大于预设数量;若是,则启动语法分析单元对应的工作;若否,则启动流量放行模块400对应的工作流程。
145.进一步的,还包括:
146.语法判断单元,用于判断执行语法分析操作的过程中是否检测到语法错误;若是,则启动流量放行模块400对应的工作流程。
147.进一步的,流量接收模块100用于根据所述排列顺序依次通过预设方式判断当前数据包是否存在webshell文件上传特征;其中,所述预设方式包括正则表达式检索操作或字符串匹配操作。
148.进一步的,流量接收模块100包括:
149.排序单元,用于接收所述网络流量,并确定所述网络流量中所述数据包的排列顺序;其中所述排列顺序根据所述数据包的文件分片序号确定;
150.当前数据包确定单元,用于按照所述文件分片序号从小到大的顺序确定当前数据包。
151.进一步的,还包括:
152.当前数据包更新单元,用于按照所述文件分片序号从小到大的顺序将所述当前数
据包的下一数据包作为新的当前数据包。
153.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
154.本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
155.本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
156.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
157.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

技术特征:
1.一种网络攻击行为的检测方法,其特征在于,包括:接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包;判断所述当前数据包是否存在webshell文件上传特征;若是,则确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作;若否,则允许所述当前数据包通过。2.根据权利要求1所述检测方法,其特征在于,判断所述当前数据包是否存在webshell文件上传特征,包括:判断所述当前数据包是否存在代码起始符和/或攻击特征信息;其中,所述代码起始符为编写所述webshell文件的脚本语言起始符,所述攻击特征信息包括预设关键字和/或预设字符串;若是,则判定所述当前数据包存在所述webshell文件上传特征;若否,则判定所述当前数据包不存在所述webshell文件上传特征。3.根据权利要求2所述检测方法,其特征在于,确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作,包括:将存在所述代码起始符的数据包设置为文件起始数据包;对所述文件起始数据包执行网络攻击行为检测操作;判断在所述代码起始符之后所述文件起始数据包中是否存在代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;若是,则执行根据所述排列顺序依次判断所述文件起始数据包的下一数据包是否存在webshell文件上传特征的操作流程;若否,则对所述排列顺序中在所述文件起始数据包之后的数据包执行网络攻击行为检测操作直至检测到存在文件终止数据包,执行根据所述排列顺序依次判断存在所述代码终止符的数据包的下一数据包是否存在webshell文件上传特征的操作流程;其中,所述文件终止数据包为包括所述代码终止符的数据包。4.根据权利要求1所述检测方法,其特征在于,对所述webshell文件对应的数据包执行网络攻击行为检测操作包括:对所述webshell文件对应的数据包执行词法分析操作得到单词序列;对所述单词序列执行语法分析操作得到对应的目标语法单元;其中,目标语法单元包括语句、函数和程序块中任一项或任几项的组合;判断所述目标语法单元与黑名单中的预设语法单元的匹配程度是否大于预设值;若是,则判定检测到基于webshell文件的网络攻击行为。5.根据权利要求4所述检测方法,其特征在于,在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,还包括:判断是否检测到代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;若否,则记录所述单词序列对应的词法分析状态;相应的,对所述webshell文件对应的数据包执行词法分析操作得到单词序列包括:根据上一数据包对应的单词序列的词法分析状态对所述webshell文件对应的数据包
执行词法分析操作得到当前数据包的单词序列。6.根据权利要求4所述检测方法,其特征在于,在对所述webshell文件对应的数据包执行网络攻击行为检测操作的过程中,还包括:判断是否检测到代码终止符;其中,所述代码终止符为编写所述webshell文件的脚本语言终止符;若是,则记录所述目标语法单元的语法分析状态;相应的,对所述单词序列执行语法分析操作得到对应的目标语法单元包括:根据上一数据包对应的目标语法单元的语法分析状态对所述webshell文件对应的数据包执行语法分析操作得到当前数据包的目标语法单元。7.根据权利要求4所述检测方法,其特征在于,在对所述webshell文件对应的数据包执行词法分析操作得到单词序列之后,还包括:判断所述单词序列中的单词数量是否大于预设数量;若是,则执行对所述单词序列执行语法分析操作得到对应的目标语法单元的操作;若否,则执行允许所述当前数据包通过的操作。8.根据权利要求4所述检测方法,其特征在于,还包括:判断执行语法分析操作的过程中是否检测到语法错误;若是,则执行允许所述当前数据包通过的操作。9.根据权利要求1所述检测方法,其特征在于,判断所述当前数据包是否存在webshell文件上传特征包括:通过预设方式判断所述当前数据包是否存在webshell文件上传特征;其中,所述预设方式包括正则表达式检索操作或字符串匹配操作。10.根据权利要求1至9任一项所述检测方法,其特征在于,所述接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包包括:接收所述网络流量,并确定所述网络流量中所述数据包的排列顺序;其中所述排列顺序根据所述数据包的文件分片序号确定;按照所述文件分片序号从小到大的顺序确定当前数据包。11.根据权利要求10所述检测方法,其特征在于,在允许所述当前数据包通过之后,还包括:按照所述文件分片序号从小到大的顺序将所述当前数据包的下一数据包作为新的当前数据包。12.一种网络攻击行为的检测装置,其特征在于,包括:流量接收模块,用于接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包;判断模块,用于判断所述当前数据包是否存在webshell文件上传特征;检测模块,用于当所述当前数据包存在所述webshell文件上传特征时,确定所述网络流量中webshell文件对应的数据包,并对所述webshell文件对应的数据包执行网络攻击行为检测操作;流量放行模块,用于当所述当前数据包不存在所述webshell文件上传特征时,允许所述当前数据包通过。
13.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至11任一项所述网络攻击行为的检测方法的步骤。14.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至11任一项所述网络攻击行为的检测方法的步骤。
技术总结
本申请公开了一种网络攻击行为的检测方法,所述检测方法包括接收网络流量并根据所述网络流量的数据包排列顺序确定当前数据包;判断所述当前数据包是否存在Webshell文件上传特征;若是,则确定所述网络流量中Webshell文件对应的数据包,并对所述Webshell文件对应的数据包执行网络攻击行为检测操作;若否,则允许所述当前数据包通过。本方法能够提高网络攻击行为的检测效率,降低网络攻击行为检测对于网络流量传输延迟的影响。本申请还公开了一种网络攻击行为的检测装置、一种存储介质及一种电子设备,具有以上有益效果。具有以上有益效果。具有以上有益效果。


技术研发人员:罗得安 甄昊天 杨荣海 范炜轩
受保护的技术使用者:深信服科技股份有限公司
技术研发日:2020.01.16
技术公布日:2021/7/15

转载请注明原文地址:https://doc.8miu.com/read-650213.html

最新回复(0)