前段时间,分布式拒绝服务破坏了包括维基解密和万事达卡在内的不少网站。只要利用搜索引擎搜索一下,我们就可以了解到相关情况。
维基解密服务器受到的攻击强度是在万兆每秒(Gbps)左右。通常情况下,人们对DDOS的认识是知道它可以利用无用流量占据网络中的所有带宽,导致出现数据拥塞,从而无法进行正常工作的情况。当然,这确实属于DDoS攻击中的一类,不过,这一概念里实际上也包含了可以通过攻击占据服务器资源的其它类型。这就意味着,由于针对的是服务器资源,所以,不管网络带宽有多大,DDoS攻击也是有可能获得成功的。为了真正确保网络不受到类似攻击,互联网连接和服务器都需要进行防护。
通常情况下,DDoS攻击针对的是网络中的TCP/IP基础设施。这些攻击可以分为三种类型:一种是利用TCP/IP协议栈中存在的已知缺陷;一种是针对TCP/ IP的漏洞;最后一种就是尝试并进行真正的暴力攻击。
实际上,现在攻击者甚至不需要利用任何黑客的支持就可以发动拒绝服务攻击。根据ZDNet调查显示,只要8.94美元每小时的价格,就可以从犯罪分子那里租用一张僵尸网络。
利用傻瓜软件就可以发动DDoS攻击的话,为什么还要付费呢?来自系统管理、网络和安全协会互联网风暴中心的消息显示,在这波针对商业公司发起的DDoS攻击浪潮中,人们开始使用低轨道离子加农炮(Low Orbit Ion Cannon,以下简称LOIC),一种开源的DoS攻击工具来对卡或者维萨卡网站的端口进行攻击。使用者要做的事情仅仅就是用鼠标点击一下,攻击就正式开始了。
LOIC是一个功能非常强大的工具。它可以使用大规模的垃圾流量对目标网站实施攻击,从而耗尽网络资源,导致网络崩溃,无法提供服务。关于这起攻击,唯一“有趣”的事情是,推特被用来对攻击过程进行协调。
如果希望了解DDoS攻击是如何进行攻击的话,下面就是我对DDoS攻击技术的全面介绍。
DDoS攻击技术的详尽分析
TCP/IP协议栈实现中存在的漏洞
对于利用TCP/IP协议中存在漏洞进行攻击的模式来说,典型的例子就是死亡之Ping攻击。利用这一漏洞,攻击者可以创建一个超过IP标准最大限制65536字节的IP数据包。当该巨型数据包进入使用存在漏洞的TCP/ IP协议栈和操作系统的系统时,就会导致崩溃。
所有的最新操作系统和协议栈都可以防范采用死亡之Ping模式的攻击,但是,时不时的,我就会发现有人还在运行无法防范死亡之Ping攻击的系统。这种情况告诉我们,大家都应该及时对网络设备和软件进行更新。仅仅因为它依然可以运行,并不等于这样的情况是安全的。
对TCP/IP运行中的漏洞进行攻击的另一种方式是撕毁模式,它利用的是系统对IP数据包分片进行重新组合时间存在的漏洞。由于网络是四通八达的,所以,IP数据包可能被分解成更小的分片。所有这些部分都包含了来自原始IP数据包的报头,以及一个偏移字段来标识里面包含哪些字节来自原始数据包。有了这些信息,在出现网络中断的情况下,被破坏的普通数据包就可以在目的地重新组合起来。而在撕毁攻击中,服务器将遭到来自包含了含有重叠偏移的伪造分片数据包的攻击。如果服务器或者路由器不能忽略这些分片,并尝试对他们进行重新组合的话,就会导致系统崩溃的情况很快出现。但如果系统及时进行了更新,或者拥有可以防范撕毁攻击的防火墙的话,就不用担心这类问题了。
TCP/IP协议中的漏洞
另一种古老而有效的DDoS攻击模式是同步攻击。同步的工作是用来在两个互联网应用之通过协议建立握手。它的实现方法是通过一个应用程序发送一个TCP SYN(同步)数据包到另一个程序来启动会话过程。对应的应用程序将返回一个TCP SYN-ACK(同步确认)包;原始程序接下来就利用个ACK(确认)响应。一旦程序间建立了会话过程,就可以实现协同工作了。
同步攻击的方式是发送大量TCP SYN数据包。每个SYN数据包都会迫使目标服务器产生一个SYN-ACK响应,并等待合适的应答。这样很快就导致在SYN-ACK的背后都积压一堆其他注册的队列。当积压队列爆满,系统就将停止确认收到SYN请求。
如果同步攻击发送的同步数据包中包含了错误的网络源IP地址的话,攻击的效果就会更好。在这种情况下,由于SYN-ACK发送出去后,ACK不再返回。通常情况下,迅速满溢的积压队列就会将合法程序发送的SYN请求结束。
内地攻击就是采用欺骗同步数据包模式攻击的新变种,它可以将网络地址伪装成为来自网络内部的情况。现在,同步攻击针对的似乎主要是防火墙,给管理者制造麻烦。
同样,大部分最新的操作系统和防火墙都可以防御同步攻击。这里有一种简单的方法,可以对防火墙进行设置,以防止所有包含已知错误源网络IP地址的传入数据包。该列表中包含了下列仅在内部使用的保留网络IP地址:10.0.0.0到10.255.255.255,127.0.0.0到127.255.255.255,172.16.0.0到172.31.255.255以及192.168.0.0到192.168.255.255。
但是,如果可以方便地直接摧毁系统,还为什么要担心偷偷摸摸躲在窗后的敌人呢?地址欺骗攻击以及利用用户数据报协议(UDP)过度使用的洪水攻击就属于这样的情况。
在地址欺骗攻击中,攻击者会向路由器发送过量的网际消息控制协议(ICMP) 回送请求数据包,这是一种特殊的ping包。每个数据包的目的网络IP地址也是网络中的广播地址,这会导致路由器将ICMP数据包广播给网络中的所有主机。不用说,在一张大型网络中,这将迅速导致出现大量数据传输堵塞的情况。此外,类似内地攻击,如果黑客将两种模式结合到一起的话,事情就会变得更糟。
防范地址欺骗攻击的最简单方法就是关闭路由器或者交换机的地址广播功能,或者在防火墙中进行设置拒绝ICMP回送请求数据包。管理员还可以对服务器进行设置,这样的话,在遇到发送给广播网络IP地址的ICMP数据包时,就不会进行响应。由于很少有应用需要网络IP地址广播功能,所以这些调整不会对网络的正常运行带来影响。
对于采用UDP洪水模式的DDoS攻击来说,就不是那么容易处理了。原因很简单,类似域名系统(DNS)和简单网络管理协议(SNMP),很多应用都需要UDP协议的支持。在UDP洪水攻击中,攻击者通过欺骗手段连接到系统的UDP 字符发生器服务上,在接受到数据包后,字符发生器将会针对另一台系统发送回送服务包。结果就是,系统之间来自字符发生器的半随机字符泛滥,导致带宽迅速被充满,常规应用的使用受到了影响。
防范UDP攻击的一种方法是禁用或者过滤所有针对主机的UDP服务请求。只要容许被服务型的UDP请求,需要使用UDP或作为备份数据传输协议的普通应用,将可以继续正常工作。
暴力攻击
看起来,有这些多种方法都可以用来阻止DDoS攻击,因此,有人可能会认为这不会比垃圾邮件更难处理。但可惜的是,这种想法是完全错误的。在任何心存不满的人都可以纠集从数百到数万台计算机对网站进行DDoS攻击的时间,防范工作将会是非常困难的。他们所要做的工作仅仅是从网络上对可能存在的信息进行了解,就可以迅速进行所需要的攻击。
类似Conficker的恶意软件将数以十万计的Windows系统变成了潜在攻击者可以使用的武器。由此导致的直接攻击浪潮不会被寥寥无几的防御措施所阻挡。防御者所能依靠的只有服务器,这也是为什么维基解密试图选择亚马逊网络服务或者大量增加网络托管主机的资源才能防止洪水攻击的原因。
我担心,并且确信,在未来会看到更多这种类型的DDoS攻击。随着互联网范围的进一步扩大,越来越多的使用者通过宽带接入,为攻击者提供了更多未受保护的Windows系统来进行控制。更糟的是,在类似低轨道离子加农炮之类工具的帮助下,只要获得一些志同道合朋友的帮助,任何中型网站都可以被摧毁。
请不要忘记,使用这些工具的话,可能会被跟踪,并可能会面临刑事指控。最近,一名大学生就因为利用DDoS攻击工具攻击保守派的网站被判入狱30个月。
不过,即使这样的威胁笼罩在攻击者的头上,我也没有看到丝毫停止的迹象。
DDoS攻击能否防御
在ZDNet 近日进行的一次邮件采访中,赛门铁克新加坡的经理 Ronnie Ng解释说, LOIC 是一种网络压力测试程序,通过对特定网站服务器发送TCP, UDP 和 HTTP请求进行DOS攻击,测试网站负载能力。
大家都知道,如今网络上能下载到各种攻击程序,包括LOIC。Ng说:“能发起这类攻击的程序非常多,其中有些是合法软件,通过简单的搜索就能找到这些程序,但还是要看使用者是否将其用在合法用途上。另外还有很多非法的攻击程序,它们被设计出来的目的就是进行非法活动,通过僵尸网络等方式,这种程序能够实现相当高的攻击效率。”
DDoS攻击并不是什么新形式,而我们常常听到的是,网络罪犯的攻击手段不会总比网络防护手段更先进。
Ng说:“攻击者们总是在不断尝试用各种方法来获取他们所需的信息。这些方法从DoS攻击到利用各种系统漏洞,目的就是入侵目标系统。” 他认为,随着防护技术的不断进步,技术所能提供的最大防护程度也在增加,同时良好的补丁管理机制以及使用者对网络威胁的重视程度不断增加,都能很有效的提高系统安全等级。
但是Ng也表示,虽然能够通过支付费用提高系统的安全等级,但是确保系统不受到DDoS攻击是非常难的。他说:“网店需要审核网关和防火墙规则,确保这些设备能够处理每日都会出现的小规模的攻击,另外还应该有一套应急方案,应对大规模的攻击。类似的策略可以是更严格的包过滤规则,判断何时以及什么样的数据包该被丢弃,以及针对IP地址的规则,当出现明显攻击时将特定的IP地址列入黑名单。”
应用防火墙能否击败DDoS攻击?
网络安全专家表示,随着网络攻击方式越来越狡诈,以网络应用为主营业务的企业应该寻求更好的防火墙对自身进行防护,尤其是针对分布式拒绝服务攻击(DDOS)。
F5 Networks 科技公司总经理Vladimir Yordanov表示,超过80%的网络攻击是针对网络应用程序的,而传统的防护措施,诸如服务器周边的防火墙设备所能起到的防护作用很小。这就是为什么DDOS类的攻击总能成功击溃网站或支付系统的原因。
最近在接受ZDnet采访时,Yordanov解释说:“由于DDoS攻击所采用的访问请求很难与正常访问请求区别开,因此传统的防御系统,比如入侵预防系统或入侵检测系统很难阻挡住DDOS的攻击。”
一般来说,在应用防火墙允许请求进入系统前,会通过发送并响应cookie来判断该用户是否真实,以及该访问请求是否有效。而在最近很多DDoS攻击实例中,比如针对Paypal,MasterCard以及Visa网站所进行的攻击,都是通过僵尸网络中的肉鸡电脑发送的,而这些电脑并不能响应应用防火墙发送的查询请求。
据报道,这一系列网络攻击被称作“Operation Payback”,其目的是声援被羁押的维基解密创始人Julian Assange。而维基解密网站也由于美国和欧洲ISP,网络托管商以及支付供应商的退出而关闭。
作为对Wikileaks和Assange所受遭遇的报复,支持者们动用了超过3000台志愿电脑以及超过3万台肉鸡电脑对PayPal, MasterCard和Visa网站发动了DDoS攻击。
没有傻瓜式的解决方案
Yordanov指出,除了建立应用防火墙,企业能考虑的其它类型的防护手段包括利用ISP过滤非法网络请求后提供给企业接入的“清洁管道”以及采用更高级别的安全协议等。另外,企业还可以对网络协议进行修改,确保所有需要连接到服务器的请求都是预先核准的。
但是,随着技术的不断进步,黑客和网络罪犯们也在尝试各种方法来破坏系统,移动设备接入量的不断增加,加剧了安全人员进行系统防护的难度。 Yordanov认为,员工的分散程度越大,企业网络收到攻击的风险也就越大,因为很多网络罪犯正是利用了这种分散办公模式中存在的安全漏洞。
Yordanov表示,没有什么傻瓜式的解决方案能够百分百的安全,而能够想到的傻瓜式解决方案就只有关闭系统电源了。
他说:“与其看着系统被攻击,更好的办法就是彻底关闭系统。在以前,如果网管能够追踪IP地址,找出DDoS攻击的发源地,他们就可以将发源地的IP地址段列入黑名单,但这仅限于静态IP地址。而现在,越来越多的攻击采用变化频繁的地址,使得这种黑名单的方式也失效了。”
而Yordanov也提到了另一种不必关闭系统的方法,就是派人不断地监控网络流量,但是这需要大量的网络技术人员,并不适合中小企业。
尝试阻止DDoS攻击
度过了一个欢乐的春节假期,回来后发现网站挂了。估计这是所有系统管理员最不想看到的一幕。我在文章标题里很谨慎的用了“尝试”这个词,因为实际上,正如上面所说,目前还没有什么有效的方法能够真正预防或阻止大规模的DDoS攻击。不过还是有一些方法可以帮助我们应对DDoS攻击的。
注意,确实有一种方法可以终结大多数DDoS攻击。这需要所有基于Windows的僵尸网络都与根系统脱离。遗憾的是,这是不可能发生的。
Windows在设计时就被认为是不安全的系统,而目前世界上有数亿人在使用这一系列平台系统,其中很多人甚至连杀毒软件都不知道装一个。全球有数百万台安装有windows系统的电脑目前处于不同的僵尸网络控制下,甚至你的电脑也在其列。由于大部分人还不愿意抛弃windows系统,尤其是最近一两年,因此在僵尸网络驱动下的DDoS攻击仍然将会持续下去,并且我认为DDoS攻击将会越来越普遍。
不过,有些类型的 DDoS攻击已经越来越少见了。美国国土安全部网络和架构安全项目主管Sean Donelan 在North American Network Operators Group (NANOG,一个致力于建立骨干网和企业网络的组织)上的一封邮件里表示,“随着大部分路由器操作系统的升级,由SMURF发起的DDoS攻击看似已经有所缓解了。而随着SYN Cookies或类似操作系统的改变,使得由TCP SYN发起的DDoS攻击也看似得到了缓解。”
一句话,如果你将网关服务器,交换机,防火墙和其他网络设备都更新到了最新的操作系统版本,那么就可以抵御这些利用TCP/IP 和 TCP/IP 堆栈的弱点所发动的DDoS攻击。我相信大部分网管应该都已经这样做了,如果你还没有及时更新设备OS,那么立即去做。
当然,如果有人蓄意要攻击你的网站,那你所能做的防御措施也不多。德国网络安全公司Probe Networks的创始人Jonas Frey认为,面对DDoS攻击,网站的应对策略只有加大带宽。Frey解释说:“就算你的网站采用了 802.3ba with 40/100 Gbps (每秒GB级的吞吐量),仍然不够用。因为如今的消费者所使用的终端带宽也比以往增加了,而通过恶意软件也可以轻松的建立一个有一定规模的僵尸网络。就算用户的平均带宽不超过2Mbps(每秒吞吐量)的上传带宽,那么整个僵尸网络中所有终端所发送来的数据流量也是惊人的。”如果所有windows系统都正确安装了补丁和杀毒软件,可能这种攻击会少一些,但是正如Frey所说的:“系统能打补丁,愚蠢的头脑不行。”
所以说,要为你的Web服务器留出尽量多的带宽。如果你使用的是Web服务器托管服务,那么就要检查一下托管商接入骨干网的数量和带宽。如果只有连接到一个或者两个骨干网,或者每个连接所提供的带宽太小,那么最好换别家试试看。在面对DDoS攻击时,最有效的抵抗方法就是增加带宽。
选播及负载分享
如果你的公司将网站存放在多个服务器上,那么可以通过使用选播和多播源发现协议(MSDP)帮助你抵御DDoS攻击。
选播是一种联网技术, 互联网上不同的位置可以拥有相同的IP前缀。用大家能理解的话来说,就是采用相同域名的不同服务器共享相同的IP地址。
当网站采用选播方式并被正确配置后,发生DDoS攻击时会出现这样的情况:网络收到页面请求,交换机检查距离最近的服务器是否正常工作,如果服务器由于DDoS攻击而没有正常工作,选播机制将自动将页面请求转发给下一个服务器。因此,如果你的服务器位于纽约,旧金山和伦敦,而DDoS攻击是来自美国东海岸的一个僵尸网络,那么DDoS攻击所带来的数据负载,将被自动分配给这几个服务器。
选播,或者其他负载分享技术并不能提供完美的防护能力。因为一次足够大规模的DDoS攻击可以将参与负载分享的所有服务器搞垮,就好像多米诺骨牌一样。这可不是件好事。
很多公司,比如 Arbor Networks, BlockDOS, 和 ServerOrigin,都提供DDOS防护服务,但是他们也不能提供完美的服务承诺。
而这些 DDOS 防护公司,比如刚才提到的BlockDOS和ServerOrigin,就是提供分布式服务器,利用选播技术为企业网络服务器提供攻击转移服务。如果你的网站没有优秀的管理员或没有足够好的服务器托管商帮你进行负载共享,你就需要这两家公司的服务了。 Arbor则是提供实时的网络分析服务器,这样你就能及时看到DDoS攻击波的到来,并在该公司的帮助下实施相应的防御。
在目前这种网络环境下,我们再尽力也只能这样了。正如Arbor Networks公司首席解决方案专家Roland Dobbins 所说的:“DDoS攻击只是表象,真正的问题根源是僵尸网络。”而僵尸网络的问题,不是一时半会儿就能彻底解决的。