《黄帝内经》载:“经脉者,人之所以生,病之所以成,人之所以治,病之所以起”,其作者为“决生死,处百病,调虚实,不可不通”,诚为人体最为重要一个组成部分。经脉一旦不通,各种疾病就会纷至沓来。拒绝服务/分布式拒绝服务从其影响来看,和经脉不通有异曲同工的表现形式:整个网站系统对外服务不可用,几乎就可以认为网站“死了”。
下面是一则示例:
某省移动公司信息技术部总经理D先生在近日就遇到拒绝服务攻击的麻烦:用户投诉说网站访问太慢,动不动就超时断开连接。这个问题该如何处理呢?
说到拒绝服务攻击,相信大家都不陌生。在所有的骇客攻击行为中,这种攻击显得颇为特立独行:因为它是一种损人不利己的攻击行为。
典型的拒绝服务表现:正常服务请求无法得到满足,比如访问缓慢,无响应等,严重情况下甚至会有服务器死机现象。
除了常说的拒绝服务之外,还有另外一种防范更为困难的分布式拒绝服务。分布式拒绝服务是指借助客户端/服务器技术,联合多个(常常可达数万个)计算机作为一个攻击平台,对目标发起拒绝服务攻击,由于受控的攻击机器(就是我们通常所谓的傀儡机)数量庞大,极端情况下即使每台傀儡机都只发送正常服务请求,目标机器也有可能由于资源过载而无法正常提供服务。
有人认为,拒绝服务绝对无法避免,其实不尽然,根据触发原因的不同,某些拒绝服务是可以避免的,有一种情况是由于错误配置或系统BUG导致的。错误配置造成的拒绝服务攻击可以通过修正配置来避免,系统BUG造成的拒绝服务攻击可以通过打修正BUG的补丁来避免。
注意:
1. 错误配置:某服务器系统配置支持1000个用户同时连接,但在该服务器上的系统软件上,并未对用户连接数上限做限制,导致同时连接用户数量过多,服务器响应缓慢。
2. 系统BUG:这里的系统可能是软件可能是协议,最著名的导致拒绝服务攻击的系统BUG就是TCP的三次握手,攻击者可以伪造大量源地址进行持续的TCP的SYN请求,在接受到服务器端ACK回应时不做任何响应,使得服务器需要保持大量的端口监听状况,从而造成拒绝服务。
根据拒绝服务类型的不同,大致有以下常见类型:
网络宽带消耗型攻击:由于大量的网络服务请求占用和耗尽了带宽资源,导致的拒绝服务攻击。通过抓包可以看到网络中存在大量数据包,达到网络通讯量的上限。一般来说可以通过修改服务器配置或使用QoS设备来降低此类攻击危害。
一般来说,在服务器上做的配置包括:
·关闭不必要的服务
·限制同时打开的Syn半连接数
·缩短Syn半连接的time out时间
在网关设备上做的配置包括:
防火墙
·禁止对主机的非开放服务的访问
·限制同时打开的Syn最大连接数
·限制特定IP地址的访问
·启用防火墙的防DDoS的属性
·严格限制对外开放的服务器的向外访问
路由器
·Cisco Express Forwarding(CEF)
·使用unicast reverse-path
·访问控制列表(ACL)过滤
·设置Syn数据包流量速率
·升级版本过低的ISO
·为路由器建立log server
通常情况下,针对带宽消耗型拒绝服务/分布式拒绝服务的最佳防御位置是在运营商处,通过在路由器上对数据包源IP地址进行验证,如未找到匹配项就予以丢弃,这样可以最大限度保证伪造的数据包不会通过Internet传到用户网络中。但这种方法将极大降低路由器的处理性能,故应用不多。
资源耗尽型攻击:利用处理缺陷,通过发送数据包耗尽CPU等处理资源,导致无法正常提供服务。网络流量并不大,但服务器的资源占用率极高,如CPU时间100%。Jolt2.c就是这样的一种攻击行为。
资源消耗型的攻击相对来说易于防御,串接在网络中的设备只要能对畸形数据包进行分析和丢弃,就可以避免此类攻击。入侵防御产品,甚至是防火墙产品都具备此项功能。
一些重要网站,或是在一些重大事件期间,网站无法访问将会带来非常严重的影响。带宽消耗型拒绝服务,尤其是那些利用大规模僵尸网络进行的攻击行为,几乎无法从“直接防御”这个角度进行防护,这种情况下,较好的应对措施就是增加服务的提供能力,如采用增加宽带、提高计算性能、冗余备份、负载均衡手段,常见的大型门户网站基本都是采用这种方法来应对拒绝服务威胁。
保持经络畅通,是一种养生学态度,需要常运动,保持心情愉悦,练气功,使用活血理气的食物,发现有异常及时处理;而保持网站不被拒绝服务,也需要从多个角度出发:增加带宽、调整网络设备策略。