浅谈DDoS攻击的类型和防御措施
扫描二维码
随时随地手机看文章
DDoS攻击五花八门,防不胜防,DDoS攻击也有多种途径,拒绝服务曾经是一种非常简单的攻击方式。如何保护自己的网络?最笨的防御方法,就是花大价钱买更大的带宽。
某些主流媒体的新闻报导中提到了关于美国知名银行的一些DDoS攻击事件。这类攻击肯定不是新的,但它们在一定基础上不断地发生,这种情况下,就值得我们注意了,因为这些攻击显然都来自同一地区,并且它们的目标都异常精确。
当然,很多新闻都纯属炒作,说什么黑客如何对我们的金融系统进行黑客攻击和网络攻击的,事实上我们知道真正的DDoS跟这些攻击还是有很大区别的。为此,我们来了解一下DDoS的基本知识和应对大规模攻击的相关配置,这些都很重要。
尽管大型网站经常受到攻击,并且在超负荷的负载下,这些公司和网络仍然要竭尽所能地去转移这些攻击,而且是最最重要是要保持他们的网站能够正常地浏览。即便你管理的是一个小站点,比如小公司或者小型网站这种规模的网络,你仍然不知道什么时候就有人会对你下黑手。那么截下来,让我们一起来看看DDoS“背后”的一些细节和攻击方式,以便于我们能够让我们的网络更加地安全。
DDoS攻击的多种途径
拒绝服务曾经是一种非常简单的攻击方式。有些人开始在他们的电脑上运行PING命令,锁定目标地址,让其高速运转,试图向另一端发送洪水般的ICMP请求指令或者数据包。当然,因为这边发送速度的改变,攻击者需要一个比对方站点更大的带宽。首先,他们会搬到有大型主机的地方,类似有大学服务器或者教研所那样的大型带宽的地方,然后从这里发出攻击。但现代的僵尸网络在任何情况下几乎都能使用,相对来说它的操作更简单,使攻击完全分布开来,显得更加隐蔽。
事实上,因为恶意软件的制造者,僵尸网络的运营已经成为了一条鲜明的产业链。实际他们已经开始出租那些肉机,并且按小时收费。如果有人想要搞垮一个网站,只要给这些攻击者付够钱,然后就会有成千上万的僵尸电脑去攻击那个网站。一台受感染的电脑或许无法把一个站点搞垮,但若是有10000台以上的电脑同时发送请求,它们会将把未受保护的服务器“塞满”。
多种攻击类型用PING命令就可以执行操作ICMP请求,这个请求非常容易造成网络堵塞。DDoS攻击可以通过多种途径来完成,ICMP也只是其中之一。
此外,有一种Syn攻击,发动这种攻击时,实际上仅仅是打开了一个TCP链接,之后通常会连接到一个网站上,但关键是,这个操作并没有完成初始握手,就离开了挂靠的服务器。
另一种聪明的做法是使用DNS。有很多网络供应商都有自己的DNS服务器,而且允许任何人进行查询,甚至有些人都不是他们的客户。并且一般DNS都使用UDP,UDP是一种无连接的传输层协议。有了以上两个条件作为基础,那些攻击者就非常容易发动一场拒绝服务攻击。所有攻击者要做的就是找到一个开放的DNS解析器,制作一个虚拟UDP数据包并伪造一个地址,对着目标网站将其发送到DNS服务器上面。当服务器接收到攻击者发送的请求,将会信以为真,并且向伪造地址发送请求回应。事实上是目标网站接收了互联网上一群开放的DNS解析器的请求与回复,从而代替了僵尸网络的攻击。另外,这类攻击具有非常大的伸缩性,因为你可以给DNS服务器发送一种UDP数据包,请求某一侧的转存,造成一个大流量的回应。
如何保护你的网络正如你所见,DDoS攻击五花八门,防不胜防,当你想建立一个防御系统对抗DDoS的时候,你需要掌握这些攻击的变异形态。
最笨的防御方法,就是花大价钱买更大的带宽。拒绝服务就像个游戏一样。如果你使用10000个系统发送1Mbps的流量,那就意味着你输送给你的服务器每秒钟10Gb的数据流量。这就会造成拥堵。这种情况下,同样的规则适用于正常的冗余。这时,你就需要更多的服务器,遍布各地的数据中心,和更好的负载均衡服务了。将流量分散到多个服务器上,帮助你进行流量均衡,更大的带宽能够帮你应对各种大流量的问题。但现代的DDoS攻击越来越疯狂,需要的带宽越来越大,你的财政状况根本不允许你投入更多的资金。另外,绝大多数的时候,你的网站并不是主要攻击目标,很多管理员都忘了这一点。
网络中最关键的一块就是DNS服务器。将DNS解析器处于开放状态这是绝对不可取的,你应当把它锁定,从而减少一部分攻击风险。但这样做了以后,我们的服务器就安全了吗?答案当然是否定的,即使你的网站,没有一个可以链接到你的DNS服务器,帮你解析域名,这同样是非常糟糕的事情。大多数完成注册的域名需要两个DNS服务器,但这远远不够。你要确保你的DNS服务器以及你的网站和其他资源都处于负载均衡的保护状态下。你也可以使用一些公司提供的冗余DNS。比如,有很多人使用内容分发网络(分布式的状态)给客户发送文件,这是一种很好的抵御DDoS攻击的方法。若你需要,也有很多公司提供了这种增强DNS的保护措施。
若是你自己管理你的网络和数据,那么就需要着重保护你的网络层,要进行很多配置。首先确保你所有的路由器都能够屏蔽垃圾数据包,剔除掉一些不用的协议,比如ICMP这种的。然后设置好防火墙。很显然,你的网站永远不会让随机DNS服务器进行访问,所以没有必要允许UDP 53端口的数据包通过你的服务器。此外,你可以让你的供应商帮你进行一些边界网络的设置,阻止一些没用的流量,保证你能够得到一个最大的最通畅的带宽。很多网络供应商都给企业提供这种服务,你可以与其网络运营中心联系,让他们帮你优化流量,帮你监测一下你是否到了攻击。
类似Syn的攻击,也有很多方法来阻止,比如通过给TCP积压,减少Syn-Receive定时器,或者使用Syn缓存等等。
最后,你还得想想如何在这些攻击到达你网站前就将它们拦截住。例如,现代网站应用了许多动态资源。在受到攻击的时候其实带宽是比较容易掌控的,但最终往往受到损失的是数据库或是你运行的脚本程序。你可以考虑使用缓存服务器提供尽可能多的静态内容,还要快速用静态资源取代动态资源并确保检测系统正常运行。
最糟糕的一种情况就是你的网络或站点完全瘫痪了,你应该在攻击刚刚开始的时候就做好预备方案。因为攻击一旦开始,想要从源头阻止DDoS是非常困难的。最后,你应该好好琢磨琢磨如何让你的基础建设更加合理与安全,并且要着重注意你的网络设置。这些都是非常重要的。