拒绝服务攻击
------------
拒绝服务攻击的英文意思是Denial of Service,简称DoS。这种攻击行动使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提 供正常的网络服务。
以下的图示可解释这类攻击的过程,以及公司、企业应如何加以防范。
“拒绝服务”是如何攻击的
通过普通的网络连线,使用者传送信息要求服务器予以确定。服务器于是回复用户。用户被确定后,就可登入服务器。
“拒绝服务”的攻击方式为:用户传送众多要求确认的信息到服务器,使服务器里充斥着这种无用的信息。
所有的信息都有需回复的虚假地址,以至于当服务器试图回传时,却无法找到用户。服务器于是暂时等候,有时超过一分钟,然后再切断连接。服务器切断连接时,黑客再度传送新一批需要确认的信息,这个过程周而复始,最终导致服务器无法动弹,瘫痪在地。
如何阻挡“拒绝服务”的攻击
阻挡“拒绝服务”的攻击的常用方法之一是:在网络上建立一个过滤器(filter)或侦测器 (sniffer),在信息到达网站服务器之前阻挡信息。过滤器会侦察可疑的攻击行动。如果某种可疑行动经常出现,过滤器能接受指示,阻挡包含那种信息,让网站服务器的对外连接线路保持畅通。
分布式拒绝服务攻击
------------------
分布式拒绝服务攻击的英文意思是Distributed Denial of Service,简称DDoS。
以下是一个典型的分布式拒绝服务攻击网络结构图:
攻击者在Client(客户端)操纵攻击过程。每个Handler(主控端)是一台已被入侵并运行了特定程序的系统主机。每个主控端主机能够控制多个Agent(代理端)。每个代理端也是一台已被入侵并运行另和种特定程序的系统主机。每个响应攻击命令的代理端会向被攻击目标主机发送拒绝服务攻击数据包。
至今为止,攻击者最常使用的分布式拒绝服务攻击程序包括4种:Trinoo、TFN、TFN2K和Stacheldraht。
为了提高分布式拒绝服务攻击的成功率,攻击者需要控制成百上千的被入侵主机。这些主机通常是Linux和SUN机器,但这些攻击工具也能够移植到其它平台上运行。这些攻击工具入侵主机和安装程序的过程都是自动化的。这个过程可分为以下几个步骤:
1、探测扫描大量主机以寻找可入侵主机目标。
2、入侵有安全漏洞的主机并获取控制权。
3、在每台入侵主机中安装攻击程序。
4、利用已入侵主机继续进行扫描和入侵。
由于整个过程是自动化的,攻击者能够在5秒钟内入侵一台主机并安装攻击工具。也就是说,在短短的一小时内可以入侵数千台主机。
几种常见分布式拒绝服务攻击工具的特征
------------------------------------
以下是攻击者常用的分布式拒绝服务攻击工具:
◆ Trinoo
客户端、主控端和代理端主机相互间通讯时使用如下端口:
1524 tcp
27665 tcp
27444 udp
31335 udp
重要提示:以上所列出的只是该工具的缺省端口,仅作参考。这些端口可以轻易被修改。
◆ TFN
客户端、主控端和代理端主机相互间通讯时使用ICMP ECHO和ICMP ECHO REPLY数据包。
◆ Stacheldraht
客户端、主控端和代理端主机相互间通讯时使用如下端口和数据包:
16660 tcp
65000 tcp
ICMP ECHO
ICMP ECHO REPLY
重要提示:以上所列出的只是该工具的缺省端口,仅作参考。这些端口可以轻易被修改。
◆ TFN2K
客户端、主控端和代理端主机相互间通讯时并没有使用任何指定端口(在运行时指定或由程序随机选择),但结合了UDP、ICMP和TCP数据包进行通讯。
对于这几个分布式拒绝服务攻击工具的详细技术分析,请访问中国著名网络安全组织绿色兵团站点(http://www.isbase.com/)。
拒绝服务攻击工具"进化"过程
--------------------------
最容易的攻击方法之一是拒绝服务(Denial of Service)攻击。在TCP/IP堆栈中存在许多漏洞,如允许碎片包、大数据包、IP路由选择、半公开TCP连接、数据包flood等等,这些都能够降低系统性能,甚至使系统崩溃。
每发现一个漏洞,相应的攻击程序往往很快就会出现。每一个攻击程序都是独立的。一个特定的漏洞攻击程序往往只影响某一版本的TCP/IP协议(虽然Mircosoft拥有非常庞大的个人计算机市场,大多数的家庭用户几乎完全没有意识到这些漏洞的存在,也不知道如何得到和使用安全漏洞的补丁程序,多种漏洞攻击方法导致目标系统崩溃的机率相当高。)
拒绝服务攻击程序可从互联网上下载得到,如以下网址:
http://www.technotronic.com/denial.html
http://www.rootshell.com/
接着就是用Unix shell脚本将多种的拒绝服务攻击程序组合到一个工具里。
"rape"就是这样一种工具:
(由"mars"编写,"ttol"改进)
echo "Editted for use with www.ttol.base.org"
echo "rapeing $IP. using weapons:"
echo "latierra"
echo -n "teardrop v2 "
echo -n "newtear "
echo -n "boink "
echo -n "bonk "
echo -n "frag "
echo -n "fucked"
echo -n "troll icmp"
echo -n "troll udp "
echo -n "nestea2 "
echo -n "fusion2 "
echo -n "peace keeper "
echo -n "arnudp"
echo -n "nos "
echo -n "nuclear "
echo -n "ssping"
echo -n "pingodeth "
echo -n "smurf "
echo -n "smurf4"
echo -n "land "
echo -n "jolt "
echo -n "pepsi "
这种工具的优点是允许一个攻击者使用多种攻击方法同时攻击单个IP地址(这增加了攻击成功的概率),但也意味着必须将所有编译好的攻击程序打包好(如Unix的"tar"文件),以方便传输和进行攻击。
在允许使用多种拒绝服务攻击方法的情况下,同时又是一个单一的、更易于保存/传输/和使用的已编译程序,就是类似于Mixter编写的"targa.c"这种程序。Targa程序在一个C源程序中结合了以下多种攻击方法:
/* targa.c - copyright by Mixter
version 1.0 - released 6/24/98 - interface to 8
multi-platform remote denial of service exploits
*/
. . .
/* bonk by route|daemon9 & klepto
* jolt by Jeff W. Roberson (modified by Mixter for overdrop effect)
* land by m3lt
* nestea by humble & ttol
* newtear by route|daemon9
* syndrop by PineKoan
* teardrop by route|daemon9
* winnuke by _eci */
但是,即使是象"targa"这类多种拒绝服务攻击组合工具,一个攻击者在同一时间内也只能攻击一个IP地址。
为了增加攻击的效率,一群攻击者们需要通过IRC频道或电话来保持联系,每一个人攻击不同的系统,以实现团体攻击。这种方法在探测漏洞、入侵系统、安装后门和rootkit的行动中也经常被使用。
即使存在一些使用限制,但至少在两年内,这个工具不断地增加各种攻击程序,形成了一个名为"Denial of Service Cluster"(拒绝服务集群)软件包。"trinoo"工具就是这样一个例子。而在计算机黑客界中也有一个由Mixter编写的类似工具"Tribe Flood Network"(TFN)。
与trinoo只实现UDP攻击相比,TFN支持ICMP flood、UDP flood、SYN flood和Smurf攻击等。这些攻击通过发送ICMP_ECHOREPLY(ICMP Type 0)包命令控制。TFN也使用了与trinoo一样的Blowfish加密算法。