一、概念
DoS的英文全称是Denial of Service,也就是“拒绝服务”的意思。从网络攻击的各种方法和所产生的破坏情况来看,DoS算是一种很简单但又很有效的进攻方式。它的目的就是拒绝你的服务访问,破坏组织的正常运行,最终它会使你的部分Internet连接和网络系统失效。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务。
我们可以看出DoS攻击的基本过程:首先攻击者向服务器发送众多的带有虚假地址的请求,服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放。当服务器等待一定的时间后,连接会因超时而被切断,攻击者会再度传送新的一批请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽。
DDoS(分布式拒绝服务),它的英文全称为Distributed Denial of Service,它是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,象商业公司,搜索引擎和政府部门的站点。从图1我们可以看出DoS攻击只要一台单机和一个modem就可实现,与之不同的是DDoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。
DDoS攻击分为3层:攻击者、主控端、代理端,三者在攻击中扮演着不同的角色。
1、攻击者:攻击者所用的计算机是攻击主控台,可以是网络上的任何一台主机,甚至可以是一个活动的便携机。攻击者操纵整个攻击过程,它向主控端发送攻击命令。
2、主控端:主控端是攻击者非法侵入并控制的一些主机,这些主机还分别控制大量的代理主机。主控端主机的上面安装了特定的程序,因此它们可以接受攻击者发来的特殊指令,并且可以把这些命令发送到代理主机上。
3、代理端:代理端同样也是攻击者侵入并控制的一批主机,它们上面运行攻击器程序,接受和运行主控端发来的命令。代理端主机是攻击的执行者,真正向受害者主机发送攻击。 攻击者发起DDoS攻击的第一步,就是寻找在Internet上有漏洞的主机,进入系统后在其上面安装后门程序,攻击者入侵的主机越多,他的攻击队伍就越壮大。第二步在入侵主机上安装攻击程序,其中一部分主机充当攻击的主控端,一部分主机充当攻击的代理端。最后各部分主机各司其职,在攻击者的调遣下对攻击对象发起攻击。由于攻击者在幕后操纵,所以在攻击时不会受到监控系统的跟踪,身份不容易被发现。
二、攻击类型
1、Synflood:该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。
2、Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。
3、Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
4、Ping of Death:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。
5、Teardrop:IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。
6、PingSweep:使用ICMP Echo轮询多个主机。
7、Pingflood:该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。
8、udp flood:攻击源向目标主机随机端口发送全零的4字节udp包,被攻击主机的网络性能在处理这些超出其处理能力垃圾数据包的过程中不断下降,直至不能提供正常服务,甚至崩溃。
三、被攻击时的现象
1、被攻击主机上有大量等待的tcp连接
2、网络中充斥着大量的无用的数据包,源地址为假
3、制造高流量无用数据,造成网络拥塞,使受害主机无法和外界正常通讯
4、利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求
5、严重时会造成系统死机
四、攻击基本原理
1、Synflood 原理——3次握手,正常情况下的3次握手如下:客户端向服务器提出连接请求,这时TCP SYN标志置位,客户端告诉服务端序列号区域合法,需要检查,客户端在自己的tcp报头插入ISN,服务端收到该tcp分段后,在第2步以自己的ISN回应,同时确认收到客户端的第1个tcp分段,在第3步中,客护端确认收到服务端的ISN,到此为止,一个完整的tcp会话建立。开始数据传输。Synflood恶意地不完成3次握手,这种情况下,服务器一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度称SYN Timeout,一般来说,这个时间是分钟的数量级(大约30秒-2分钟),一个用户发送这样的请求并不是大问题,但是如果有大量的模拟这样的情况,服务器就要花很大的开销来维护这些半连接,即使是简单的保存并遍历也会消耗非常多的cpu时间和内存,如果服务器的tcp/ip堆栈不够大,往往会发生堆栈溢出崩溃,即使服务器资源非常充足,也应付不了,那么合法用户的请求就得不到及时响应,从客户角度来说,服务器就受到了Synflood攻击(称洪水攻击)
2、Smurf攻击原理:Smurf攻击利用的是icmp协议,最普通的ping 程序就是利用的这个协议。Smurf首先要伪造一个源地址,这个地址不是发起Smurf攻击的主机的地址,但是他是网络实实在在存在的地址,之后就用这个地址向目标(一个或多个网段)发送连续ping,因为利用的是广播地址,所以在目标网段的所有主机收到该信息后都会产生响应,但是响应的目标主机就是这个伪造的源地址主机,而他实际上没发送这些ping数据包,那么他就成为攻击目标了,这就象太极里面的借力打力。
五、防御DoS/DDoS攻击
1、及早发现系统存在的漏洞,及时安装系统补丁。对一些重要信息备份,对一些敏感帐号的密码要加固。
2、在网络管理方面,要经常检查系统物理环境,禁止不必要的服务,建立边界安全界限,确保输出的包受到限制,经常检查系统配置信息,每天查看日志。
3、利用网络安全设备(如防火墙)加固网络安全,配置好他们的安全规则,过滤掉所有可能的伪造的数据包。
4、和网络服务提供商协调,让他们帮助你实现路由的访问控制和对带宽总量的限制。
5、发现受到攻击,应起用应付策略,尽可能快地追踪攻击包,及时和ISP以及相关组织联系,分析受影响的系统,确定是否还有其他节点受到影响,从而阻挡已知攻击节点的流量。
6、发现自己是潜在的攻击受害者,即你发现你的计算机被用做主控端和代理端时,你不能因为你的系统暂时没有受到伤害而掉以轻心,攻击者已经发现你系统的漏洞,对你的系统是很大的威胁,所以一旦发现系统存在DoS攻击的软件,应该立即清除掉。
总结
目前存在的攻击手段逐渐傻瓜化,特别是象DoS攻击,更是简单到下个工具就可以发起攻击,而且真正的攻击开始后,又很难抵御,不过只要我们平时注意安全防范工作,少暴露出自己的弱点,还是可以减少威胁的。 ·IT产品报价大全 |