维普资讯 http://www.cqvip.com 第28卷yot.28 ・第6期 趣6 计算机工程 2002年6月 JuHe 2002 Computer Engineering 基金项目论文・ 文章编号:1000--3428(2002)06—0063—03 文献标识码:A 中图分类号:TP393.08 分布式拒绝服务攻击研究 陈波 f南京师范大学计算机系,南京2 l 0097) 摘要:对分布式拒绝服务攻击的原理,PJ, ̄Trinoo、TFN2k两种典型的分布式拒绝攻击工具进行了分析,并提出了检测方法。给出了应用 常见软、硬件的防范方法,以及一个拒绝服务监控系统的设计方案。 关键词:TCP/IP;分布式拒绝服务;网络攻击;网络安全 Research 0n Distributed Denial of Service Attack CHEN Bo (Dept.ofComputer Science,Nanjing Normal University,Nanjing 210097) [Abstractl The principles ofdistributed denial of service attack and the typical attack tools:Trinoo and TFN2k are analyzed.Then detection measures are proposed.It also gives the c0untermeasures using software and hardware ordinarily。and design project of SUpervising denial 0f service attack. 【Key wordsl TCP/IP;Distributed denial ofservice(DDoS);Network attack;Network security 1 DDoS攻击原理 “分布”是指把较大的计算量或工作量由多个处理器或 多个节点共同协作完成。DDoS攻击就是攻击者控制大量的 攻击源,然后同时向攻击目标发起的一种拒绝服务攻击。一 非常灵活,发布命令的时间短而隐蔽,难以定位,而且攻击 者所用的协议都是一些非常常见的协议和服务,系统管理员 就难以区分恶意请求和正常连接请求,从而无法有效分离出 攻击数据包。 个典型的分布式拒绝服务攻击网络结构如图1所示。 2攻击工具及攻击检测 现在常见的DDoS攻击工 具有:Trinoo,TFN及其改进 版TFN2K和Stacheldraht等几 种,采用的主要攻击方法是利 用TCP/IP协议中的漏洞,如允 许碎片包、大数据包、IP路由 选择、半打开TCP连接、数据 包flood等,这些都会降低系统 性能,甚至使系统崩溃。Unix ●——— 表 、控制信息 ———和Linux平台的主机一般都能被 图1分布式拒绝服务攻击网络结构 ’衷 ^侵信 用于此类攻击,而且可以容易 地将这些攻击工具移植到其它 系统平台上。 2.1 Trinoo分析 2.1.1 Trinoo的组成与原理 攻击的过程一般可分为以下几个步骤: (1)探测扫描大量主机以寻找可入侵主机;(2)入侵有安全漏洞 的主机并获取控制权;(3)在每台被入侵主机中安装攻击所用的程 序:客户进程或守护进程;(4)向安装有客户进程的主控端主机发出 命令,由它们来控制代理主机上的守护进程进行协同入侵。 Trinoo的攻击主要通过3个部分实施: (1)攻击端:这不是trinoo自带的一部分。攻击端对主控端的远 程控制通过27665/TCP端13建立TCP连接实现, ̄Telnet等,输入默 真正的攻击者一旦将攻击的命令传送到主控端主机,攻 击者主机就可以关闭或脱离网络,而由主控端主机将命令发 布到各个代理主机上,这样攻击者可以逃避追踪。每一个攻 击代理主机都会向目标主机发出大量的服务请求数据包,这 些数据包有的经过伪装,无法识别它的来源,而且这些包所 认密码“betaalmostdone”后,即完成了连接工作,进入攻击控制可 操作的提示状态。 (2)主控端客户进程(master):在正确输入默认密码gOraveU ̄", masterffp成功启动,它一方面侦听端口3l335,等待攻击守护进程的 HELLO包,另一方面侦听端口27665,等待主控端客户进程对其的 基金项目:国家“863”应急项目基金资1 ̄(301—7—81 国家信息产业部 网络安全基金资助项目(200l一研l一043) 作者简介:陈波(1972~),男,讲师、硕士,研究方向:网络系 统安全技术的研究与应用 收稿日期:2001—08.15 请求的服务往往要消耗较大的系统资源, ̄ICPU或网络带 宽。如果数百台甚至上千台攻击代理主机同时攻击一个目 标,就会导致目标主机网络和系统资源的耗尽,还可能阻塞 目标网络的防火墙和路由器等网络设备,进一步加重网络拥 塞状况,造成目标主机无法为用户提供任何服务,甚至导致 系统崩溃。DDoS攻击难以对付,是因为真正攻击者的位置 维普资讯 http://www.cqvip.com 连接。当攻击端连接成功并发出指令时,master所在主机将向守护 进程ns所在主机的27444端口传递指令。 (3)代理端守护进程(ns):ns是真正实施攻击的程序,它一般和 客户进程master所在主机分离。ns运行时,会首先 ̄master所在主机 的31335端口发送内容为HELLO的UDP包,标示它自身的存在,随 后守护进程即处于对端口27444的侦听状态,等待master攻击指令的 到来。 2.1.2 Trinoo的主要特征 下面是通过用Sniffer捕获的数据包进行分析的结果。 (1)在默认情况下的通信端口是:攻击端到主控端27665/TCP; 主控端到代理端27444/UDP;代理端到主控端3 1 335/UDP。 (2)主控端向代理端的27444/UDP端口发出“png”命令,发出 的命令中含有缺省的口令字符“144adsl”,之后,代理端会向主控 端的31335/UDP端口回应带“PONG”的字符串。 (3)代理端守护进程启动后,向主控端客户进程发有”*HELLO*” 的UDP包。 2.1.3 Trinoo的攻击实例 设master所在主机masterhost:l】.22.33.44;ns被植入3台 主机里,clientl:1 1.1 1.1 1.1 1,client2:22.22.22.22,client3:33. 33_33.33;目标主机victim IP为:12.23.34.45。 步骤1:解开压缩包后,在ns c中写入主控端主机IP: char*master[1={”1 1 22 33 44”,NULL};然后进行编译、安装。 步骤2:在master所在主机启动master。 masterhost#/master<Enter> ??gOrave(输入密码gOrave后master成功启动) trinoo v1.07d2+f3+c fMar 20 2001:14:38:49】(连接成功) 步骤3:在clientl、2、3上分别执行ns,启动守护进程。 步骤4:攻击端执 ̄telnet。 attackers telnet 1 1 22 33 44 27665<Enter> Trying ll 22 33 44 Connected to 1 1_22 33 44 Escape character is 1’ Betaalmostdone<Enter>(输入密码) trinoo vl 07d2+f3+c『rpm8d/cb4Sx/1 trinoo>(进入提示符) trinoo>roping<Enter>(首先检测一下各个攻击守护进程是否成 功启动) mping:Sending a PING to every Bcasts trinoo>PoNG 1 Received from 11 11 11 11 PONG 2 Received from 22.22 22 22 FONG 3 Received rfom 33 33 33.33(成功响应) trinoo>mtimer 60<Enter>(设定攻击时间为60s) mtimer:Setting timer on beast to 60 步骤5:进行攻击 trinoo>dos 1 2 23 34 45<Enter> DoS:Packeting 12 23 34 45… 此时ping l2.23.34.45,会得到icmp不可到达反馈,目标 主机此时与网络的正常连接已被破坏。 2.1.4 Trinoo的检测 可以采用以下检测办法。 (1)使用netstat命令检测网络连接状态;使用lsof_T_ 列出系统 中所有打开的文件,并且显示它们是被哪些进程打开的;使用egrep 命令搜索多个目标模式。假设没有使用root kit隐藏进程,已经被黑 客入侵的主控端会显示出以下网络套接字特征(当然程序的名称和 路径名会有所不同): netstat.a.inet Active Interact connections(servers and established) ~64一一 Proto Recv.Q Send—Q Local Address Foreign Address State tcp 0 0 :27665 LISTEN udp 0 0 :31335 lsof Iegrep”:3 1 335f:27665” master 1292 root 3u inet 2460 UDP :3 1 335 master l292 root 4u inet 246l TCP :27665(LISTEN1 而运行了Trinoo守护进程的系统会显示以下特征: netstat.a.inet Aclive lntemet connections(servers and established) Proto Recv.Q Send-Q Local Address Foreign Address State udp 0 0 :1024 udp 0 O :27444 lsof Iegrep”:27444” 、ns l 3l6 root 3U inet 2502 UDP :27444 (2)编制程序进行主动轮询检测,即每隔一段时间向待检测主机 发送特定的UDP包,根据得到的回应判断该机是否被安装了 Trinoo。程序流程如图2。 图2 Trinoo检测流程 2.2 TFN2K分析 2.2.1 TFN2K的组成与原理 (1)主控端上的客户进程(fin):主控端通过随机使用TCP, UDP,ICMP数据包向代理端主机发送攻击指定的目标主机列表。 (2)代理端上的守护进程(Id):代理端根据接收的命令向指定目 标主机进行拒绝服务攻击。 由一个主控端控制的多个代理端主机,能够在攻击过程 中相互协同,保证攻击的连续性。 2.2.2 TFN2K的主要特征 (I)主控端通过随机使用TCP,UDP,ICMP数据包向代理端主 机发送命令。对目标主机采用的攻击方法包括TCP/SYN,UDP. ICMP/PING或BROADCAST PING(SMURF)数据包flood等。 (2)主控端与代理端之间数据包头信息是随机的,只有1CMP总 是使用类型0(ECHO REPLY)的数据包。 (3)与TFN以及其它一些攻击工具不同,TFN2K的守护进程是完 全沉默的,它对接收到的命令不作任何回应。主控端客户进程将每 一个命令重复发送2O次,并且认为守护进程至少应该能接收到其中 的一个。 (4)命令数据包可能混杂许多发送到随机IP地址的伪数据包。 维普资讯 http://www.cqvip.com (5)所有命令不是基于字符串的,而是采用“+<id>+<daIa>”格 式,其中<id 表示某个特定的命令,<data>表示该命令的参数。命 令都经过.(CAST,256算法(RFC 2612)加密。加密关键字在编译程序 时定义,并作为运 ̄3TFN2K客户端进程的口令。 (6]所有加密数据在发送前都被编 ̄ ̄(Base 64)成可打印的ASCII 字符,FFN2K守护程序接收数据包并解密数据。 f7)守护进程为每一个攻击产生子进程。 (8)TFN2K守护进程试图通过修改argv[01内容(或在某些平台中 修改进程名)以掩饰自己。伪造的进程名在编译时指定,因此每次 安装时都有可能不同。这个功能可以使TFN2K伪装成代理端主机的 正常进程。所以,如果只是简雌地检查进程列表未必能找到TFN2K 守护进程(及其子进程)。 (9)来自每一个客户或守护进程的所有数据包都可能是伪造的。 2.2-3 TFN2K攻击实例 以一台主机作为主控端,一台名为sample.edu的主机作 为代理端,q, ̄TFN2K软件包拷贝 ̄ZJwsample.edu主机的/tmp目 录下,然后输入make命令来编译安装。完成后,产生两个 可执行文件:td; ̄lltfn。直接运行td命令来启动TFN2K守护进 程,并把tfn拷回到主控端主机中。在主控端用如下命令向 目标主机、、 WW.victim.corn发起一次标准的UDP lfood攻击: Ifh-h sample edu-C 4-i、vww victim corn<Enter> Protocol:random SourcetP random Ctientinput:singlehost Command commenceudpflood Passwordveriifcation:f输入刚才编译时输入的密码) SendingOuIpackeIs:. 这里只使用了一个TFN2K守护进程进行攻击。如果攻 击目标不是特别脆弱的话,一般不会造成太大的损害。但是 如果同时控制了多台安装过TFN2K守护进程的主机,然后 把这些主机的名字添加到hosts文件里,再用如下命令,攻击 目标将同时遭受到多台主机的猛烈攻击而瘫痪。 tfh.f hosts.C 4.i W'W ̄V victim corn<Enter> 2.2.4 TFN2KftJ ̄检测 有效防御TFN2K攻击是很困难的。因为攻击过程中所 有的控制通信都是单向的,而且攻击随机使用TCP,UDP ̄I ICMP数据包,并进行加密,因此数据包过滤和其它被动式 防御策略都没有明显的效果。况且伪造的数据包更会增加追 踪参与拒绝服务攻击代理端主机的难度。不过,我们在攻击 实验环境中采用的以下TFN2k攻击防范与检测方法取得了较 好的效果。 (1)禁止不必要的ICMP,TCP ̄IUDP通信,如果不能禁止ICMP 协议,那就禁止主动提供的甚至所有的ICMP类型0数据包;禁止不 在允许端口列表中的所有UDP ̄IITCP包。 (2)对客户端程序(tfn)l ̄ll守护程序文件(Id)的简单搜索也可能会 找到TFN2K。虽然它们的文件名可以随意修改,但客户端程序和守 护程序包含许多特征字符串,可以作为搜索的关键字 。 (3)检查ICMP类型0数据包的尾部是否含有连续的0x41。因为程 序作者为了使每一个数据包的长度变化而填充了1到16个o(ox00), 经过Base 64编码后就成为多个连续的0x41(‘A’)。添加到数据包 尾部的0x41的数量可变,但至少会有一个。还可以检查数据内容是 否都是ASCI1可打印字符(2B,2F一39,0x41—0x5A,0x61-0x7A)。另 外,入侵者发现攻击失效时往往会试图连接到代理端主机上以进行 检查,这些网络通信都可被迫踪。 2.3 TFN2K与Trinoo的比较 Frinoo只实现UDP攻击,而TFN2K支持TCWSYN.UDP. ICMP等的flood攻击等。Trinoo-]!控端通过UDP数据包向代 理主机发送命令,而TFN2K通过随机使用TCP.UDP,ICMP数 据包向代理端主机发送命令。Trinoo守护进程启动后会主动 向主控端发送含有“ HELLO ’字符的UDP数据包,而 TFN2K的守护进程是完全沉默的。 3 DDOS攻击的防范 有些软、硬件的正确应用可以提供一定程度的防护。当 然,根本的防范目标应当是防止网络资源被用作客户端或代 理端。 3。1应用常见的软、硬件 3.1.1防火墙的应用 防火墙是网络安全中的第一道防御。它定义了什么是合 法的连接,并阻止入侵,还能够对可疑连接记录详细的日 志。任何防火墙只要有正确的规则,一定程度上就可以识别 这些拒绝服务攻击所采用的攻击方法,并将攻击包阻挡在 外。例如,借助于数据包过滤和代理.安全提供出站Telnet, 而尽可能地限制入站Telnet,将在一定程度上有效防止 Trinoo攻击。另外,有效配置防火墙过滤所有可能的伪造数 据包,也可在一定程度上保护网络免受TFN2k等的攻击。 3.1.2 Scanners的应用 对于DDoS攻击,扫描器的价值体现在两方面。第一, ISS提供的Internet Scanner,System Scanner和Database Scanner 可以扫描网络中的漏洞,并告诉用户如何修复(提供补丁链 接,如何重配软件或OS的步骤等)。这些漏洞是攻击者用来 植入DDoS代理程序的途径。如果漏洞被发现并修复了,攻 击者就失去了入侵的途径。第二,Intemet Scanner可以扫描 并发现网络中后门和DDoS代理程序,以便及时清除。 3.1_3 IDS的应用 IDS可以分析所有进入网段或主机的数据包,来发现是 否有人企图扫描网络或利用漏洞(不论漏洞存在与否)。IDS 可以发现危险并可以设置为自动应答。通过前面的实验和分 析知道:攻击者欲在网络中放置DDoS代理时,必须首先扫 描网络,然后获得一台或多台机器的访问权。如果网络中运 行有优秀的IDS,攻击者连初次的扫描也无法进行。全球功 能最强、使用最广泛的IDS之一RealSecure,就能够识别 DDoS主控端与代理之间的对话,还能发现比其它IDS系统 更多种类的攻击。在DDoS攻击的过程中,Realsecure ̄,够立 即通知紧急响应小组的每个成员,并快速恢复Intemet访 问;它能够重配防火墙并阻止这些包进入网络内部;切断 SYN lfooding攻击,释放资源,减轻防火墙的负担,并且提 供很多有价值的记录。 3.2拒绝服务监控系统的设计 我们进行了拒绝服务监控系统的设计,利用总结出的若 干拒绝服务攻 数据包的特征 建立了网络通 中异常现象的 式库,把实时 集网络数据包与 图3监控系统结构图 模式库进行模式 (下转第1 13页) 65— 维普资讯 http://www.cqvip.com if(k1<O)k1 N+k1; Alice根据(3)式使用Bob的公开密钥h对m进行加密得到 密文e: e-(1 8,l 6,8,0,24.22,28,2 l,8,3 l,23) return X lb【x1 rood(xN.1)} Step 4:if(de f)<de g)) f交换fix]、g【x】 交换b【X1、cIX],} Step 5:flXl=tIx] glX](mod 2);bIX]=bfx】+clX](mod 2) Step 6:goto Step 2 Bob收到Alice的密文e后,根据(4),(5),(6)式用自己的私 人密钥 分别对e进行解密得: a=(6,-3,-4,5,-6,4,2,-1 5,4,7,-7) b=(O,0,-l,-l,0,l,-l,0,l,l,-1) c=(1,0,1,1,1,0,0,1,1.0,1) 算法8: Step 1:初始化k=O;blX1=1;c【x】=O;Ⅱx1=a【)(】|gfx】=x-1 Step 2:while((f【O】一O (deg(f)!=o)) f f【)(】=flXl/X,c『X1=cIXl x,k=k+1} Step 3:if(deg(f) =o、 c就malice发送给Bob的明文m。 fK1=(N-K)mod p; if(k1<O)k1=N+k1;O 4结束语 按照公式(1),(2)生成的密钥,有时并不能够正确实现加 return士X b[X1 mod(XN-1)} Step 4 if(deg(f)<deg(g)) (交换qxl、g[Xl;交换b【X1、cIX],} Step 5:if(f『0】:=g[O1) 密和解密。这时可以通过编程方法自动修改喊g中的部分元 素就可以了。 本文给出了实现NTRU公开密钥体制完整的方法,论文 对文献【2】中对任意素数p,求解a()O的乘逆b(x)的方法进行一 些修改和补充说明,为进一步研究和应用NTRU算法提供参 考依据。 (qx]=fix]-g[Xl(mod 3) b【x卜b【Xl-c【x1(mod 3)} Step 6:else (fix] fix] g[Xl(mod 3);b[X1=b【x】+ctX](mod 3)} Step 7:goto Step 2 通过对NTRU算法分析看到,NTRU算法设计非常巧 妙,整个算法过程只包括小整数的加、乘、模运算,从而提 从算法7,算法8中我们看到,当模为2和3时执行算法7 1 算法8的速度要比使用算法4快得多。 高算法的执行速度。在国外对NTRU算法的研究、开发和应 用进展异常迅速,NTRU算法被认为是公开密钥体制中最快 的算法,也是比较容易实现的算法。同时国外有很多研究机 3 NTRU算法举例 例5:取参数N=11,P=32,q=3,dl=4, =3,dr=3。 根据dl、d艚随机选择两个多项式f、g: f:(1,l,1,0,-l,0,l,0,0,l,-1) g (-l,0,l,l,0,l,0,0,-l,0,一1) 构正在对NTRU算法安全性进行研究,但到目前为止还没有 任何理由说明NTRU算法是不安全的,有理由相信NTRU算 法完全有可能在公开密钥体制中占有主导地位。 参考文献 1 Cohen H.A Course in Computational Algebraic Number Theory Berlin:Graduate Texb in Math.,Vo1.138,Springer Verlag1993 ,由(1)式按照算法8求出Fa=(1,O,1,O,1,o,o,1,o,o,1) 由(1)式按顺序使用算法6、7、5求Fp FD=(6,12,8,3O,32,2,10,3l,l2,22,5) 2 NTRU Cryptosystems Technical Repo ̄#014 www.ntru corn 3 NTRU Cryptosystems Technical Repo ̄#009 u v、v ntru. 由(2)式求出h=(5,9,23,30,2 l,22,7,29,26,23,0) 设Bob的公开密钥为h,一对私人密钥为(f,Fa】。 com 4 Goldreich O,Goldwasser S,Halvei S Public-key Cryptography from Lattice Reduction Problems.Proc.CRYPTO97,Lect Notes in Computer Science 1 294,Springer-Verlag,I 997 Alice要发送信息给Bob时,先根据d值随机选择一个多 项式r: 1,0.・1,1,0,1,0,-1,0,0,-1) 5刘衍衍编著计算机安全技术长春:吉林科学技术出版社,1997 设Alice要发送的明文多项式m为: m:=(1.0,1.1,l,0,0,l,l,0,1) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ (上接第65页) 2陈泷于泠.SYN lfooding攻击对策研究计算机工程,200 I,27(7) 3 Lau F,Rubin S H,Smih M H,tet al Distributed Denial of Service 匹配,得到监控结果。如图3为监控系统的结构图。 图3中,采集器用来收集网络通信信息,并向分析单元 提供分析所需的数据,同时还能接收分析单元的指令,进一 Atmcks.http://www.ensc.sfu.ca/people/faculty/Iji!ja/papers/smcooedited.pdg2000 4 Bellovin S Security Problems in the TCP/IP Protocol Suite Comput 步采集分析单元所需的特定信息。分析单元采用人工神经元 网络对网络采集信息和模式库进行模式匹配得出分析报告, 同时定期进行自学习,更新模式库,及时跟踪并反映拒绝服 务攻击模式的最新动态。关于本监控系统的设计与实现,我 们在另文论述。 Commun.Rev.I989.19(2):32-48 5 Bellovin s_Distributed Denial of Service Attacksht ̄://www research. .att.com/ ̄smb/tals,k2000-02 6 Dttrich D.The DoS Projects Trinoo Distributed Denial of Service Attack Tool,he Sttacheldraht Distributed Denial of Service Attack Tool he Tritbe Flood Network Distributed Denial of Service Attack Too1. 参考文献 I陈波,干泠.DoS攻击原理与对策的进一步研究.计算机工程与应 用,200I,37(1O) http:Hwww Washington edu/People/dadI999.10 ..7 Gregory P H Solaris Securi ̄.Prentice Hall PTR2000 .