发明内容
本发明实施例一方面提供了防网络攻击流量过载保护的方法,另一方面提供了防网络攻击流量过载保护的装置和系统,能够解决现有技术的过滤不完全等原因造成的洪水流量对被保护目标主机或服务器的冲击,实现对目标主机或服务器的流量过载保护。
本发明实施例提供的防网络攻击流量过载保护的方法,包括:
当保存网络数据的缓存区已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据;
如果判断结果为不丢弃,则将所述接收的网络数据存入所述缓存区,替换所述缓存区中原有的网络数据;
将缓存区中的网络数据取出并向下一级设备发送。
本发明实施例提供的防网络攻击流量过载保护的装置,包括:
缓存模块,用于保存网络数据;
判断模块,用于当保存网络数据的缓存模块已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据;
替换模块,用于如果所述判断模块确定为不丢弃接收的网络数据,则将所述接收的网络数据存入所述缓存模块,替换所述缓存模块中原有的网络数据;
发送模块,用于将所述缓存模块中的网络数据取出并向下一级设备发送。
本发明实施例提供的防网络攻击流量过载保护的系统,包括:
网关设备,用于当保存网络数据的缓存区已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据;如果判断为不丢弃,则将所述接收的网络数据存入所述缓存区,替换所述缓存区中原有的网络数据;将缓存区中的网络数据取出并向下一级设备发送;
服务器,用于接收所述网关设备发送的网络数据,向发送网络数据的客户端提供服务。
由以上技术方案可知,本发明实施例中,通过在下一级设备之前,设置缓存区,对接收的网络数据进行缓存,并当缓存区已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据,如果不丢弃则将所述接收的网络数据存入所述缓存区,替换所述缓存区中原有的网络数据,之后,将缓存区的网络数据取出并向下一级设备发送,从而使得下一级设备需要处理的数据量只与缓存区的大小有关,有效减少了由DOS或DDOS攻击造成的大量泛洪数据报文,对下一级设备进行了流量过载保护,消除了泛洪报文对下一级设备的冲击,同时,也可以避免现有检测技术由于过滤不完全对受保护服务器的流量冲击。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如附图1所示,本发明实施例提供了一种防网络攻击流量过载保护的方法,该方法包括一下步骤10至步骤17:
步骤10:将接收到的网络数据进行解析整形;
这里的解析整形,主要是对网络数据进行基本的处理,转化成自定义的包结构,原始的网络数据一般包括原始业务数据和管理数据,例如,对网络数据包进行简单的三层协议、四层识别、简单七层识别,去除不必要的多余管理信息,仅记录原始网络数据包的协议类型、源IP、目的IP等简单的管理信息和业务数据内容。
步骤11:判断缓存区状态,如果缓存区未满则执行步骤12,如果缓存区已满则执行步骤13;
缓存区可以采用环形队列的逻辑结构,如图2a和图2b所示,定义一个首指针paqu->f和一个尾指针paqu->r,分别指向环形队列的队首和队尾,初始时首指针和尾指针重合环形队列为空(如图2a所示),当满足paqu->r+==paqu->f时,环形队列为已满状态(如图2b所示),当不满足paqu->r+==paqu->f时,环形队列为未满状态;
环形队列可以采用基于链表的缓存区进行定义,该链表包括:循环队列的首尾指针、三层协议类型、三层相关标志、四层协议类型、四层相关标志、七层协议类型、七层相关标志、源IP、目的IP、源port、目的port、到达时间、包长度、数据包原始业务数据,其中,各个层的协议类型和相关标志可以有多个。
步骤12:将整形后的数据包存入缓存区;
将整形后的数据包按照预设格式填充到缓存区的链表结构中,并填入相应管理信息(例如,协议类型、源IP、目的IP等),之后,可以执行步骤17将缓存区中的数据包取出;其中,当缓存区采用环形队列的方式对数据进行管理时,则将新收到的数据包插入到队列的队尾。
步骤13:根据预设的丢弃策略判断是否进行数据包的丢弃,如果是则执行步骤14,丢弃整形后的数据包,否则执行步骤15;
这里的预设的丢弃策略可以为:
(1)基于源IP信誉机制的策略
由于其它设备或者本系统能够记录一些攻击者的IP,或者根据其源IP的行为情况进行友善度的评价,对于这些源IP的信誉形成信誉列表;可以根据这个信誉列表对新来的数据包进行评价,如果该新数据包的源IP信誉低,则直接抛弃;如果信誉良好则进行替换;如果信誉适中,则进行随机丢包。
(2)基于重传机制的策略
对于TCP的数据包,由于具备重传机制,可以进行适度丢包,例如,根据经验或者网络流量设置一个丢弃率,按照该丢弃率对TCP数据包进行随机丢弃。
(3)基于协议类型的策略
有些应用协议由于业务特征,允许丢包;例如,类似RTP等媒体流协议,丢包10%不过分影响效果,类似P2P协议,可以允许一定比例丢包,有些利用代理服务器进行访问的,可以暂时不让其通过,即丢弃利用代理服务器进行访问的数据包。
(4)基于IP包个数的策略
相同源IP包在缓存区中不能过多,可以设置一个相同源IP包数量阈值,当一个源IP的数据包在缓存区中的数量超过这个阈值时,则用该源IP的新数据包把缓存区中的该源IP的旧数据包替换,保证其他源IP也能访问服务。
(5)基于用户定制的策略
定制一些关键的可信用户IP,对于这类源IP的数据包则不丢弃,保证其能正常访问,对于非关键的可信用户IP可以随机进行丢弃。
其中,步骤13中,根据策略判断是否进行数据包的丢弃,可以根据上述的(1)至(5)中的任一个策略进行判断,也可以根据其中的任意多个策略的组合进行判断;当根据多个策略的组合进行判断时,不同的策略可以有不同的优先级,以确定判断的顺序,一种示例的顺序为,(1)的优先级最高,(2)、(3)、(4)、(5)的优先级依次降低。
步骤14:直接丢弃整形后的数据包;
当步骤13中根据策略判断,确定丢弃新收到的数据包后,在本步骤中将新收到的数据包直接丢弃。
步骤15:确定缓存区中的被替换对象;
确定被替换对象的方法,可以参考步骤13中对是否丢弃的判断策略,例如,根据策略(1)至(5)中的任一个或任意多个策略,对缓存区中的各个数据包进行判断,如果缓存区中存在符合丢弃策略的数据包,则将该缓存区中符合丢弃策略的至少一个数据包确定为被替换对象;当然,步骤15也可以省略,随机选择缓存区中的一个数据包进行替换;当参考策略(1)至(5)进行被替换对象的确定,可以尽可能的使选中的被替换对象是相对不重要的数据包,从而保证重要的数据业务的通信质量。
步骤16:将整形后的数据包存入缓存区进行缓存替换;
将新收到的数据包写入缓存中,替换步骤15中确定的被替换对象。
步骤17:按照先进先出的基本原则,从缓存区中取出数据包;
数据出队列后,就可以依据安全防范的各种模块对数据进行安全分析,然后再进入相应的业务模块进行业务工作。
本实施例的方法,可以应用在串联的网关设备中,例如:防火墙,抗DDOS设备,UTM设备,IPS设备等。
本实施例,根据网络流量情况构建相应的网络数据存储缓存区,将接收的网络数据存入缓存区中,然后按照先进先出的原则进行数据处理;如果缓存区已充满,则根据策略对数据包进行筛选,丢弃最怀疑或最不可信的网络数据,或者对缓存区中最怀疑或最不可信的数据进行替换,因为过载的流量被这种丢弃替换机制给处理了,不符合策略要求的数据包会被丢弃或替换,整个流量的处理速度和该网络系统的处理能力只与存储缓存区的大小有关,而和冲击该设备的流量关系不大了,从而将过量的流量数据过滤掉了,保证缓存区之后的数据库只接受最大负载范围之内的流量,达到流量过载保护的目的。
实施例二
如附图3所示,本发明实施例提供了一种防网络攻击流量过载保护的装置,该装置包括:
缓存模块33,用于保存网络数据;
判断模块31,用于当保存网络数据的缓存模块33已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据;
替换模块32,用于如果所述判断模块31确定为不丢弃接收的网络数据,则将所述接收的网络数据存入所述缓存模块33,替换所述缓存模块33中原有的至少一个网络数据;
发送模块34,用于将所述缓存模块33中的网络数据取出并向下一级设备发送。
其中,所述判断模块31可以进一步包括:丢弃策略单元311,用于提供预设的丢弃策略;其中,所述丢弃策略可以是,如果源IP存在攻击记录,则丢弃该源IP发送的网络数据,否则不丢弃,或如果源IP具备重传机制,则丢弃该源IP发送的网络数据,否则不丢弃,或如果源IP使用的通信协议类型允许丢弃,则丢弃该源IP发送的网络数据,否则不丢弃,或如果所述缓存区中,来自同一源IP的网络数据量超过设定的阈值,则丢弃该源IP发送的网络数据,否则不丢弃;丢弃判断单元312,用于当保存网络数据的缓存模块33已满时,根据所述丢弃策略单元311提供的丢弃策略判断是否丢弃接收的网络数据;如果判断为丢弃,则直接丢弃所述接收的网络数据。
其中,所述替换模块32包括:选择单元321,用于根据预设的替换策略,确定缓存区中的被替换对象;其中,所述替换策略为,如果源IP存在攻击记录,则确定缓存区中该源IP发送的网络数据为被替换对象,或者,如果源IP具备重传机制,则确定缓存区中该源IP发送的网络数据为被替换对象,或者,如果源IP使用的通信协议类型允许丢包,则确定缓存区中该源IP发送的网络数据为被替换对象,或者,如果所述缓存区中来自同一源IP的网络数据量超过设定的阈值,则确定缓存区中该源IP发送的网络数据为被替换对象;替换单元322,用于将所述接收的网络数据存入所述缓存模块33,替换所述选择单元321确定的替换对象。
在其他实施例中,所述流量过载保护的装置还可以包括:整形模块30,用于对接收到的原始数据进行解析整形为预定格式,以便所述判断模块31对整形后的网络数据进行判断。
本实施例的流量过载保护的装置,可以实现为串联的网关设备或其中的一个模块,例如:防火墙,抗DDOS设备,UTM设备,IPS设备等。
本实施例中,在向下一级设备发送网络数据之前,首先将数据存入缓存模块,当缓存模块已满时,进一步判断是否丢弃新接收的网络数据,当不丢弃新接收的网络数据时,则将该新接收的网络数据写入缓存模块,并替换缓存模块中原来保存的数据,由于缓存模块具有一定的大小,并且当缓存模块已满时,通过替换原有数据而不会增加更多的缓存数据,使得流量过载保护装置之后的下一级设备能够接收的数据包数量只与缓存模块的大小有关,而与流量过载保护装置接收的用户发送的网络数据量无关,从而减小了DOS、DDOS攻击时大量数据包对下一级设备的冲击,有效的减少了过载流量,实现了对下一级设备的流量过载保护。
实施例三
如附图4所示,本发明实施例提供了一种防网络攻击流量过载保护的系统,该系统包括:
网关设备41,用于当保存网络数据的缓存区已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据;如果判断为不丢弃,则将所述接收的网络数据存入所述缓存区,替换所述缓存区中原有的至少一个网络数据;将缓存区中的网络数据取出并向下一级设备发送;
服务器42,用于接收所述网关设备41发送的网络数据,向发送网络数据的客户端提供服务。
其中,网关设备41可以包括:过载保护装置411,用于当保存网络数据的缓存区已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据,如果不丢弃,则将所述接收的网络数据存入所述缓存区,替换所述缓存区中原有的网络数据;特征检测装置412,用于取出缓存区中的网络数据并进行检测,对异常数据进行过滤,将过滤后的数据发送给服务器42,其中,上述检测可以为现有技术中的流量异常检测、频率检测等特征检测技术,在此不做赘述。
其中,所述过载保护装置411可以包括:缓存模块,用于保存网络数据;判断模块,用于当保存网络数据的缓存模块已满时,根据预设的丢弃策略判断是否丢弃接收的网络数据;替换模块,用于如果所述判断模块确定为不丢弃接收的网络数据,则将所述接收的网络数据存入所述缓存模块,替换所述缓存模块中原有的网络数据;发送模块,用于将所述缓存模块中的网络数据取出并向下一级设备发送,其中,这里的下一级设备可以是服务器42或者特征检测装置412。在其他实施例中,过载保护装置411可以是实施例二提供的流量过载保护的装置。
在其他实施例中,网关设备41可以具体为:防火墙,抗DDOS设备,UTM设备,IPS设备等。
本实施例中,在向下一级设备服务器发送网络数据之前,过载保护装置411首先将数据存入缓存区,当缓存区已满时,进一步判断是否丢弃新接收的网络数据,当不丢弃新接收的网络数据时,则将该新接收的网络数据写入缓存区,并替换缓存区中原来保存的数据,由于缓存区具有一定的大小,并且当缓存区已满时,通过替换原有数据而不会增加更多的缓存数据,使得流量过载保护装置之后的服务器能够接收的数据包数量只与缓存区的大小有关,而与过载保护装置411接收的用户发送的网络数据量无关,从而减小了DOS、DDOS攻击时大量数据包对服务器的冲击,有效的减少了过载流量,实现了对服务器的流量过载保护。另外,当系统中进一步包括特征检测装置时,过载保护装置可以进一步保证输入特征检测装置的数据量不会过载,完成对网关设备自身的流量过载保护。
领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。