安全经验谈连载之:如何应对DoS攻击
常见DoS的类型1、TCP SYN泛洪
对于TCP协议,当客户端向服务器发起连接请求并初始化时,服务器一端的协议栈会留一块缓冲区来处理“握手”过程中的信息交换。请求建立连接时发送的数据包的包头SYN位就表明了数据包的顺序,攻击者可以利用在短时间内快速发起大量连接请求,以致服务器来不及响应。同时攻击者还可以伪造源IP地址。也就是说攻击者发起大量连接请求,然后挂起在半连接状态,以此来占用大量服务器资源直到拒绝服务。虽然缓冲区中的数据在一段时间内(通常是三分钟)都没有回应的话,就会被丢弃,但在这段时间内,大量半连接足以耗尽服务器资源。
防御这种攻击没有好的办法,所有基于TCP的服务都有此“弱点”,但对于Web服务来说,有三招防御手段:设置SYN cookie、RST cookie和编辑缓冲区大小。具体方法可以搜一下,但要注意,三种方法都有局限性。
2、Smurf IP
Smurf IP利用广播地址发送ICMP包,一旦广播出去,就会被广播域内的所有主机回应,当然这些包都回应给了伪装的IP地址(指向被攻击主机),伪装IP地址可以是互联网上的任何地址,不一定在本地;假如骇客不停地发送此种类型的包,就会造成DoS攻击。
防御这种攻击要从内网入手,因为攻击是从广播域内发起的,所以一是防内贼,二是防木马、病毒以防被外控制,再一个就是利用防火墙隐藏内网; 好将这些措施组合起来。
3、其它
其它还有UDP泛洪、ICMP泛洪、死亡之ping、泪珠攻击、着陆攻击、Echo/Chargen攻击,基本思想都差不多,有兴趣的可以查查,篇幅所限这里不多介绍。
4、DDoS攻击
DDoS是分布式拒绝服务攻击,其基本思想与DoS攻击一样,只是方法不同。DDoS攻击一般通过两种方式:一是利用大量路由器,一是利用botnet。
DoS的弱点
从攻击者的角度来讲,DoS攻击的不足是要求洪水包必须能够持续发送,一旦洪水包停了,系统一般也就恢复正常了。另外如果直接从本机发起攻击,就有被跟踪到IP的危险;而利用Botnet又需要很强的控制力。
如何防御DoS
正如没有确定的方法来防止骇客攻击一样,也没有确保的方法防止所有DoS攻击。然而,有一些措施可以减小危险发生的可能性。如前面介绍的SNY cookie、RST cookie、编辑缓冲区大小。下面再介绍一些,这些方法要根据情况综合应用。
第一利用防火墙阻止外网的ICMP包,几乎没有什么理由让外网的ICMP包进入本地网络,有人可能会对此有争论,说是没有好的理由,但在我看来都一样。再一个利用工具时常检查一下网络内是否SYN_RECEIVED状态的半连接,这可能预示着SYN泛洪,许多网关型防火墙也是用此方法防御DoS攻击的。另外如果网络比较大,有内部路由器,同时网络不向外提供服务的话,可以考虑配置路由器禁止所有不是由本地发起的流量,而且考虑禁止直接IP广播。若路由器具有包过滤功能的话,可以检查数据包的源IP地址是否被伪造,来自外网的数据包源IP应该是外网IP,来自内网的数据包源IP是内网IP。 后就是防止网内出现Zombie了,没什么说的,常规防护,及时更新补丁,使用防病毒软件,制定下载策略,禁止随意下载。
到此已经对网络上基本的威胁形式有所了解,各有各的特点,这里只总结一下基本的防御措施,常规动作,一定要做好。除此之外,网络安全是个攻防对抗的动态过程,新思路新形式随时会出现,需要不断学习,针对自身网络以及威胁的特点,对症下药。再次提醒注意,常规动作一定要做好:
(1)使用防病毒软件,定期扫描。
(2)及时更新系统及软件补丁。
(3)关闭不需要的服务。
(4)浏览器配置为 高安全级。
(5)使用防火墙,对于桌面机,系统自带防火墙足够。
(6)考虑使用反间谍软件。
(7)不要在互联网泄露私人信息,除非十分有必要。
(8)企业要有相应安全策略。