在最近一连串由于关闭文件共享网站Megaupload而引发的报复性攻击之后,Anonymous的拒绝服务“大炮”已经大大减少了后期发射炮弹的数量。
虽然Anonymous组织的成员打算在2月28日攻破国际刑警组织的网站(主要是通过使用网络版的“低轨道离子炮”拒绝服务工具),并且已经破坏了一些脆弱的网站(包括最近大多数隶属于Panda Security的网站),要攻击更大目标的威胁并未能实现。有人认为该组织最大胆的计划——试图令互联网整个的域名系统(DNS)瘫痪——现在被该组织成员称为“巨人”。
但这并不意味着更有针对性的基于DNS攻击的拒绝服务攻击的威胁消失了。由于对当前的拒绝服务工具颇为失望,Anonymous的成员正在开发下一代的攻击工具,出了其他选项之外,它将把DNS本身当成一种武器。
#p# 放大器
一种扩大和隐蔽性的技术,叫作DNS放大,它是Anonymous的主要手段。DNS放大劫持互联网全球地址簿的一个组成部门,把一个从攻击机发送的相对较小的请求转变成大量数据发送到目标机器上,可能造成每秒几十或几百G的网络拥堵,且不会暴露攻击源头。它之所能够如此,全是因为使用一种在至少2002年就已被得知的脆弱的DNS服务造成的。
DNS系统是有层次组织起来的。在层次结构的顶部是“根”域名服务器。这些服务器包含了可以找到下一层次域名服务器的所有信息,如“.com”,“.org”和“.uk”之类的。按顺序,这些域名服务器包括了下一层的信息,因此“.com”域名服务器提供了可以找到“arstechnica”域名服务器的信息。之后“arstechnica”域名服务器就可以提供实际的从一个描述性的名字到一个以数字表示的IP地址的映射。
做一次DNS查询需要访问所有这些不同的层次。有两种DNS解析的方式(一种软件查找DNS条目,它可以是一台客户机上的独立存在,也可以成为DNS服务器的一部分)可行:迭代模式和递归模式。在迭代模式下,解析器首先在根域名服务器下查询顶级域名服务器,然后在顶级域名服务器下查询二级域名服务器,等等。解析器直接与不同的域名服务器联系,一个接一个,直到它要么找到了它需要的应答,要么因为应答不存在而放弃。
在递归模式中,解析器的工作是非常简单的:它询问一个域名解析服务器的全称,然后把它交给服务器,代表它来执行所有必要的要求(无论是递归或迭代)。
所有牵涉其中的服务器都有广泛缓存;许多请求都由存储在缓存中的信息受理,而不必每次在一个机器想知道比如“google.com”时都要查询其它服务器。
通常情况下,DNS解析器内建于客户操作系统中,让域名服务器(通常由互联网服务提供商提供)代表它们来进行递归查询。在这些服务器完成查询之后,再来满足通常地迭代请求。
这里就是问题所在。对于一个DNS查询的回应可以大大超过查询本身。在最好(或最坏)情况下,只有十几个字节的查询可以请求一个域名内的每个名字,并收到成百上千字节的回应。发送到DNS服务器每个请求都有一个源地址——一个回应要发送到这的IP地址——但是这些源地址可以被伪造。那样的话,从一个IP地址发来的请求却被DNS服务器当成是由另一个不同地址发送来的。
利用这两种方式——小的请求却返回大量数据的递归查询,和伪造源地址——攻击将得以实现。攻击者首先找到一个被配置成递归查询的服务器,然后他向服务器发送大量请求,伪造源地址,另服务器认为受害目标计算机正在发送请求。这些请求中的每一个都会被选中,因此它将产生大量回应,远远大于查询自身。之后,服务器将把这些大量回应发送给受害计算机,使之被大量数据瘫痪。请求和回应之间的大小差距是这些攻击被称为“放大”攻击的原因。
虽然共识是公开访问的DNS服务器应该关闭递归查询,这是为了避免类似问题,但现实是,不是所有服务器都这样做。有了足够的使用递归的服务器,大量的数据拥堵就会被这些相对轻微数量的查询制造出来。
#p# 攻击者的好处
一份由贝勒大学的Randal Vaughan和以色列安全顾问Gadi Evron于2006年DefCon安全大会上提交的论文(PDF)列举了2005年末和2006年初一系列的DNS放大攻击——包括一起对互联网服务提供商Sharktech,收到“高达10Gbps并且使用了140,000个有漏洞的域名服务器”的海量攻击。根据目标服务器的数量和网络容量, 假设Anonymous的攻击可以数倍于那个数量是合理的。
正如Vaughan和Evron所写,“一个包含60字节请求的DNS查询可以得到超过4000字节的应答,回应数据包被放大了60倍。”
在一个被SecureWorks的Don Jackson描述的攻击变种中,查询简单地向服务器请求“root hint”:域名服务器中“.”域名的地址,互联网根DNS服务器的源头。因为有数量众多的根域名服务器,还因为实施了DNS-SEC为根域名服务器加入验证数据,每次请求返回的数据比查询包大出约20倍。
由于通过伪造报头采用UDP攻击隐藏源头是可能的,还因为它在攻击端需要相对较少的带宽,因此DNS放大攻击对像Anonymous这样的组织来说有明显的好处。虽然攻击者们不能使用Tor anonymizing网络(Tor不会造成UDP拥堵),他们仍能使用各种VPN来为安全造成隐患。
除了一次DNS放大攻击可以产生的大量数据外,攻击者还能从技术上获得其他好处。DNS放大攻击依赖于UDP,一种“无连接的”协议,数据包通过它发送到目的地不需要进行“握手”甚至是任何保险。因为没有所谓的协调(也由于DNS数据通常不是由应用程序防火墙或其他系统过滤的),这不是一种很容易预防的攻击。
#p# 有什么能做的吗?
重新使用Smurf
在某些方面,DNS放大攻击类似于“smurf”拒绝服务攻击,在上世纪90年代更常见。“Smurf”攻击用伪造地址的封包——带有互联网控制报文协议(ICMP)广播ping请求。但是“smurf”攻击可以通过设置路由器和电脑系统而停止。只要把它们设置成不应答广播或ping请求即可,并且不要这些发送给其他系统。
但是DNS放大攻击更狡猾。在与Ars的电子邮件采访时,Vaughan说,伪造的报头在可预见的未来仍是一个问题。互联网工程任务组提出一个方法,用来“入口过滤”数据包,被称为BCP 38,它将阻止像DNS放大攻击这样的伪造流量。但这一提议自2000年首次提出以来一直没有进展。
“BCP 38在未来十年不会实施”,Vaughan说,“除非其他压力导致紧急情况采取这项措施。”
对付DNS放大的最佳措施是需要在DNS服务器端着手——但那通常在目标控制之外。DNS服务器可以被设置成不回应“.”查询或者作出简短回应,两者都能减少或消除放大问题。DNS服务器的管理员也可以尝试限制授权用户的DNS请求,或者限制他们通过UDP接收请求的数量。但在性能上有取舍,而且做这些事情是域名服务器管理员工作之外的事。
操作全球巨人
考虑到最近由在巴基斯坦自称为Anonymous成员的一人发布的一个文档之后,DNS放大攻击的浮现。文档中扬言“Operation Global Blackout”,一项对互联网根DNS服务器发起的攻击。攻击的计划是对一个预先备好的清单上的递归DNS服务器使用大量DNS请求,用“伪造的”IP地址使之看上去好像它们是由根服务器发出的;这次攻击被描述为针对整个DNS体系,让整个网络彻底瘫痪。
这其中的原因之一是“任播法”——一种路由修改方法,允许同一DNS服务器上的多个版本表面上驻留在相同的IP地址上,使流量路由到最近的系统。由于攻击者只关注每个根服务器的IP地址,它们将被路由到由初始机器开始跳转最少的服务器上。更重要的是,根域名服
务器的可用带宽是巨大的,减少任何对根服务器DoS攻击的可能性将严重影响他们的行动。即使那样,根服务器也必须在受到ISP的DNS服务器停运影响前脱机几天。
在攻击文档发出后不久,Anonymous的成员否认这是一个出于善意的行动。有人称其为“巨人”,说公布的实施攻击的工具不是真的,或者说它的目的为收集使用者身份信息的(就像去年黑客TheJester制作的臭名昭著的Anonymous的DHN攻击工具一样)。在二月底,一批
Anonymous IRC管理员进入#opglobalblackout聊天室并把它关闭了,重新定向到一个叫#opglobalnig---out的聊天室。
正在筹备中
不过,这并不意味着Anonymous对DNS放大攻击不感兴趣。虽然该组织正在推动一个30天的抵制版权内容的行动,作为部分成员所称的黑色三月行动的一部分,但仍有沉重打击内容提供商的意愿。但推动这种类型的攻击需要的复杂程度超出了一般的Anonymous的“积极分子”的能力,它们一般就是依靠可下载的一些相对简单的工具用于攻击。
这些攻击者是有用的,因为Anonymous需要大量的参与者。让这些缺乏经验的人来安装虚拟机软件和如Backtrack的渗透工具Linux需要一定的技术支持,即使是最有耐心的专家志愿者也不能提供。Windows自己的网络驱动不允许伪造要发送的数据包,所以做任何像是DNS放大这种的伪造报头的攻击都需要一个特制的操纵网络流量的驱动(如WinPcap数据包捕获库)。而且,软件通常用于这类攻击,比如Hping封包分析工具,往往是面向命令行操作的。
考虑到Anonymous目前大多数用户的DDoS工具经常对他们自己拒绝服务甚于他们的目标。“人们似乎无法理解任何事情”,在一次IRC对话时,一个Anon对Ars谈到,关于组织成员试图在TOR网络使用高轨道离子炮而之后又抱怨它如何之慢。
一些Anonymous成员正打算用一种新的工具,那“非常好使(由于我们一些使用者的情况)”,一个成员告诉Ars。这个想法是制作一些像LOIC工具的东西——但没有LOIC的缺陷。新的工具(如果成功的话)将结合WinPcap库和“hive mind”远程控制(一个通过给客户端
传送配置信息和协调攻击的用于Anonymous成员的系统),带有一套攻击,包括DNS放大,使用伪造地址的IP洪水攻击和一种像是用于Slowloris的那种“慢发送”攻击。
现在,这个工具仍然只是一个概念。截至2月中旬,Anonymous成员才开始真正为它编写的代码。而且代码现在写没写好还不好说,因为该项目的一个开发者是黑客Avunit,原LulzSec成员,他最近告诉Ars他要离开Anonymous。同时,Anonymous更复杂的攻击可能被局限于更精明的成员所能处理的问题上,而大家都放弃了方便执行的HOIC攻击。