详解路由器设置实现DDoS防御
来源:asp之家 时间:2009-12-24 13:48:00
路由器设置实现DDoS防御的操作是什么呢?首先我们要认识到做好DDoS防御之前我们要明白DDoS攻击的原理是什么,然后我们针对原因逐一分析并采取措施。
一、路由器设置实现DDoS防御之DDoS攻击原理讨论
在分布式“拒绝服务”(DDoS)的攻击过程中,一群恶意的主机或被恶意主机感染的主机将向受攻击的服务器发送大量的数据。在这种情况下,靠近网络边缘的网络节点将会变得资源枯竭。原因有二:一是靠近服务器的节点通常在设计时只要求处理少量的用户数据; 二是由于数据在网络核心区的聚集使处于边缘的节点会接收更多的数据。此外,服务器系统本身也很容易受到攻击,在极度超载的情况下会瘫痪。
DDoS攻击被视为一种资源管理问题。本文的目的就是要保护服务器系统在全局性网络中不会收到过量的服务请求。当然,这种机制也可以很容易地变为对网络节点的保护。为此,必须采取一种预防性措施:在攻击性数据包聚集到使服务器瘫痪之前,在传送路径上的路由器中对流量进行调节,避免攻击的发生。具体实现机制是要在与服务器有数级距离的上游路由器上设置门限值,只有在这个门限值以内的数据量可以通过路由器,而其他数据将被放弃或路由至其他路由器。
这种防御系统中的一个主要因素是各个路由点输出“适当”的数据量。“适当”必须视当时的需求分配而定,因此服务器与网络之间要进行动态协商。本文中的协商方法由服务器(S)发起,如果服务器在低于设计容量(Us)的情况下运行,则不需要设置门限值;如果服务器的负载(Ls)超过了设计容量,则可以在服务器的上游设置门限值来进行自我保护。此后,如果当前的门限值不能使S的负载低于Us,则应降低门限值;反之,如果Ls《 Us,则应升高门限值;如果门限值的升高没有使负载在监视期内明显增加,则可以取消门限值。控制算法的目标就是将服务器的负载控制在[Ls,Us]范围之内。
很显然,不可能要求保留所有网络服务器的状态信息,因为这样会造成状态信息 * 。但按需求选择保护机制是可行的,这一观点是基于DDoS攻击是一种个别现象而非普遍情况的假设。在任何时间段内,我们认定只有少数的网络受到攻击,大部分网络在“健康”状态下运行。此外,恶意攻击者通常选择那些访问用户最多的“主要站点”攻击,这些站点就可以利用以下的网络结构来保证自身的安全。
二、路由器设置实现DDoS防御之系统的模式讨论
本文提及的所有数据量和服务器负载量的单位均为 kbps。系统网络拓扑图如图1所示。本文给出了网络模型G=(V,E),其中V代表一系列节点,E表示边缘。所有的叶状节点均为主机和数据来源。内部节点为路由器,路由器不会产生数据但可以接收来自主机的数据或转发来自其他路由器的数据。R表示内部路由节点,所有的路由器均假设是可以信任的。主机H=V-R,被分为普通的正常用户Hg和恶意用户Ha,E是网络链路模型,默认为双向。
叶形节点V被当作目标服务器S。正常用户以[0,rg]的速度将数据包发送到S。恶意攻击者则以[0,ra]的速度向S发送数据包,从原则上讲可以根据用户通常如何访问S(假设rg《 《 Us)来为rg设置一个合理的水平,但ra的取值很难确定,实际上ra的值大大高于rg。
当S受到攻击时,它会启动前面谈到的门限值防护机制。为了便于表示,假设一个超载的服务器仍然能够启动防护机制,因此没有必要在每台路由器上均设置门限值。R(k)表示与S相距k层的路由器或短于k层的路由器,但它们均直接与主机相连。
图中的方块节点表示主机,圆形节点代表路由器。最左侧的主机为目标服务器S,R(3)中的路由器为图中绿色的部分,请注意R(3)中最下层的路由器与S只相隔两层,之所以将其包括在内是因为它与主机直接相连。