分布式拒绝服务(DDOS)攻击及防范研究(2)

TFN客户端、主控端和代理端主机相互间通信时使用IC-MP Echo和Icmp EchoReply数据包。针对TFN攻击的基本特性可采用如下抵御策略: ◆ 发动TFN时,攻击者要访问...

  TFN客户端、主控端和代理端主机相互间通信时使用IC-MP Echo和Icmp EchoReply数据包。针对TFN攻击的基本特性可采用如下抵御策略:

  ◆ 发动TFN时,攻击者要访问Master程序并向它发送一个或多个目标IP地址,然后Master程序与所有代理程序通信,指示它们发动攻击。Master程序与代理程序之间的通信使用ICMP回音/应答信息包,实际要执行的指示以二进制形式包含在16位ID域中。ICMP使信息包协议过滤成为可能,通过配置路由器或入侵检测系统,不允许所有的ICMP回音或回音/应答信息包进入网络就可以达到挫败TFN代理的目的,但是这样会影响所有使用这些功能的Internet程序,如Ping。Master程序读取一个IP地址列表,其中包含代理程序的位置。这个列表可能使用如“Blowfish”的加密程序进行加密,如果没有加密,就可以从这个列表方便地识别出代理信息。

  ◆ 用于发现系统上TFN代理程序的是程序td,发现系统上Master程序的是程序TFN。代理并不查看ICMP回音/应答信息包来自哪里,因此使用伪装ICMP信息包冲刷掉这些过程是可能的[9]。

  TFN2k代表TFN 2000版,是Mixter编写的TFN后续版本。这个新的DDoS工具已在原有的基础上大大前进了一步,它也是由两部分组成,即客户端程序和在代理端主机上的守护进程。客户端向守护进程发送攻击指定的目标主机列表,代理端守护进程据此对目标进行拒绝服务攻击。由一个客户端程序控制的多个代理端主机,能够在攻击过程中相互协同,保证攻击的连续性。客户端程序和代理端的网络通信是经过加密的,还可能混杂许多虚假数据包。整个TFN2k网络可能使用不同的TCP,UDP或ICMP包进行通信,而且客户端还能伪造其IP地址。所有这些特性都使发展防御TFN2k攻击的策略和技术非常困难或效率低下。

  TFN2k非常隐蔽,这些手段使得它很难被检测到。因为没有端口号,所以很难探测,即使在正常的基础上使用端口扫描程序也无法探测到用户的系统正被用作TFN2k服务器[10]。目前仍没有能有效防御TFN2k拒绝服务攻击的方法,最有效的策略是防止网络资源被用作客户端或代理端。

  ◆ 只使用应用代理型防火墙,这能够有效地阻止所有的TFN2k通信。但只使用应用代理服务器通常是不切实际的,因此只能尽可能地使用最少的非代理服务。

  Trinoo是发布最早的主流工具,因而功能没有TFN2k那么强大。因为TFN2k使用ICMP所以非常隐蔽,在被攻击的计算机上没有端口可以检测。Trinoo使用TCP和UDP,因而如果在正常的基础上用扫描程序检测端口,攻击程序很容易被检测到。

  Trinoo的工作方式是通过一个远程控制程序和主控(Master)通信,指挥守护进程(服务器程序)发动攻击[8]。对于Trinoo,守护进程驻存在实际进行攻击的系统上,而Master控制守护进程系统攻击者控制了足够数量的傀儡机并在傀儡机上安装配置好DDoS软件,便建立好了Trinoo网络,随时可以进行攻击。

  ◆ Master程序的监听端口是27655,攻击者一般借助Telnet通过TCP连接到Master程序所在的计算机。入侵检测软件能够搜索到使用TCP(类型6)并连接到端口27655的数据流。

  ◆ 所有从Master程序到代理程序的通信都包含字符串“144”,并且被引导到代理的UDP端口27444。入侵检测软件检查到UDP端口27444的连接,如果有包含字符串144的信息包被发送过去,那么接受这个信息包的计算机可能就是DDoS代理。

  ◆ Master和代理之间通信受到口令的保护,但是口令没有加密发送,因此它可以被“嗅探”到并被检测出来。

  一旦将Trinoo代理识别出来,便可按如下方法拆除Trinoo网络:在代理Daemon上使用“Strings”命令,将Master的IP地址暴露出来,与所有作为Master的机器管理者联系,通知它们这一事件。在Master计算机上,识别含有代理IP地址列表的文件,得到这些计算机的IP地址列表,向代理发送一个伪造“Trinoo”命令来禁止代理。通过Crontab文件(在UNIX系统中)的一个条目,代理可以有规律地重新启动。因此,代理计算机需要一遍一遍地被关闭,直到代理系统的管理者修复了Crontab文件为止。检查Master程序的活动TCP连接,这能显示攻击者与Master程序之间存在的实时连接,如果网络正在遭受Trinoo攻击,那么系统就会被UDP信息包所淹没。Trinoo从同一源地址向目标主机上的任意端口发送信息包。探测Trinoo就是要找到多个UDP信息包,它们使用同一来源IP地址、同一目的IP地址、同一源端口,但是不同的目的端口[9]。

  Stacheldraht是另一个DDoS攻击工具,它结合了Trinoo与TFN的特点,并添加了一些补充特征,如加密组件之间的通信和自动更新守护进程。Stacheldraht使用TCP和ICMP通信。对于Stacheldraht,攻击者与主控端交互,同时主控端控制代理端。Stacheldraht在功能上与Trinoo,TFN等细节相近。

  ◆ 同防御TFN攻击类似,不允许一切ICMP回音或回音/应答信息包进入网络,可以挫败Stacheldraht代理。同样地,这样会影响所有要使用这些功能的Internet程序。

  ◆ 代理程序要读取一个包含有效Master程序的IP地址列表,这个地址列表使用了Blowfish加密程序进行加密。代理会试图与列表上所有的Master程序进行联系,如果联系成功,代理程序就会进行一个测试,以确定它被安装到的系统是否会允许它改变“伪造”信息包的源地址。通过配置入侵检测系统或使用嗅探器来搜寻它们的签名信息,可以探测出这两个行为。

  代理会向每个Master发送一个ICMP回音/应答信息包,其中有一个ID域包含值666,一个数据域包含字符串“skillz”。如果Master收到了这个信息包,它会以一个包含值667的ID域和一个包含字符串“ficken”的数据域应答,代理和Master通过交换这些信息包来实现周期性的基本接触。通过对这些信息包的监控,可以探测出Stacheldraht。

  一旦代理找到了一个有效的Master程序,它会向Master发送一个ICMP信息包,其中有一个伪造的源地址,这是在执行一个伪造测试。这个假地址是“3·3·3·3”,如果Master收到了这个伪造地址,在它的应答中,用ICMP信息包数据域中的“spoofworks”字符串来确认伪造的源地址是有效的。通过监控这些值,也可以将Stacheldraht检测出来[9]。

  分布式拒绝服务攻击严重危害着网络安全,如果能时刻保持警惕心理,采取必要的防范措施,一定能将受到攻击带来的损失减到最小。除了进行带宽限制、及时给系统安装补丁、运行尽可能少的服务、封锁敌意IP、使用防火墙等常见措施外一般实施最少权限原则是保持网络安全的关键。此外,安装入侵检测系统、使用扫描工具等手段来探测系统是否被侵入或服务器被用来进行攻击是必要的。

  • 上一篇:DDos仍然是对众多ISP的首要威胁
  • 下一篇:76家企业上电信业务经营黑名单:三大运营商多地