本申请涉及网络安全技术领域,具体而言,涉及一种检测慢速攻击的方法、装置、存储介质和电子设备。
背景技术:
随着网络的高速发展,网络安全问题也日渐增多。分布式拒绝服务(distributeddenialofservice,ddos)攻击是目前最强大、最难防御的攻击之一,其主要目的是让指定目标无法提供正常服务。以往的ddos攻击主要以单一报文的大流量攻击为主,近几年来已演变为慢速攻击,该慢速攻击更具有隐蔽性,是对正常网络协议的变形,完全符合协议要求。因此,对慢速攻击的防护更加困难。
现有的检测慢速攻击的方法是建立行为特征库,然后将提取的报文的特征和行为特征库进行匹配,在匹配到的情况下,则可确定该报文为慢速攻击报文,并丢弃该报文。
在实现本发明的过程中,发明人发现现有技术中存在如下问题:现有的检测慢速攻击的方法存在着不够灵活的问题。例如,当报文的特征发生变化时无法检测出特征变化的慢速攻击报文。
技术实现要素:
本申请实施例的目的在于提供一种检测慢速攻击的方法、装置、存储介质和电子设备,以解决现有的检测慢速攻击的方法存在着不够灵活的问题。
第一方面,本申请实施例提供了一种检测慢速攻击的方法,该方法包括:接收待检测报文;在确定用于向目标服务器发送待检测报文的目标连接已经建立的情况下,获取自身记录的所有客户端和目标服务器的连接的总连接数;在总连接数大于等于连接阈值的情况下,获取目标连接的建立时长;在建立时长大于等于预设建立时长的情况下,检测第一预设时段内与目标连接对应的报文的总大小;在总大小小于等于预设大小的情况下,确定待检测报文为慢速攻击报文。
因此,本申请实施例通过接收待检测报文,随后在确定用于向目标服务器发送待检测报文的目标连接已经建立的情况下,获取安全检测设备记录的所有客户端和目标服务器的连接的总连接数,随后在总连接数大于等于连接阈值的情况下,获取目标连接的建立时长,随后在建立时长大于等于预设建立时长的情况下,检测第一预设时段内与目标连接对应的报文的总大小,随后在总大小小于等于预设大小的情况下,确定待检测报文为慢速攻击报文,从而解决了现有技术中存在着的不够灵活的问题,即便是报文的特征发生了变化依然可以检测出慢速攻击报文。
在一个可能的实施例中,在接收待检测报文之前,方法还包括:对第二预设时段内的历史连接数进行自学习,以获得目标时段对应的连接阈值。
因此,本申请实施例可通过自学习的方式生成动态的连接阈值,从而更够更精准的保护目标服务器。
在一个可能的实施例中,第二预设时段包括多个子时段,每个子时段均包括第一时段和第二时段,每个子时段内第一时段和目标时段为不同周期内的同一时段,每个子时段内的第二时段均早于对应的第一时段;
其中,对第二预设时段内的历史连接数进行自学习,以获得目标时段对应的连接阈值,包括:获取第一子时段内第一时段的第一平均连接数,其中,第一平均连接数是利用第一子时段内第一时段的历史连接数获得的;在第一平均连接数小于参考连接数的第一预设倍数的情况下,将第一平均连接数划分到初始集合内,或者在第一平均连接数大于等于参考连接数的第一预设倍数的情况下,将参考连接数划分到初始集合内;获取第二子时段内第一时段的第二平均连接数,其中,第二子时段为多个子时段中除第一子时段外的任意一个子时段,第二平均连接数是利用第二子时段内第一时段的历史连接数获得的;在第二平均连接数小于当前集合内所有连接数的第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,或者在第二平均连接数大于等于第三平均连接数的第二预设倍数且第二子时段内第二时段的第四平均连接数大于等于第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,第四平均连接数是利用第二子时段内第二时段的历史连接数获得的;计算最终集合内所有连接数的第五平均连接数,并将第五平均连接数作为连接阈值。
在一个可能的实施例中,在确定用于向目标服务器发送待检测报文的目标连接已经建立的情况下,获取自身记录的所有客户端和目标服务器的连接的总连接数,包括:在确定目标连接已经建立且目标连接的连接类型不是长连接的情况下,获取总连接数。
因此,本申请实施例能够通过上述方案,避免长连接被阻断的情况。
第二方面,本申请实施例提供了一种检测慢速攻击的装置,该装置包括:接收模块,用于接收待检测报文;第一获取模块,用于在确定用于向目标服务器发送待检测报文的目标连接已经建立的情况下,获取自身记录的所有客户端和目标服务器的连接的总连接数;第二获取模块,用于在总连接数大于等于连接阈值的情况下,获取目标连接的建立时长;检测模块,用于在建立时长大于等于预设建立时长的情况下,检测第一预设时段内与目标连接对应的报文的总大小;确定模块,用于在总大小小于等于预设大小的情况下,确定待检测报文为慢速攻击报文。
在一个可能的实施例中,装置还包括:自学习模块,用于对第二预设时段内的历史连接数进行自学习,以获得目标时段对应的连接阈值。
在一个可能的实施例中,第二预设时段包括多个子时段,每个子时段均包括第一时段和第二时段,每个子时段内第一时段和目标时段为不同周期内的同一时段,每个子时段内的第二时段均早于对应的第一时段;
其中,自学习模块,具体用于:获取第一子时段内第一时段的第一平均连接数,其中,第一平均连接数是利用第一子时段内第一时段的历史连接数获得的;在第一平均连接数小于参考连接数的第一预设倍数的情况下,将第一平均连接数划分到初始集合内,或者在第一平均连接数大于等于参考连接数的第一预设倍数的情况下,将参考连接数划分到初始集合内;获取第二子时段内第一时段的第二平均连接数,其中,第二子时段为多个子时段中除第一子时段外的任意一个子时段,第二平均连接数是利用第二子时段内第一时段的历史连接数获得的;在第二平均连接数小于当前集合内所有连接数的第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,或者在第二平均连接数大于等于第三平均连接数的第二预设倍数且第二子时段内第二时段的第四平均连接数大于等于第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,第四平均连接数是利用第二子时段内第二时段的历史连接数获得的;计算最终集合内所有连接数的第五平均连接数,并将第五平均连接数作为连接阈值。
在一个可能的实施例中,第一获取模块,具体用于:在确定目标连接已经建立且目标连接的连接类型不是长连接的情况下,获取总连接数。
第三方面,本申请实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
第四方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种应用场景的示意图;
图2示出了本申请实施例提供的一种检测慢速攻击的方法的流程图;
图3示出了本申请实施例提供的一种检测慢速攻击的方法的具体流程图;
图4示出了本申请实施例提供的一种检测慢速攻击的装置的结构框图;
图5示出了本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
现有的检测慢速攻击的方法主要包括以下两种方法:一种是建立行为特征库,然后将提取的报文的特征和行为特征库进行匹配,在匹配到的情况下,则可确定该报文为慢速攻击报文,并丢弃该报文;另一种是定时获取服务器的空连接数,当满足阈值时丢弃报文。
但是,对于第一种方法来说,其存在着不够灵活的问题;对于第二种方法来说,其存在着可能会将需要保持长连接的会话进行阻断问题。
基于此,本申请实施例巧妙地提出了一种检测慢速攻击的方案,通过接收待检测报文,随后在确定用于向目标服务器发送待检测报文的目标连接已经建立的情况下,获取自身记录的所有客户端和目标服务器的连接的总连接数,随后在总连接数大于等于连接阈值的情况下,获取目标连接的建立时长,随后在建立时长大于等于预设建立时长的情况下,检测第一预设时段内与目标连接对应的报文的总大小,随后在总大小小于等于预设大小的情况下,确定待检测报文为慢速攻击报文,从而解决了现有技术中存在着的不够灵活的问题,即便是报文的特征发生了变化依然可以检测出慢速攻击报文。
请参见图1,图1示出了本申请实施例提供的一种应用场景的示意图。如图1所示,该应用场景包括:客户端、目标服务器和安全检测设备。其中,安全检测设备可设置在客户端和目标服务器之间。
应理解,客户端的具体类型可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,客户端可以为手机,也可以为笔记本,也可以为台式计算机等。
还应理解,目标服务器的具体类型也可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,目标服务器可以为单个服务器,也可以为分布式集群等。
还应理解,安全检测设备的具体类型也可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,安全检测设备可以为防火墙等。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,在安全检测设备接收到客户端发送的待检测报文的情况下,安全检测设备可确定该待检测报文的目的地址是否是被保护的目标服务器。随后,安全检测设备可在确定该待检测报文的目的地址为目标服务器的情况下,安全检测设备可将待检测报文的五元组和连接列表进行匹配。其中,连接列表记录已经建立的连接的首报文的五元组信息。随后,安全检测设备在从连接列表中匹配到连接表项的情况下,可确定目标连接已经建立或者已经存在。其中,目标连接可用于向目标服务器发送待检测报文。
随后,安全检测设备可查询自身存储的连接列表,以确定自身记录的所有客户端和目标服务器的连接的总连接数。随后,安全检测设备可比较总连接数和连接阈值的大小。随后,安全检测设备在确定总连接数大于等于连接阈值的情况下,获取目标连接的建立时长。随后,安全检测设备可比较目标连接的建立时长和预设建立时长的大小。随后,安全检测设备在确定建立时长大于等于预设建立时长的情况下,检测第一预设时段内与目标连接对应的报文的总大小。随后,安全检测设备可比较总大小和预设大小的大小。最后,安全检测设备在确定总大小小于等于预设大小的情况下,确定待检测报文为慢速攻击报文。
需要说明的是,本申请实施例提供的检测慢速攻击的方案还可以进一步拓展到其他合适的场景中,而不限于图1所示的应用场景。
例如,虽然图1示出了1个服务器,但本领域的技术人员应当理解,在实际应用过程中,该应用场景可包括更多的服务器。
如图2所示,图2示出了本申请实施例提供的一种检测慢速攻击的方法的流程图。如图2所示的方法包括:
步骤s211,安全检测设备接收待检测报文。
步骤s212,安全检测设备判断用于向目标服务器发送待检测报文的目标连接是否已经建立。
应理解,目标服务器可以为被保护的服务器,也可以为指定的服务器。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,安全检测设备可提取待检测报文的五元组信息。其中,五元组信息包括目的地址。随后,安全检测设备在确定该目的地址为被保护的目标服务器的地址的情况下,可继续将待检测报文和连接列表进行匹配。
若安全检测设备从连接列表中匹配出对应的连接表项,则安全检测设备可确定目标连接已经建立好,并可执行步骤s213;若安全检测设备没有从连接列表中匹配出对应的连接表项,则安全检测设备可确定目标连接未建立,并执行步骤s223。
步骤s213,安全检测设备判断目标连接的连接类型是否为长连接。
应理解,连接类型可以包括长连接和短连接。其中,长连接是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
还应理解,安全检测设备判断目标连接的连接类型是否为长连接的具体过程可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,在一次完整的信息交互(发送信息和接收响应)之后,立即断开连接的情况则可以判定为短连接。
再例如,由于长连接的一个明显特征是会有心跳消息(也有没有心跳的情况),且一般心跳间隔都在30s或者1min左右,故安全检测设备可通过监听进程wireshark抓包的方式来查看是否有规律的心跳信息交互,从而确定连接是否为长连接。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,安全检测设备可通过预先设置的检测方法来判断目标连接的连接类型是否为长连接。
若安全检测设备确定目标连接的连接类型不是长连接,则可执行步骤s214;若安全检测设备确定目标连接的连接类型是长连接,则可执行步骤s222。
步骤s214,安全检测设备获取自身记录的所有客户端和目标服务器的连接的总连接数。
具体地,由于连接列表可用于确定所有客户端通过安全检测设备和目标服务器建立连接的连接情况(例如,第一客户端通过安全检测设备和目标服务器建立有一条连接;第二客户端通过安全检测设备和目标服务器建立有一条连接等),安全检测设备可通过查询连接列表来获取所有客户端和目标服务器的已建立连接的总连接数。
步骤s215,安全检测设备比较总连接数和连接阈值的大小。
应理解,连接阈值的设置方式可根据实际需求来进行设置,本申请实施例并不局限于此。
可选地,连接阈值可以为预设阈值。
应理解,预设阈值的具体值可根据实际需求来进行设置,本申请实施例并不局限于此。
可选地,连接阈值可以是通过对第二预设时段内的历史连接数进行自学习获得的。其中,历史连接数为通过安全检测设备存储的历史连接列表确定的,且历史连接列表记录可用于确定所有客户端通过安全检测设备和目标服务器的历史连接的连接情况(例如,在第一历史时间点,第一客户端和目标服务器建立有一条连接等)。
应理解,对第二预设时段内的历史连接数进行自学习的具体过程可根据实际需求来进行设置,本申请实施例并不局限于此。
可选地,在第二预设时段包括多个子时段,以及每个子时段均包括第一时段和第二时段,以及每个子时段内第一时段和目标时段为不同周期内的同一时段,以及每个子时段内的第二时段均早于对应的第一时段的情况下,获取第一子时段内第一时段的第一平均连接数,其中,第一平均连接数是利用第一子时段内第一时段的历史连接数获得的,随后在第一平均连接数小于参考连接数的第一预设倍数的情况下,将第一平均连接数划分到初始集合内,或者在第一平均连接数大于等于参考连接数的第一预设倍数的情况下,将参考连接数划分到初始集合内,随后获取第二子时段内第一时段的第二平均连接数,其中,第二子时段为多个子时段中除第一子时段外的任意一个子时段,第二平均连接数是利用第二子时段内第一时段的历史连接数获得的,随后在第二平均连接数小于当前集合内所有连接数的第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,或者在第二平均连接数大于等于第三平均连接数的第二预设倍数且第二子时段内第二时段的第四平均连接数大于等于第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,第四平均连接数是利用第二子时段内第二时段的历史连接数获得的,最后计算最终集合内所有连接数的第五平均连接数,并将第五平均连接数作为连接阈值。其中,当前集合也可称为中间集合,最终集合为最终获得的集合。
应理解,第一预设倍数的具体倍数、第二预设倍数的具体倍数、第二预设时段的具体时间长度、第一时段的具体时间长度、第二时段的具体时间长度、参考连接数的具体连接数和目标时段的具体时间长度等均可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,第一预设倍数的具体倍数和第二预设倍数的具体倍数等相关倍数均可以为1.2倍,也可以为1.5倍等。
这里需要说明的是,虽然上面是以第一预设倍数和第二预设倍数等为相同的倍数来描述的,但本领域的技术人员应当理解,第一预设倍数和第二预设倍数等相关倍数也可以是不相同的倍数。
再例如,第一预设时段的具体时间长度可以为周,也可为月,也可以年等。
再例如,第一时段的具体时间长度可以为小时,也可以为天,也可以为天等。对应地,第二时段的具体时间长度可以为小时,也可以为天,也可以为天等,这里可保证第一时段的具体时间长度和第二时段的具体时间长度是一样的。
这里需要说明的是,本申请实施例可将一个子时间段看作一个周期。
为了便于理解对第二预设时段内的历史连接数进行自学习的具体过程,下面通过具体的实施例来进行描述。
具体地,在目标时段为第4周的周四以及第二预设时段为第1周至第3周的情况下,第1周中的第一时段可以为第1周中的周四,第1周中的第二时段可以为第1周中的周三;第2周中的第一时段可以为第2周中的周四,第2周中的第二时段可以为第2周中的周三;第3周中的第一时段可以为第3周中的周四,第3周中的第二时段可以为第3周中的周三。其中,第4周的周四可以为将来的时间,第1周至第3周可以为历史时间。
随后,安全检测设备可分别计算第1周中的周四对应的平均连接数、第1周中的周三对应的平均连接数、第2周中的周四对应的平均连接数、第2周中的周三对应的平均连接数、第3周中的周四对应的平均连接数和第3周中的周三对应的平均连接数。
随后,安全检测设备可将第1周中的周四对应的平均连接数、第2周中的周四对应的平均连接数和第3周中的周四对应的平均连接数这三个数据放入到第一组,并将第1周中的周三对应的平均连接数、第2周中的周三对应的平均连接数和第3周中的周三对应的平均连接数这三个数据放入到第二组。
此外,安全检测设备可从第一组中取出第1周中的周四对应的平均连接数,并比较第1周中的周四对应的平均连接数和1.5倍的参考连接数的大小。若第1周中的周四对应的平均连接数小于1.5倍的参考连接数,则安全检测设备可将第1周中的周四对应的平均连接数划分到初始集合中;若第1周中的周四对应的平均连接数大于等于1.5倍的参考连接数,则安全检测设备可将参考连接数划分到初始集合中。
以及,安全检测设备可从第一组中取出第2周中的周四对应的平均连接数,并比较第2周中的周四对应的平均连接数和1.5倍的当前集合中的平均连接数(例如,其可以为参考连接数,也可以为第1周中的周四对应的平均连接数)的大小。
若第2周中的周四对应的平均连接数小于1.5倍的当前集合中的平均连接数,可说明第2周中的周四对应的平均连接数是可信的,并可将第2周中的周四对应的平均连接数放入到当前集合中;若第2周中的周四对应的平均连接数大于等于1.5倍的当前集合中的平均连接数,则可说明第2周中的周四对应的平均连接数是可疑的,从而安全检测设备可继续从第二组中取出第2周中的周三对应的平均连接数,并可继续比较第2周中的周三对应的平均连接数和1.5倍的当前集合中的平均连接数的大小,随后在确定第2周中的周三对应的平均连接数大于等于1.5倍的当前集合中的平均连接数的情况下,则安全检测设备可确定第2周中的周四对应的平均连接数是正常数据,并可将第2周中的周四对应的平均连接数放入到当前集合中。但是,在确定第2周中的周三对应的平均连接数小于1.5倍的当前集合中的平均连接数的情况下,则安全检测设备可确定第2周中的周四对应的平均连接数是异常突增数据,则安全检测设备可忽略第2周中的周四对应的平均连接数。
也就是说,安全检测设备在确定第二平均连接数大于等于第三平均连接数的第二预设倍数的情况下,安全检测设备可利用第二子时段内第二时段的第四平均连接数来确定第二平均连接数是否是可信的。若第二子时段内第二时段的第四平均连接数也大于等于第三平均连接数的第二预设倍数,则安全检测设备可确定第二平均连接数是正常的;若第二子时段内第二时段的第四平均连接数小于第三平均连接数的第二预设倍数,则安全检测设备可确定第二平均连接数是异常突增的。
以及,安全检测设备可从第一组中取出第3周中的周四对应的平均连接数,并比较第3周中的周四对应的平均连接数和1.5倍的当前集合中的平均连接数(例如,其是通过参考连接数和第2周中的周四对应的平均连接数获得的)的大小。
若第3周中的周四对应的平均连接数小于1.5倍的当前集合中的平均连接数,可说明第3周中的周四对应的平均连接数是可信的,并可将第3周中的周四对应的平均连接数放入到当前集合中,以获得最终集合;若第3周中的周四对应的平均连接数大于等于1.5倍的当前集合中的平均连接数,则可说明第3周中的周四对应的平均连接数是可疑的,从而安全检测设备可继续从第二组中取出第3周中的周三对应的平均连接数,并可继续比较第3周中的周三对应的平均连接数和1.5倍的当前集合中的平均连接数的大小,随后在确定第3周中的周三对应的平均连接数大于等于1.5倍的当前集合中的平均连接数的情况下,则安全检测设备可确定第3周中的周四对应的平均连接数是正常数据,并可将第3周中的周四对应的平均连接数放入到当前集合中,以获得最终集合。但是,在确定第3周中的周三对应的平均连接数小于1.5倍的当前集合中的平均连接数的情况下,则安全检测设备可确定第3周中的周四对应的平均连接数是异常突增数据,则安全检测设备可忽略第3周中的周四对应的平均连接数。
这里需要说明的是,虽然上面是以三周的历史连接数为例来进行描述的,但本领域的技术人员应当理解,其还可以四周、八周和十周等预设周的历史连接数来获取,本申请实施例并不局限于此。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,安全检测设备可比较总连接数和连接阈值的大小。若安全检测设备确定总连接数大于等于连接阈值,则安全检测设备可执行步骤s216;若安全检测设备确定总连接数小于连接阈值,则安全检测设备可执行步骤s222。
这里需要说明的是,为了便于确定哪些报文是超过连接阈值的连接的报文,这里可为超过连接阈值的连接的相关报文打上第一标识。
应理解,第一标识的具体形式可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,第一标识可以包括第一值、间隔符和第二值。其中,间隔符可设置在第一值和第二值中间,第一值可以为目标服务器的标识,第二值可以为目标连接的标识。
步骤s216,安全检测设备获取目标连接的建立时长。
应理解,建立时长还可以称为存在时长,也可以称为会话时长等。
还应理解,安全检测设备获取目标连接的建立时长的具体方式可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,在连接列表记录有每个连接的建立时长的情况下,安全检测设备可通过查询连接列表来确定目标连接的建立时长。
步骤s217,安全检测设备比较建立时长和预设建立时长的大小。
应理解,预设建立时长的具体时长可根据实际需求来进行设置,只要保证预设建立时长可以表示正常连接的时长即可,本申请实施例并不局限于此。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
具体地,安全检测设备可通过预设方式来比较建立时长和预设建立时长的大小。在确定建立时长大于等于预设建立时长的情况下,则安全检测设备可确定目标连接的建立时间过长,其可能是慢速攻击,并可执行步骤s218;在确定建立时长小于预设建立时长的情况下,则安全检测设备可确定目标连接是正常连接,其可执行步骤s222。
这里需要说明的是,在确定目标连接的连接时长大于等于预设建立时长的情况下,后续需要统计目标连接在第一预设时段内需通过目标连接发送的报文的大小。从而,为了便于后续的统计,可为需通过目标连接发送的报文打上第二标识。
应理解,第二标识的具体标识可根据实际需求来进行设置,本申请实施例并不局限于此。
步骤s218,安全检测设备检测第一预设时段内与目标连接对应的报文的总大小。其中,与目标连接对应的报文是指需要通过目标连接发送的报文。
应理解,第一预设时段的具体时间可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,第一预设时段可以是100毫秒。
再例如,第一预设时段可以是在获取到检测报文后的150毫秒。
还应理解,安全检测设备检测第一预设时段内与目标连接对应的报文的总大小的具体方式可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,安全检测设备可通过统计第二预设时段内携带有第二标识的报文的大小,以确定第一预设时段内与目标连接对应的报文的总大小(或者说,第一时间段内的与目标连接对应的所有报文的大小)。
步骤s219,安全检测设备比较总大小和预设大小的大小。
具体地,若安全检测设备确定总大小小于等于预设大小,则安全检测设备可执行步骤s220;若安全检测设备确定总大小大于预设大小,则安全检测设备可步骤s221。
应理解,预设大小的具体值可根据实际需求来进行设置,本申请实施例并不局限于此。
步骤s220,安全检测设备确定待检测报文为慢速攻击报文。
具体地,由于慢速攻击具有攻击慢的特点,则在安全检测设备确定总大小小于等于预设大小的情况下,安全检测设备确定待检测报文为慢速攻击报文。
此外,由于安全检测设备可将第一预设时段内统计的与目标连接对应的报文全部丢弃。
步骤s221,安全检测设备重新进行统计。
步骤s222,安全检测设备执行报文的正常发送流程。
步骤s223,安全检测设备新建连接,并记录新建连接的建立时长。
因此,本申请实施例可利用慢速攻击的攻击慢的特点,检测超过目标服务器的连接阈值的建立时长和第一预设时段内与目标连接相关的报文的总大小,并对建立时长过长且总大小小于等于预设大小的报文对应的连接进行阻断,从而解决了现有技术中存在着的不够灵活的问题,即便是报文的特征发生了变化依然可以检测出慢速攻击报文。
此外,本申请实施例还以日常流量来进行自学习,以获得动态的连接阈值,从而对连接主机的保护更加精准。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
请参见图3,图3示出了本申请实施例提供的一种检测慢速攻击的方法的具体流程图。如图3所示的方法包括:
步骤s311,安全检测设备接收报文。
步骤s312,安全检测设备确定目标连接是否存在。
若安全检测设备确定目标连接已经存在的情况下,则可执行步骤s313;若安全检测设备确定目标连接不存在的情况下,则可执行步骤s324。
步骤s313,安全检测设备确定目标连接的连接类型是否为长连接。
若安全检测设备确定目标连接的连接类型不是长连接的情况下,则可执行步骤s314;若安全检测设备确定目标连接的连接类型是长连接的情况下,则可执行步骤s325。
步骤s314,安全检测设备比较总连接数和连接阈值的大小。其中,总连接数为安全检测设备记录的所有客户端和目标服务器的连接的总连接数。
若安全检测设备确定总连接数大于等于连接阈值,则安全检测设备可执行步骤s315;若安全检测设备确定总连接数小于连接阈值,则安全检测设备可执行步骤s323。
步骤s315,安全检测设备确定报文是否有第二标识。
在安全检测设备确定报文有第二标识的情况下,执行步骤s316;在安全检测设备确定报文没有第二标识的情况下,执行步骤s320。
步骤s316,安全检测设备检测报文是否有第一标识。
在安全检测设备确定报文有第一标识的情况下,执行步骤s318;在安全检测设备确定报文没有第一标识的情况下,执行步骤s317。
步骤s317,安全检测设备为报文打上第一标识。
步骤s318,安全检测设备比较目标连接的建立时长和预设建立时长的大小。
在目标连接的建立时长大于等于预设建立时长的情况下,执行步骤s319;在目标连接的建立时长小于预设建立时长的情况下,执行步骤s323。
步骤s319,安全检测设备为报文打上第二标识,并统计第一预设时段内的报文的总大小。
步骤s320,安全检测设备比较总大小和预设大小的大小。
在安全检测设备确定总大小小于等于预设大小的情况下,执行步骤s321;在安全检测设备确定总大小大于预设大小的情况下,执行步骤s322。
步骤s321,安全检测设备确定报文为慢速攻击报文。
步骤s322,重新统计。
步骤s323,安全检测设备执行正常处理流程。
步骤s324,安全检测设备新建连接。
步骤s325,安全检测设备不作慢速攻击检测。
应理解,上述检测慢速攻击的方法仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,该变形之后的方案也属于本申请的保护范围。
请参见图4,图4示出了本申请实施例提供的一种检测慢速攻击的装置400的结构框图,应理解,该装置400能够执行上述方法实施例中的各个步骤,该装置400具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置400包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置400的操作系统(operatingsystem,os)中的软件功能模块。具体地,该装置400应用于安全检测设备,该装置400包括:
接收模块410,用于接收待检测报文;第一获取模块420,用于在确定用于向目标服务器发送待检测报文的目标连接已经建立的情况下,获取自身记录的所有客户端和目标服务器的连接的总连接数;第二获取模块430,用于在总连接数大于等于连接阈值的情况下,获取目标连接的建立时长;检测模块440,用于在建立时长大于等于预设建立时长的情况下,检测第一预设时段内与目标连接对应的报文的总大小;确定模块450,用于在总大小小于等于预设大小的情况下,确定待检测报文为慢速攻击报文。
在一个可能的实施例中,该装置400还包括:自学习模块(未示出),用于对第二预设时段内的历史连接数进行自学习,以获得目标时段对应的连接阈值。
在一个可能的实施例中,第二预设时段包括多个子时段,每个子时段均包括第一时段和第二时段,每个子时段内第一时段和目标时段为不同周期内的同一时段,每个子时段内的第二时段均早于对应的第一时段;
其中,自学习模块,具体用于:获取第一子时段内第一时段的第一平均连接数,其中,第一平均连接数是利用第一子时段内第一时段的历史连接数获得的;在第一平均连接数小于参考连接数的第一预设倍数的情况下,将第一平均连接数划分到初始集合内,或者在第一平均连接数大于等于参考连接数的第一预设倍数的情况下,将参考连接数划分到初始集合内;获取第二子时段内第一时段的第二平均连接数,其中,第二子时段为多个子时段中除第一子时段外的任意一个子时段,第二平均连接数是利用第二子时段内第一时段的历史连接数获得的;在第二平均连接数小于当前集合内所有连接数的第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,或者在第二平均连接数大于等于第三平均连接数的第二预设倍数且第二子时段内第二时段的第四平均连接数大于等于第三平均连接数的第二预设倍数的情况下,将第二平均连接数划分到当前集合内,第四平均连接数是利用第二子时段内第二时段的历史连接数获得的;计算最终集合内所有连接数的第五平均连接数,并将第五平均连接数作为连接阈值。
在一个可能的实施例中,第一获取模块420,具体用于:在确定目标连接已经建立且目标连接的连接类型不是长连接的情况下,获取总连接数。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
图5示出了本申请实施例提供的一种电子设备500的结构框图。如图5所示,电子设备500可以包括处理器510、通信接口520、存储器530和至少一个通信总线540。其中,通信总线540用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口520用于与其他节点设备进行信令或数据的通信。处理器510可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程逻辑门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器510也可以是任何常规的处理器等。
存储器530可以是,但不限于,随机存取存储器(randomaccessmemory,简称ram),只读存储器(readonlymemory,简称rom),可编程只读存储器(programmableread-onlymemory,简称prom),可擦除只读存储器(erasableprogrammableread-onlymemory,简称eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,简称eeprom)等。存储器530中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器510执行时,电子设备500可以执行上述方法实施例中的安全检测设备侧的各个步骤。
电子设备500还可以包括存储控制器、输入输出单元、音频单元、显示单元。
所述存储器530、存储控制器、处理器510、外设接口、输入输出单元、音频单元、显示单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线540实现电性连接。所述处理器510用于执行存储器530中存储的可执行模块,例如电子设备500包括的软件功能模块或计算机程序。
输入输出单元用于提供给用户输入数据实现用户与服务器(或本地终端)的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
音频单元向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示单元在所述电子设备与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
可以理解,图5所示的结构仅为示意,所述电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
本申请提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行实施例中测试服务器侧的方法。
本申请还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行实施例中算法服务器侧的方法。
本申请还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行实施例中测试服务器侧的方法。
本申请还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行实施例中算法服务器侧的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。