今天上午同事接到号码为:2631805456 的QQ聊天信息,大概意思是准备利用DDOS攻击我们“百恒南昌做网站”的主页,让我们小心提防。这么好心提醒、让你做好准备迎接攻击?难道是传说中的中国“红客”,侠盗之流?我就开始纳闷了,我们百恒在网络上一直都很低调,也不曾得罪过哪路神仙,凭什么攻击我们呢?目的何在?然而,细看他与同事的聊天记录,不难发现他原来是真有目的的。是否真正蓄意攻击目前还不得而知,但是恐吓与嫁祸他人的真实意途已经很明显,只是这种小屁孩的手段让他的慌言不攻自破。下面把同事与他的聊天记录贴上:
不可否认,中国的网络高手数不胜数,如果真的有意攻击某个站点服务器,也并非难事。当然高手一般都深藏不露,黑你的站于无形当中,很少留下任何蛛丝马迹。高手一般是不会轻易出招的。也很少因你的网站在百度排名较好而眼红去攻击你的站。像这样先拍你一下然后跟你说:我要打你了,你做好准备的把戏,只有在剧情中才会出现吧。谁不怕做坏事后被抓接受法律的制裁呢?
既然提到DDOS攻击,那百恒工程师就为大家整理一下传说中的DDOS攻击:(部分资料摘抄于百度百科,由SYN和青岛迅博信息技术提供)
DDOS全名是Distributed Denial of service (分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击。
说到DDOS攻击,还得先从DOS攻击开始,因为他是由传统的DoS攻击基础之上产生的另一类更加强大攻击方式。最早单一的DoS攻击一般是采用一对一的方式,它的攻击方法说白了就是单挑,是比谁的机器性能好、速度快。当被攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高,它的攻击效果也是很明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了 - 被攻击目标对恶意攻击包的"消化能力"加强了很多,例如你的攻击软件每秒钟可以发送3,000个攻击包,但被攻击的主机与网络带宽每秒钟可以处理10,000个攻击包,这样我们的一对一单挑式攻击就没有什么作用了,搞不好自己的机子就会死掉。这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。它的原理就很简单,如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
DDOS攻击原理
通过使网络过载来干扰甚至阻断正常的网络通讯。通过向服务器提交大量请求,使服务器超负荷。阻断某一用户访问服务器阻断某服务与特定系统或个人的通讯。DoS攻击、DDoS攻击和DRDoS攻击相信大家已经早有耳闻了吧!DoS是Denial of Service的简写就是拒绝服务,DDoS就是Distributed Denial of Service的简写就是分布式拒绝服务,而DRDoS就是Distributed Reflection Denial of Service的简写,这是分布反射式拒绝服务的意思。不过这3中攻击方法最厉害的还是DDoS,那个DRDoS攻击虽然是新近出的一种攻击方法,但它只是DDoS攻击的变形,它的唯一不同就是不用占领大量的“肉鸡”。这三种方法都是利用TCP三次握手的漏洞进行攻击的,所以对它们的防御办法都是差不多的。
一个比较完善的DDoS攻击体系分成4大部分,先来看一下最重要的第2和第3部分:它们分别用做控制和实际发起攻击。请注意控制机与攻击机的区别,对第4部分的受害者来说,DDoS的实际攻击包是从第3部分攻击傀儡机上发出的,第2部分的控制机只发布命令而不参与实际的攻击。对第2和第3部分计算机,黑客有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自黑客的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦黑客连接到它们进行控制,并发出指令的时候,攻击傀儡机就成为害人者去发起攻击了。
有的朋友也许会问道:"为什么黑客不直接去控制攻击傀儡机,而要从控制傀儡机上转一下呢?"。这就是导致DDoS攻击难以追查的原因之一了。做为攻击者的角度来说,肯定不愿意被捉到,而攻击者使用的傀儡机越多,他实际上提供给受害者的分析依据就越多。在占领一台机器后,高水平的攻击者会首先做两件事:1. 考虑如何留好后门!2. 如何清理日志。这就是擦掉脚印,不让自己做的事被别人查觉到。比较不敬业的黑客会不管三七二十一把日志全都删掉,但这样的话网管员发现日志都没了就会知道有人干了坏事了,顶多无法再从日志发现是谁干的而已。相反,真正的好手会挑有关自己的日志项目删掉,让人看不到异常的情况。这样可以长时间地利用傀儡机。
但是在第3部分攻击傀儡机上清理日志实在是一项庞大的工程,即使在有很好的日志清理工具的帮助下,黑客也是对这个任务很头痛的。这就导致了有些攻击机弄得不是很干净,通过它上面的线索找到了控制它的上一级计算机,这上级的计算机如果是黑客自己的机器,那么他就会被揪出来了。但如果这是控制用的傀儡机的话,黑客自身还是安全的。控制傀儡机的数目相对很少,一般一台就可以控制几十台攻击机,清理一台计算机的日志对黑客来讲就轻松多了,这样从控制机再找到黑客的可能性也大大降低。
被DDoS攻击时的现象
能瞬间造成对方电脑死机或者假死,有人曾经测试过,攻击不到1秒钟,电脑就已经死机和假死,鼠标图标不动了,系统发出滴滴滴滴的声音。从而使被攻击服务器停止正常运行,造成网络访问不稳定!
DDOS的防护方法
1 手工防护
一般而言手工方式防护DDOS主要通过两种形式:
系统优化――主要通过优化被攻击系统的核心参数,提高系统本身对DDoS攻击的响应能力。但是这种做法只能针对小规模的DDOS进行防护。
网络追查――遭受DDoS攻击的系统的管理人员一般第一反应是询问上一级网络运营商,这有可能是ISP、IDC等,目的就是为了弄清楚攻击源头。
2 退让策略
为了抵抗DDOS攻击,客户可能会通过购买硬件的方式来提高系统抗DDOS的能力。但是这种退让策略的效果并不好,一方面由于这种方式的性价比过低,另一方面,黑客提高供给流量之后,这种方法往往失效,所以不能从根本意义上防护DDoS攻击。
3 路由器
通过路由器,我们可以实施某些安全措施,比如ACL等,这些措施从某种程度上确实可以过滤掉非法流量。一般来说,ACL可以基于协议或源地址进行设置,但是目前众多的DDOS攻击采用的是常用的一些合法协议,比如http协议,这种情况下,路由器就无法对这样的流量进行过滤。同时,如果DDOS攻击采用地址欺骗的技术伪造数据包,那么路由器也无法对这种攻击进行有效防范。 另一种基于路由器的防护策略是采用Unicast Reverse Path Forwarding (uRPF)在网络边界来阻断伪造源地址IP的攻击,但是对于今天的DDOS攻击而言,这种方法也不能奏效,其根本原因就在于uRPF的基本原理是路由器通过判断出口流量的源地址,如果不属于内部子网的则给予阻断。而攻击者完全可以伪造其所在子网的IP地址进行DDoS攻击,这样就完全可以绕过uRPF防护策略。除此之外,如果希望uRPF策略能够真正的发挥作用,还需要在每个潜在攻击源的前端路由器上配置uRPF,但是要实现这种情况,现实中几乎不可能做到。
4 防火墙
防火墙几乎是最常用的安全产品,但是防火墙设计原理中并没有考虑针对DDOS攻击的防护,在某些情况下,防火墙甚至成为DDOS攻击的目标而导致整个网络的拒绝服务。 首先是防火墙缺乏DDOS攻击检测的能力。通常,防火墙作为三层包转发设备部署在网络中,一方面在保护内部网络的同时,它也为内部需要提供外部Internet服务的设备提供了通路,如果DDOS攻击采用了这些服务器允许的合法协议对内部系统进行攻击,防火墙对此就无能为力,无法精确的从背景流量中区分出攻击流量。虽然有些防火墙内置了某些模块能够对攻击进行检测,但是这些检测机制一般都是基于特征规则,DDOS攻击者只要对攻击数据包稍加变化,防火墙就无法应对,对DDOS攻击的检测必须依赖于行为模式的算法。
第二个原因就是传统防火墙计算能力的限制,传统的防火墙是以高强度的检查为代价,检查的强度越高,计算的代价越大。而DDOS攻击中的海量流量会造成防火墙性能急剧下降,不能有效地完成包转发的任务。 最好防火墙的部署位置也影响了其防护DDOS攻击的能力。传统防火墙一般都是部署在网络入口位置,虽然某种意义上保护了网络内部的所有资源,但是其往往也成为DDOS攻击的目标,攻击者一旦发起DDOS攻击,往往造成网络性能的整体下降,导致用户正常请求被拒绝。
5 入侵检测
目前IDS系统是最广泛的攻击检测工具,但是在面临DDOS攻击时,IDS系统往往不能满足要求。
原因其一在于入侵检测系统虽然能够检测应用层的攻击,但是基本机制都是基于规则,需要对协议会话进行还原,但是目前DDoS攻击大部分都是采用基于合法数据包的攻击流量,所以IDS系统很难对这些攻击有效检测。虽然某些IDS系统本身也具备某些协议异常检测的能力,但这都需要安全专家手工配置才能真正生效,其实施成本和易用性极低。
原因之二就在于IDS系统一般对攻击只进行检测,但是无法提供阻断的功能。IDS系统需要的是特定攻击流检测之后实时的阻断能力,这样才能真正意义上减缓DDOS对于网络服务的影响。
IDS系统设计之初就是作为一种基于特征的应用层攻击检测设备。而DDOS攻击主要以三层或是四层的协议异常为其特点,这就注定了IDS技术不太可能作为DDOS的检测或是防护手段。目前的防御算法对所有已知的拒绝服务攻击是免疫的,也就是说,是完全可以抵抗已知DoS/DDoS攻击的。
对于DDOS防御的理解
对付DDOS是一个系统工程,想仅仅依靠某种系统或产品防住DDOS是不现实的,可以肯定的是,完全杜绝DDOS目前是不可能的,但通过适当的措施抵御90%的DDOS攻击是可以做到的,基于攻击和防御都有成本开销的缘故,若通过适当的办法增强了抵御DDOS的能力,也就意味着加大了攻击者的攻击成本,那么绝大多数攻击者将无法继续下去而放弃,也就相当于成功的抵御了DDOS攻击。
DDoS防御的方法总结:
1.采用高性能的网络设备
首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDOS攻击是非常有效的。
2.尽量避免NAT的使用
无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT的使用,因为采用此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使用NAT,那就没有好办法了。
3.充足的网络带宽保证
网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYNFlood攻击,当前至少要选择100M的共享带宽,最好的当然是挂在1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M,这点一定要搞清楚。
4.升级主机服务器硬件
在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,若有志强双CPU的话就用它吧,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,别只贪IDE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用3COM或Intel等名牌的,若是Realtek的还是用在自己的PC上吧。
5.把网站做成静态页面
大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现,看看吧!新浪、搜狐、网易等门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的80%属于恶意行为。
6.增强操作系统的TCP/IP栈
Win2000和Win2003作为服务器操作系统,本身就具备一定的抵抗DDOS攻击的能力,只是默认状态下没有开启而已,若开启的话可抵挡约10000个SYN攻击包,若没有开启则仅能抵御数百个,具体怎么开启,自己去看微软的文章吧!《强化 TC
P/IP 堆栈安全》。 也许有的人会问,那我用的是Linux和FreeBSD怎么办?很简单,按照这篇文章去做吧!《SYN Cookies》。
7.安装专业抗DDOS防火墙
绿盟黑洞: X86架构,Linux内核与自主专利的抗syn-flood算法。对抗单一类型的syn,udp,icmp dos效果很好,但是当多种混合时效果就略差。优点是更新快,技术支持比较好,在100M环境下对syn-flood有绝对优势。缺点是文档和信息缺乏,同时工作(软硬件两方面)不是很稳定。
金盾抗拒绝服务系统:金盾抗拒绝服务系列产品,应用了自主研发的抗拒绝服务攻击算法,对SYN Flood,UDP Flood,ICMP Flood,IGMP Flood,Fragment Flood,HTTP Proxy Flood,CC Proxy Flood,Connection Exhausted等各种常见的攻击行为均可有效识别,并通过集成的机制实时对这些攻击流量进行处理及阻断,保护服务主机免于攻击所造成的损失。内建的WEB保护模式及游戏保护模式,彻底解决针对此两种应用的DOS攻击方式。金盾抗拒绝服务系列产品,除了提供专业的DOS/DDOS攻击检测及防护外,还提供了面向报文的通用规则匹配功能,可设置的域包括地址、端口、标志位,关键字等,极大的提高了通用性及防护力度。同时,内置了若干预定义规则,涉及局域网防护、漏洞检测等多项功能,易于使用。
天网防火墙: 最早基于OpenBSD内核,X86架构,现在应该也是Linux内核了。很早就加入了抗syn-flood功能,实际应该是syn-cache/syn-cookie的改进或加强版。实际测试syn流量64B包抵抗极限大概是25M左右。当小于20M是还是可以看到效果的。同时结合良好的防火墙策略应该也可以做到针对udp/icmp等类型的限制。 一己拙见: 防火墙一般来说还是让它作为自己的专业用途(访问控制)比较好,当然在网络业务不是很重要的生产类企业来说,买个防火墙同时兼有简单的抗syn功能倒也不错。
8.其他防御措施
以上几条对抗DDOS建议,适合绝大多数拥有自己主机的用户,但假如采取以上措施后仍然不能解决DDOS问题,就有些麻烦了,可能需要更多投资,增加服务器数量并采用DNS轮巡或负载均衡技术,甚至需要购买七层交换机设备,从而使得抗DDOS攻击能力成倍提高,只要投资足够深入。
DDOS应付方法
DdoS攻击是黑客最常用的攻击手段,下面列出了对付它的一些常规方法。
1.定期扫描
要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是黑客利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。
2.在骨干节点配置防火墙
防火墙本身能抵御DdoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。
3.用足够的机器承受黑客攻击
这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿了。不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。
4.充分利用网络设备保护网络资源
所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被攻击时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。从而最大程度的削减了DdoS的攻击。
5.过滤不必要的服务和端口
过滤不必要的服务和端口,即在路由器上过滤假IP……只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
6.检查访问者的来源
使用Unicast Reverse Path Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假IP地址方式迷惑用户,很难查出它来自何处。因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。
7.过滤所有RFC1918 IP地址
RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0 和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的攻击。
8.限制SYN/ICMP流量
用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用。
最后为今天的事做个总结:小虫还是那句话,在网络路上想走得长久,走得稳。还是得务实本分,凭真功夫真刀实枪地干。你妒忌别人在百度上排名好,那你就把自己也排上去,耍花招不算大本事,也成不了气候的。因为魔高一尺,道高一丈!没准哪到被收监就更不划算了。