如今,信息技术的发展为人们带来了诸多便利,无论是个人社交行为,还是商业活动都离不开网络。但是,网络空间在创造机遇的同时,也带来了威胁,其中DDoS就是最具破坏力的攻击。经过这些年的不断发展,它已经成为不同组织和个人的攻击形式之一,用于网络中的勒索、报复,甚至网络战争。
在讲发展前,我们先对分布式拒绝服务(DDoS)的基本概念有个大体了解。
其实可以简单理解为:让一个公开网站无法访问。要实现这个目的,方法也很简单:不断地提出服务请求,让合法用户的请求无法及时处理。
随着网络发展,很多大型企业具备较强的服务提供能力,所以应付单个请求的攻击已经不是问题。“道高一尺,魔高一丈”,攻击者就组织很多同伙,同时提出服务请求,直到服务无法访问,这就叫“分布式”。但是,在现实中,一般的攻击者无法组织各地伙伴协同“作战”,所以会使用“僵尸网络”来控制N多计算机进行攻击。
就是数量庞大的僵尸程序(Bot)通过一定方式组合,出于恶意目的,采用一对多的方式进行控制的大型网络,也可以说是一种复合性攻击方式。因为僵尸主机的数量很大而且分布广泛,所以危害程度和防御难度都很大。 僵尸网络具备高可控性,控制者可以在发布指令后,就断开与僵尸网络的连接,而控制指令会自动在僵尸程序间传播执行。
这就像个生态系统一样。对安全研究人员来说,通过捕获一个节点虽然可以发现此僵尸网络的许多僵尸主机,但很难窥其全貌,而且即便封杀一些僵尸主机,也不会影响整个僵尸网络的生存。
正所谓“以史为鉴,可以知兴替”。既然大概了解了DDoS,咱们说说它的历史发展。最早的时候,黑客们大都是为了炫耀个人技能,所以攻击目标选择都很随意,娱乐性比较强。后来,有一些宗教组织和商业组织发现了这个攻击效果,就以勒索、报复等方式为目的,对特定目标进行攻击,并开发一些相应的工具,保证攻击成本降低。当国家级政治势力意识到这个价值的时候,DDoS就开始被武器化,很容易就被用于精确目标的网络战争中。
根据绿盟科技2015年的DDoS态势分析,从全球流量分布来看,中国和美国是DDoS受灾的重灾区。
分布式拒绝服务攻击的精髓是:利用分布式的客户端,向目标发起大量看上去合法的请求,消耗或者占用大量资源,从而达到拒绝服务的目的。
其主要攻击方法有4种:
跟交通堵塞情况一样,大家都应该清楚:当网络数据包的数量达到或者超过上限时,会出现网络拥堵、响应缓慢的情况。DDoS就是利用这个原理,发送大量网络数据包,占满被攻击目标的全部带宽,从而造成正常请求失效,达到拒绝服务的目的。
攻击者可以使用ICMP洪水攻击(即发送大量ICMP相关报文)、或者UDP洪水攻击(即发送用户数据报协议的大包或小包),使用伪造源IP地址方式进行隐匿,并对网络造成拥堵和服务器响应速度变慢等影响。
但是,这种直接方式通常依靠受控主机本身的网络性能,所以效果不是很好,还容易被查到攻击源头。于是反射攻击就出现,攻击者使用特殊的数据包,即IP地址指向作为反射器的服务器,源IP地址被伪造成攻击目标的IP,反射器接收到数据包的时候就被骗了,会将响应数据发送给被攻击目标,然后就会耗尽目标网络的带宽资源。
创建TCP连接需要客户端与服务器进行三次交互,也就是常说的“三次握手”。这个信息通常被保存在连接表结构中,但是表的大小有限,所以当超过存储量,服务器就无法创建新的TCP连接。
攻击者利用这一点,用受控主机建立大量恶意的TCP连接,占满被攻击目标的连接表,使其无法接受新的TCP连接请求。如果攻击者发送了大量的TCP SYN报文,让服务器在短时间内产生大量的半开连接,连接表也会被很快占满,导致无法建立新的TCP连接,这个方式是SYN洪水攻击,很多攻击者都比较常用。
由于DNS和Web服务的广泛性和重要性,这两种服务就成为消耗应用资源的分布式拒绝服务攻击的主要目标。
比如,向DNS服务器发送大量查询请求,从而达到拒绝服务的效果,如果每一个DNS解析请求所查询的域名都是不同的,那么就有效避开服务器缓存的解析记录,达到更好的资源消耗效果。当DNS服务的可用性受到威胁,互联网上大量的设备都会受到影响而无法正常使用。
近些年,Web技术发展非常迅速,如果攻击者利用大量的受控主机不断地向Web服务器恶意发送大量HTTP请求,要求Web服务器处理,就会完全占用服务器资源,让正常用户的Web访问请求得不到处理,导致拒绝服务。一旦Web服务受到这种攻击,就会对其承载的业务造成致命的影响。
在实际的生活中,攻击者并不关心使用的哪种攻击方法管用,只要能够达到目的,一般就会发动其所有的攻击手段,尽其所能的展开攻势。对于被攻击目标来说,需要面对不同的协议、不同资源的分布式拒绝服务攻击,分析、响应和处理的成本就会大大增加。
随着僵尸网络向小型化的趋势发展,为降低攻击成本,有效隐藏攻击源,躲避安全设备,同时保证攻击效果,针对应用层的小流量慢速攻击已经逐步发展壮大起来。因此,从另一个角度来说,DDoS攻击方面目前主要是两个方面:一是UDP及反射式大流量高速攻击,二是多协议小流量及慢速攻击。
国人讲究:工欲善其事必先利其器。随着开源的DDoS工具扑面而来,网络攻击变得越来越容易,威胁也越来越严重。 工具有很多,简单介绍几款知名的,让大家有个简单了解。
LOIC是一个颇受欢迎的DOS攻击的淹没式工具,会产生大量流量,可以在多种平台运行,包括Linux、Windows、Mac OS、Android等。早在2010年,黑客组织对反对维基解密的公司和机构的攻击活动中,该工具被下载了3万次以上。
LOIC界面友好,易于使用,初学者也可以很快上手。但是由于该工具需要使用真实IP地址,现在已经停用。
HULK是另一个DOS攻击工具,这个工具使用UserAgent的伪造,来避免攻击检测,可以通过启动500线程对目标发起高频率HTTP GET FLOOD请求,更可怕的是每一次请求都是独立的,可以绕过服务端的缓存措施,让所有请求得到处理。HULK是用Python语言编写,对获得的源码进行更改也非常方便。
R-U-Dead-Yet是一款采用慢速HTTP POST请求方式进行DOS攻击的工具,它提供了一个交互式控制台菜单,检测给定的URL,并允许用户选择哪些表格和字段应用于POST-based DOS攻击,操作非常简单。
而且,它也使用的是Python语言编写,可移植性非常好。R.U.D.Y.能够对所有类型的Web服务端软件造成影响,因此攻击的威胁非常大。这些工具在保持攻击力的同时还再加强易用性,而免费和开源降低了使用门槛。随着攻防对抗的升级,工具会越来越智能化。
我的导师教过我:DDoS攻击只是手段,最终目的是永远的利益。而未来网络战争将出现更加广泛的、更加频繁的和更加精准的攻击。面对这些攻击来临时,我们应如何应对?
要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备时要尽量选用知名度高、口碑好的产品。并且,假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生时请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。
网络带宽直接决定了能抗受攻击的能力,假若仅仅只有10M带宽的话,无论采取什么措施都很难对抗现在的SYN Flood攻击。所以,最好选择100M的共享带宽,当然是挂在1000M的主干上了。
在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包。而且最好可以进行优化资源使用,提高web server的负载能力。
通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。
将网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,最好在需要调用数据库的脚本中,拒绝使用代理的访问,经验表明,使用代理访问你网站的80%属于恶意行为。
这是目前网络安全界防御大规模DDoS攻击的一种有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址,并且每个节点能承受不低于10G的DDoS攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。
就DDoS防御方面来说,目前主要是两个方面,大流量攻击可以交给运营商及云端清洗,小流量攻击可以在企业本地进行设备防护,这个分界点根据行业及业务特性的不同会有所差异,大概的量级应该在百兆BPS左右。相关的缓解与治理,有兴趣的童鞋可以看看鲍旭华的《破坏之王》,会有不小的启示。
其实,对抗DDoS攻击是一个涉及多个层面的问题,在有的环节,有效性和收益率并不对等。所以需要各方面合作,用户也可以多多听听专家意见,针对攻击事先做好应对的应急方案。有句话说:“god helps those who help themselves。” 翻译过来就是,天助自助者,因此面对DDoS攻击,大家需要具备安全意识,完善自身的安全防护体系才是正解。
随着全球互联网业务的快速发展和云计算的发展浪潮,可以预见到,针对云数据中心的DDoS攻击频率还会大幅度增长,攻击手段也会更加复杂。安全工作是一个长期持续性而非阶段性的工作,所以需要时刻保持一种警觉。此外,网络安全不仅仅是某个企业的责任,更是全社会的共同责任,需要大家共同努力。
本文转自绿盟科技博客
领取专属 10元无门槛券
私享最新 技术干货