网络通信 频道

DDOS 攻击与检测

  最近黑客对 Yahoo! 、 Amazon 、 CNN 、 ZDNet 和 eBay 等美国著名 Web 站点进行了大规模的拒绝服务攻击 DoS(Denial of Service) 。虽然这次攻击只持续了数小时 , 也没有破坏这些站点的内容 , 然而它的影响却震撼了整个 IT 行业。其实 ,DoS 已经伴随着 Internet 的发展存在多年了 , 大多数防火墙都可以抵挡这种攻击 , 有经验的网络管理员也能够较为容易地跟踪到黑客。与以往常见的 DoS 攻击方式不同的是 , 这次黑客攻击采用了分布式拒绝服务 DDoS(Distributed Denial of Service) 手段。
  
  一、  实施 DDoS 攻击的条件
  
  与 DoS 攻击一样 ,DDoS 也是向被攻击目标连续发送大量伪造的 IP 包 , 数量之大以致于服务器不能够为合法用户提供正常服务。例如 , 这次向 Yahoo! 站点发出的攻击对其路由器发出的无效请求达每秒 1GB 。但与以往常见的 DoS 攻击不同的是 ,DDoS 动员了大量的 - 无辜 - 计算机向目标共同发起攻击。结果是像 Yahoo! 这样的著名 Web 站点也无法轻易恢复正常的服务 , 且肇事者很难被追查到。
  
  为完成 DDoS 攻击 , 黑客首先需要拥有和控制三种类型的计算机。为了描述方便 , 这里使用符号代表这些计算机 :
  
  ● ATTACKER: 黑客本人的主机 , 黑客通过它发布实施 DDoS 的指令。
  
  ● MASTER: 直接受黑客控制的主机 , 但一般不属黑客所有 , 数目通常为 3 ~ 4 台 , 并且在这些计算机上安装上特定的主控制软件 ( 称为 master) 。这类主机类似于战场上的指挥官 , 忠实地执行黑客发出的命令。
  
  ● DAEMON: 它们是被黑客控制但一般并不为黑客所拥有的计算机群。这样的计算机数以百计 , 好似战场上的先头部队。黑客在这些计算机上安装了守护程序 ( 称为 daemon), 运行并产生 DDoS 攻击代码。
  
  显然 , 在组织进行攻击之前 , 黑客必须能够在 Internet 上找到并完全获得某些安全性脆弱计算机的控制权限 , 例如获得 ROOT 权限 , 并让这些受到侵害的主机充当黑客的 MASTER 和 DAEMON 。为此 , 黑客需要借助一系列安全漏洞扫描工具 , 在 Internet 上搜寻存在严重安全漏洞的主机 , 并试图获得这些主机的完全控制权。
  
  随后 , 黑客在这些称为 MASTER 的受控计算机上安装主控制软件 master; 在称为 DAEMON 的计算机上安装守护程序 daemon 。 DAEMON 主机上的守护程序在指定端口上监听来自 MASTER 主机发送的攻击命令 , 而 MASTER 主机接受从黑客的 ATTACKER 计算机发送的指令。为了安全起见 , 黑客要在 MASTER 和 DAEMON 计算机上安装 ROOT KIT 程序 , 使主控制软件和守护程序本身不被 MASTER 和 DAEMON 计算机的管理员发现。
  
  最后 , 黑客只需 TELNET 到 MASTER 主机并给出口令后就可以发出大规模的 DoS 攻击命令。整个攻击的指令流向为 :attacker(s) → master(s) → daemon(s) → target(s) 。攻击过程如图 1 所示。
  
  图 1 DDos 攻击示意图
  
   
  
  二、 DDoS 的通信及检测
  
  到目前为止 ,CERT(Computer Emergency Response Team) 公布了三种 DDoS 攻击工具 :
  
  ● TFN(Tribe Flood Network) 、 TFN2K 和 TFN3K
  
  ● Trin00
  
  ● Stacheldraht
  
  下面以 Trin00 为例 , 介绍其主控制程序 master( 源程序为 master.c, 以下简称 Trin00 master) 和守护程序 daemon( 源程序为 ns.c, 以下简称 Trin00 daemon) 之间的通信。
  
  1. 通信端口
  
  默认情况下 ,ATTACKER 到 MASTER 的通信端口是 :27665/tcp;
  
  MASTER 到 DAEMON 的通信端口是 :27444/udp;
  
  DAEMON 到 MASTER 的通信端口是 :31335/udp 。
  
  黑客要想从 ATTACKER 主机控制任何一台运行 Trin00 master 的 MASTER 主机 , 只需与它的 TCP 端口 27665 建立 TCP 连接。连接建立后 , 黑客必须给出正确的口令。例如 , 黑客要与 IP 地址为 10.0.0.1 的 MASTER 主机联系 , 可以发出如下命令 :
  
  attacker$ telnet 10.0.0.1 27665
  
  Trying 10.0.0.1
  
  Connected to 10.0.0.1
  
  Escape character is ''^]''.
  
  betaalmostdone
  
  trin00 v1.07d2+f3+c..[rpm8d/cb4Sx/]
  
  trin00>
  
  如果黑客已经与这台 MASTER 主机建立了正确的连接 , 当其他人再要试图与该台主机连接时 ,MASTER 就将该请求的 IP 地址发送给黑客。这给黑客充分的时间掩盖其踪迹。
  
  Trin00 master 到 Trin00 daemon 之间的通信通过 UDP 端口 27444 。 Trin00 master 向 Trin00 daemon 发出的的命令也要受到口令的保护。
  
  Trin00 daemon 到 Trin00 master 之间的通信通过 UDP 端口 31335 。
  
  当某一台 DAEMON 计算机的守护程序 Trin00 daemon 运行时 , 首先向控制它的 MASTER 主机发出 -HELLO- 。如果在网段上安装 - 探测器 -(sniffer), 就可以获取这种联络信息。 MASTER 主机运行的 Trin00 master 则向 DAEMON 主机的 UDP 端口 27444 发出命令 -png-, 而 DAEMON 则向 MASTER 的 UDP 端口 31335 回应以 -PONG- 。通过探测器抓到的通信数据包内容分别为 :
  
  UDP Packet ID (from_IP.port-to_IP.port):
  
  10.0.0.1.1024-192.168.0.1.27444
  
  45 E 00 . 00 . 27 '' 1A . AE . 00 . 00 .40 @ 11 . 47 G D4 . 0A . 00 . 00. 01 .
  
  C0 . A8 . 00 . 01 . 04 . 00 . 6B k 34 4 00 . 13 . 2F / B7 . 70 p 6E n 67g 20
  
  6C l 34 4 34 4 61 a 64 d 73 s 6C l
  
  UDP Packet ID (from_IP.port-to_IP.port):
  
  192.168.0.1.32879-10.0.0.1.31335
  
  45 E 00 . 00 . 20 13 . 81 . 40 @ 00 . F8 . 11 . 57 W 07 . C0 . A8 . 00. 01 .
  
  0A . 00 . 00 . 01 . 80 . 6F o 7A z 67 g 00 . 0C . 4E N 24 $ 50 P 4F O 4E N 47 G
  
  2. 如何检测
  
  根据上述 Trin00 的通信端口和通信特点 , 可以采用以下检测办法 :
  
  ①如果计算机上没有安装 ROOT KIT 隐藏工具 , 可以使用 netstat 命令检测 :
  
  #netstat -a -inet
  
  Active Internet connections(servers and establisbed)
  
  Proto Recv-() Send-() Local Address Foreign Address State
  
  top 0 0 *:27665 *:* LISTEN
  
  udp 0 0 *:31335 *:*
  
  这说明该台计算机已经被黑客入侵 , 并正在运行 Trin00 master 。
  
  #netstat -a -inet
  
  Active Internet connections(servers and establisbed)
  
  Proto Recv-() Send-() Local Address Foreign Address State
  
  udp 0 0 *:1024 *:*
  
  udp 0 0 *:27444 *:*
  
  这说明该台计算机上正在运行 Trin00 daemon 。
  
  ②自己编制简单的网络程序
  
  Trin00 daemon 的监听端口是 27444;Stacheldraht 的监听端口是 16660 或 65000 或 65512 。所以 , 只要检查主机的 27444 、 16660 、 65000 或 65512 端口是否开放 , 就可以断定这台主机是否受到了侵害并被黑客安装了 Trin00 或 Stacheldraht 。至于 TFN 的检测要稍微麻烦一些 , 方法是向主机发送 ID 号为 678 的 ICMP 包 , 如果主机回应 ICMP 包的 ID 为 123, 则可以断定这台主机受到黑客的入侵并被安装了 TFN 。检测流程如图 2 、图 3 和图 4 所示。
  
  图 2
  
   
  
  图 3
  
   
  
  图 4
  
  
  
  三、导致大规模 DDoS 攻击的原因
  
  对 Yahoo! 这类著名 Web 站点的成功攻击 , 意味着这种类型的攻击对所有连接到 Internet 的主机都构成了潜在的安全威胁。以往的观念认为 ,DoS 攻击受到黑客计算机出口带宽的限制并且实际上不会对目标计算机的内容产生破坏 , 因此它只不过是普通的骚扰而已。现在看来这种观念应该改变。
  
  1. Internet 上众多计算机存在安全脆弱性
  
  参与这次大规模 DdoS 攻击的主机 ( 即 DAEMONS) 来自加州大学、斯坦福大学、德国和 INTERNET2 上的主机。这些计算机分布地域之广说明 Internet 内在安全问题的严重性。因此 , 要防止这类攻击最根本的是要防止网上计算机被入侵。但目前系统管理员和普通用户维护系统安全能力不一 , 所使用的计算机类型、操作系统等又千差万别 , 不可能都及时安装最新的安全补丁 , 从而使得计算机仍然存在着严重安全漏洞 , 以致黑客可以获得 ROOT 或管理员权限。因此 , 在 Internet 上有严重安全隐患的计算机存在是必然的 , 这些都是使得这种攻击能够成功的重要原因。简单地说 ,Internet 的安全程度取决于 Internet 上最不安全的部分。
  
  另一方面 ,Internet 广大用户甚至系统管理员的安全观念淡薄 , 总认为自己与安全问题离得很远。事实上 , 在这次大规模攻击之前 , 黑客已经在 1999 年 8 月 17 日 , 利用 Internet 上受到侵害的 227 台计算机 ( 其中 114 台来自高速网络 INTERNET2), 对明尼苏达大学的主机进行了 DDoS 攻击 , 致使该主机在两天多的时间里不能使用。但这没有引起人们的足够重视。
  
  不仅如此 , 黑客从 Internet 上开放的资源就可以轻易获得进行攻击的软件。例如 , 上述所提到的三种 DDoS 工具 , 都可以从 Internet 上有关站点免费获得。
  
  2. Internet 协议的设计和实现存在缺陷
  
  Internet 协议的设计和实现上的漏洞使 Internet 本身容易遭受 DoS 攻击。一种 DoS 攻击是利用有漏洞的代码 , 这比较容易防范 , 因为只要在有关站点上更新受影响的软件即可 ; 另一种 DoS 攻击是利用人们在解决某些问题时考虑不周的缺陷实施的 , 例如有限的存储空间、复杂的算法等 , 这也可以通过更新代码加以避免 ; 最严重的 DoS 攻击是利用某些协议的漏洞 , 例如 ,UDP 协议缺乏源地址认证和无连接的特点可以被利用进行 DoS 攻击。 DDoS 攻击就属于最后这一种情况。
  
  3. Internet 开放、互连等优点是把双刃剑
  
  Internet 的开放互连为人们提供了极大的方便。这种情况下 ,Internet 的正常运转要求用户要遵纪守法 , 但显然这只是一相情愿的想法。与公用电话网不同 ,Internet 给予个人太大的权利而没有一个强有力的约束机制。任何人通过学习 Unix 命令和基本的网络知识 , 就能通过 Internet 随意发送任何信息 , 无论是有用的还是恶意的。
  
  互连的特性也成为威胁 Internet 用户安全的一个风险。虽然加密和访问控制等办法可以将绝大多数用户拒之门外 , 但是聪明的黑客可以首先攻击安全防护脆弱的计算机 , 再通过 Internet 的互连性访问真正的目标 , 从而避开了看似绝对安全的防护措施。
  
  四、防范攻击的措施
  
  面对未来可能遭遇的分布式网络攻击 DNA(Distributed Network Attacks), 我国的网络安全工作者应该研制和开发自己的攻击防御方法 , 以阻止 DNA 攻击或削弱其攻击效果。一般情况下 , 可以考虑采用和实施以下防护措施。
  
  1. 使用网络和主机扫描工具检测脆弱性
  
  像 DDoS 这类分布式网络攻击能够成功的关键是在 Internet 上寻找到大量安全防御措施薄弱的计算机。因此 , 经常使用安全检测工具检测网络和主机 , 找出目前存在的安全隐患并给出相应的应对措施 , 可以减少甚至避免主机被黑客利用成为其 DNA 攻击帮凶的可能性。
  
  另一方面 , 安全扫描工具也与反病毒工具一样 , 能够检测并删除主机上被黑客安装的进行 DNA 攻击的软件。反病毒工具随病毒的变种和演化在不断地改进升级 , 安全扫描工具也应如此 , 否则在新品种的 DNA 攻击工具面前只能是形同虚设 , 并且给管理员和广大用户造成本机安全的假象。
  
  2. 过滤进网和出网的流量
  
  网络服务提供商应该实施进网流量过滤措施 , 目的是阻止任何伪造 IP 地址的数据包进入网络 , 从而从源头阻止诸如 DDoS 这样的分布式网络攻击的发生或削弱其攻击效果。要实现这一目标 , 要求所有的 ISP 相互合作 , 共同采取积极有效的防御措施 , 因为如果只是少数 ISP 实施协议过滤 , 几乎不会产生明显的效果。但经验表明 , 多数 ISP 对实施协议过滤持犹豫或观望态度 , 原因是因为如果采取这样的过滤措施 ,ISP 提供的服务性能会受到影响 , 严重时甚至会降低 20% 。不过 ,ISP 也应该意识到这一点 : 要么下决心在改进安全方面投入人力物力 , 相互合作长期受益 ; 要么就不得不付出被黑客攻击的代价。
  
  3. 采用网络入侵检测系统 NIDS 和探测器
  
  当系统收到来自奇怪或未知地址的可疑流量时 , 网络入侵检测系统 NIDS(Network Intrusion Detection Systems) 能够给系统管理人员发出报警信号 , 提醒他们及时采取应对措施 , 如切断连接或反向跟踪等。一般情况下 ,NIDS 的安全策略或规则应该是最新的 , 并包含当前最新攻击技术的特征描述。只有如此 ,NIDS 才能检测出目前最新的攻击行为 , 如 Trin00 、 TFN 或 Stacheldraht 等。
  
  探测器 (sniffer) 可用来在网络级识别网络攻击行为并成为 NIDS 原始检测信息的来源。例如 , 如果黑客修改了 IP 包的数据部分 , 使其包含某些隐蔽信息 , 探测器就可以探测到这些信息并将此信息提供给有关人员进行分析 , 成为采取阻断、分流恶意流量或追查黑客的依据

 

转载地址:http://www.netsp.com.cn/Article/netsafe/attack/200506/20050602134842.html

0
相关文章