最近黑客对 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 攻击 , 致使该主机在两天多的时间里不能使用。但这没有引起人们的足够重视。
不仅如此 , 黑客从 Intern