拒绝服务攻击介绍zt

JavaGG 发布于 2009/05/05 15:35
阅读 574
收藏 0

1、1拒绝服务攻击原理
DOS是指这样一种攻击手段:攻击者在一定时间内发送大量的服务请求来“轰炸”目的主机或其它网络设备,使其不能提供正常的服务。这种方式类似于某人通过不停拨打某个公司的电话来阻止其它电话打进,从而导致公司通信瘫痪。
硬件DoS攻击的方法同那些普通的攻击方法差别不大。事实上,在很多情况下,同一个DoS攻击既能破坏软件又能破坏硬件。下面是一些例子:
1.攻击者从假造的,并不存在的IP地址发出连接请求。因为接收方不能解析这些地址,任务将被挂起。(它使一个单个服务或端口或整个接收单元失效)
2.攻击者占用了每个可用的任务(SESSIONS),以此阻止你到达远程的路由。如果你的服务器提供关键的服务,这将迫使你在工作日的早上早起,驾车去办公室,并且重新设置硬件。
3.攻击者在例行注册时造成溢出,使得系统崩溃或重新启动。你可能又得被迫去重起你的硬件。
4.攻击者给接收单元灌输大量的错误的或是特殊结构的数据包。由于接收单元不能正确处理这些包而锁定。
1、2常见拒绝服务攻击
一般而言,存在着三种形式的DOS,
1. 针对于硬件(网络设备,路由器,交换机)的DOS。
2. 针对于网络层(IP协议)核心实现的DOS。
3. 针对于应用层(浏览器,Web服务器,Mail)的DOS。
最常见的是第二种。这种攻击方式多数是发送畸形的数据包,导致目的设备或主机无法处理而挂起。程序代码并不长,也不复杂,但要求作者对于系统核心,对网络协议有深入的了解。
第一个著名的DOS攻击是Morris病毒,此程序不断的自我繁殖,不断地消耗系统资源,直至系统崩溃。比较著名的DOS攻击手段还有很多,这里列举一些:
1. teardrop.c,向目的主机改造过的IP数据包,IP报头中长度为负值。多数操作系统只检查数据包是否超过了最大长度,并不检查数据包是否太小。当数据包分组重组完毕,由于数据包长度按无符号整数处理,系统将试图靠拷贝极长的数据包。此时系统可能会崩溃或重起。
2. sesquipedalian.c,发送一系列IP分组,其第一个IP分组的长度为零。
3. nestea.c,发送过大的IP分组。
4. pingofdeath,发送过长的ICMP数据包。win95下ping -l65510 yourtarget。
5.    smurf.c,它的原理是:发出伪装的ICMP数据包,目的地址设为某个网络的广播地址,源地址设为要攻击的目的主机。所有接收到此ICMP数据包的主机都将对向要攻击的目的主机发出一个回应。这样被攻击主机将在某一段时间内收到成千上万的数据包。简单提一下解决方法:网络管理员必须在防火墙出口设置这样一条规则,禁止所有的目的地址为广播地址的ICMP数据包通过。

2、DDOS攻击
2、1从DoS到DDoS 
---- 拒绝服务(Denial of Service,DoS)由来已久。自从有了Internet,就有了拒绝服务式攻击方法。由于过去没有大型网站或机构受到过这种攻击,其劣性并不突出。直到2000年初,Yahoo!、eBay及Amazon等遭其暗算,它才露出庐山真面目。 
---- 在典型的Internet连接中,用户访问一个网站时,客户端会先向网站服务器发送一条信息要求建立连接,只有当服务器确认该请求合法,并将访问许可返回给用户时,用户才可对该服务器进行访问。DoS攻击的方法是,恶意用户会向服务器发送多个连接请求,使其呈满负载状态,并且将所有请求的返回地址进行伪造。这样,在服务器企图将认证结构返回给用户时,它将无法找到这些用户。此时,服务器只好等待,有时可能会等上1分钟才关闭此连接。可怕的是,在服务器关闭连接后,攻击者又会发送新的一批虚假请求,重复上一次过程,直到服务器因过载而拒绝提供服务。这些攻击事件并没有入侵网站,也没有篡改或是破坏资料,只是利用程序在瞬间产生大量的网络封包,让对方的网络及主机瘫痪,使正常使用者无法获得主机及时的服务。 
---- 然而,年初攻击Yahoo!的元凶还不是简单的DoS,虽然与DoS攻击一样,也是向被攻击目标连续发送大量伪造的IP包,以导致服务器不能为合法用户提供正常服务(比如此次给Yahoo!站点路由器发出的无效请求高达1GB/s),但是它区别于DoS的“绝妙”之处在于: 动员了大量“无辜”的计算机向目标共同发起进攻,采用了分布式拒绝服务(Distributed Denial of Service,DDoS)攻击手段。 
---- DDoS把DoS又向前发展了一步,DDoS的行为更为自动化,它可以方便地协调从多台计算机上启动的进程,让一股DoS洪流冲击网络,并使网络因过载而崩溃。确切地讲,DDoS攻击是指在不同的高带宽主机上安装大量的DoS服务程序,它们等待来自中央客户端的命令,中央客户端随后通知全体受控服务程序,并批示它们对一个特定目标发送尽可能多的网络访问请求。作为攻击者,必须通过telnet连接到他想利用的每一台远程主机上,并以用户身份登录,然后手工输入命令,启动每一台主机向攻击目标发送海量信息流(如附图所示)。 
 
---- DDoS与DoS的最大区别是人多力量大。原来的DoS是一台机器攻击目标,现在的DDoS是很多台机器利用他们的高带宽攻击目标,更容易将目标网站攻掉。除此之外,DDoS攻击方式较为自动化,攻击者可以把他的程序安装到网络中的多台机器上,所采用的攻击工具致使被攻击对象难以察觉,只要攻击者发下攻击命令,这些机器便发起进攻。 
2、2常见DDoS的攻击方法 
---- 目前,我们知道的对网络进行DDoS攻击所使用的工具有:Trinoo、Tribe Flood Network(TFN)、TFN2k和Stacheldraht等。它们的攻击思路基本相近。 
---- 1. Trinoo: 它是基于UDP flood的攻击软件,它向被攻击目标主机的随机端口发出全零的4字节UDP包,在处理这些超出其处理能力垃圾数据包的过程中,被攻击主机的网络性能不断下降,直到不能提供正常服务,乃至崩溃。它对IP地址不做假,此攻击方法用得不多。 
---- 2. TFN:它是利用ICMP给代理服务器下命令,其来源可以做假。它可以发动SYN flood、UDP flood、ICMP flood及Smurf(利用多台服务器发出海量数据包,实施DoS攻击)等攻击。TFN的升级版TFN2k的特点是:对命令数据包加密、更难查询命令内容、命令来源可以做假,还有一个后门控制代理服务器。 
---- 3. Stacheldraht:对命令来源做假,而且可以防范一些路由器用RFC2267过滤。若检查出有过滤现象,它将只做假IP地址最后8位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击。此外,它还具有自动更新功能,可随软件的更新而自动更新。 
---- 值得一提的是,像Trinoo和TFN等攻击软件都是可以从网上随意找到的公开软件,所以任何一个上网者都可能构成网络安全的潜在威胁。面对凶多吉少的DDoS险滩,我们该如何对付随时出现的黑客攻击呢?杨宁先生说,那要看用户处于何种状态,是正身处被攻击的困围中,还是准备事先预防。 
3、DOS/DDOS的防范 
3、1DOS/DDOS攻击检测和处理方法
I、配置IDS系统
许多人或工具在监测分布式拒绝服务攻击时常犯的错误是只搜索那些DoS/DDoS工具的缺省特征字符串、缺省端口、缺省口令等。要建立网络入侵监测系统(NIDS)利用这些工具的监测规则,人们可以着重观察分析DDoS网络通讯的普遍特征,不管是明显的,还是模糊的。
DoS/DDoS工具产生的网络通讯信息有两种:控制信息通讯(在DoS/DDoS客户端与服务器端之间)和攻击时的网络通讯(在DoS/DDoS服务器端与目标主机之间)。
根据以下异常现象在网络入侵监测系统建立相应规则,能够较准确地监测出DoS/DDoS攻击。
异常现象0:虽然这不是真正的"DDoS"通讯,但却能够用来确定DDoS攻击的来源。根据分析,攻击者在进行DDoS攻击前总要解析目标的主机名。BIND域名服务器能够记录这些请求。由于每台攻击服务器在进行一个攻击前会发出PTR反向查询请求,也就是说在DDoS攻击前域名服务器会接收到大量的反向解析目标IP主机名的PTR查询请求。
异常现象1:当DDoS攻击一个站点时,会出现明显超出该网络正常工作时的极限通讯流量的现象。现在的技术能够分别对不同的源地址计算出对应的极限值。当明显超出此极限值时就表明存在DDoS攻击的通讯。因此可以在主干路由器端建立ACL访问控制规则以监测和过滤这些通讯。
异常现象2:特大型的ICMP和UDP数据包。正常的UDP会话一般都使用小的UDP包,通常有效数据内容不超过10字节。正常的ICMP消息也不会超过64到128字节。那些大小明显大得多的数据包很有可能就是控制信息通讯用的,主要含有加密后的目标地址和一些命令选项。一旦捕获到(没有经过伪造的)控制信息通讯,DDoS服务器的位置就无所遁形了,因为控制信息通讯数据包的目标地址是没有伪造的。
异常现象3:不属于正常连接通讯的TCP和UDP数据包。最隐蔽的DDoS工具随机使用多种通讯协议(包括基于连接的协议)通过基于无连接通道发送数据。优秀的防火墙和路由规则能够发现这些数据包。另外,那些连接到高于1024而且不属于常用网络服务的目标端口的数据包也是非常值得怀疑的。
异常现象4:数据段内容只包含文字和数字字符(例如,没有空格、标点和控制字符)的数据包。这往往是数据经过BASE64编码后而只会含有base64字符集字符的特征。TFN2K发送的控制信息数据包就是这种类型的数据包。TFN2K(及其变种)的特征模式是在数据段中有一串A字符(AAA……),这是经过调整数据段大小和加密算法后的结果。如果没有使用BASE64编码,对于使用了加密算法数据包,这个连续的字符就是“\0”。
异常现象5:数据段内容只包含二进制和high-bit字符的数据包。虽然此时可能在传输二进制文件,但如果这些数据包不属于正常有效的通讯时,可以怀疑正在传输的是没有被BASE64编码但经过加密的控制信息通讯数据包。(如果实施这种规则,必须将20、21、80等端口上的传输排除在外。)
II、避免FUD
FUD代表恐惧,无常以及多疑(fear, uncertainty, and doubt)。DoS/DdoS并非完全不可抵挡。综合采用多种技术手段,是可以解决这一问题的,至少可以缓解。
III、与上级网管配合处理
---- 首先,检查攻击来源,通常黑客会通过很多假的IP地址发起攻击,此时,用户若能够分辨出哪些是真IP地址,哪些是假IP地址,然后了解这些IP来自哪些网段,再找网段管理员把机器关掉,即可消除攻击。 
---- 其次,找出攻击者所经过的路由,把攻击屏蔽掉。比如黑客发射SNP包,用户可把此包过滤掉。若黑客从某些端口发动攻击,用户可把这些端口屏蔽掉,以狙击入侵。 
---- 在路由器上滤掉ICMP(Internet Control Message Protocol)和UDP。ICMP用于提交错误和改变控制信息,常用来判断网络的连通性。 
各级网管相互配合立即采取一切需要的技术手段阻断与攻击发起点的网络的连接。
3、2事先预防攻击
I、技术手段
---- 1. 用足够的机器承受黑客攻击。这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿。 
---- 2. 充分利用网络设备保护网络资源,优化网络结构和路由策略。
一个较为庞大的网络,我方将对您的路由器进行合理设置以使您遭受各类拒绝服务攻击(DoS/DDoS)的可能性最小化,例如,为了防止SYN flooding攻击,您可以在路由器上设定TCP侦听功能,应当过滤所有的您不需要的UDP和ICMP包信息---3. 使用Inexpress、Express Forwarding过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包 Source IP 和 Routing Table 做比较,并加以过滤。 
---- 3. 使用Unicast Reverse Path Forwarding检查访问者的来源。它通过反向路由表查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假IP地址方式迷惑用户,很难查出它来自何处,因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。 
---- 4 过滤所有RFC1918 IP地址。RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0和172.16.0.0,它们不是某个网段的固定IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。 
---- 5. 限制SYN/ICMP流量。用户应在路由器上配置CAR/TCP拦截控制SYN/ICMP的最大流量来限制 SYN/ICMP 封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。 
   6、选择一款优秀的防黑安全产品。即配备监测工具,不断提高对系统的认识。无论是从网上下载公开源代码的监测工具,还是购买网络监测工具,都要实时监测别人是否在扫描自己的端口。若有人扫描端口,意味着有人可能要攻击此网络。 
   7、配备网络安全评估工具,定期对网络漏洞、密码强度进行安全评估,从而采取修复措施,不被黑客利用。
   8、留有备份链路、备份设备和带宽
备用设备是网络遭到各类拒绝服务攻击(DoS/DDoS)的对抗平台。
首先要将备用DNS部署到其他省网,或全国骨干网上。
可能是瓶颈的链路,要留有在紧急时可以马上启用的备用链路。
留有备用的服务器设备,在服务器系统负载过高时,可以应急增容。
   9、优化服务主机的操作系统、应用服务和数据库系统。
不仅仅对于网络设备,对潜在的有可能遭受攻击的主机也要同样进行优化设置保护。在服务器上禁止一切不必要的服务,此外,如果使用分布式系统的话也会给攻击者带来相当大的麻烦。建议将应用分布在多个不同的物理主机上,这样每一台主机只包含了应用系统的一部分,防止了服务在遭受攻击时全部瘫痪。


II、管理手段 
---- 1. 一个企业必须有专人负责其网络安全,至少有一个人全权进行系统安全维护,他应该对企业网络中的所有机器进行检查,以减少漏洞。 
---- 2. 作为专门负责网络安全的管理员,必须对攻击方法了如指掌,换句话说,他要了解黑客是怎么工作的,只有这样,他才能保护好自己的机器。甚至负责人可在局域网中模仿黑客,“入侵”自己的系统,以发现网络漏洞,及时补漏。 
---- 3. 网络安全管理员应该尽职尽责,仔细认真。在已发生的黑客攻击中,相当一部分事件是因为管理员工作疏忽造成的。 
---- 4. 严格控制密码,提高密码保险性。在网络中,有些密码设置得较易被破获,因此应尽量减少知道密码的人数,分别给不同的人设定不同的使用权限。 
   5、时刻注意各个系统的运转,清楚的明白您的系统和应用软件是如何正常运做的以及它们的原理,记录,回顾经常采取的安全措施以及系统配置。时刻检查著名的安全网站时刻关心最新揭露的安全漏洞,并注意他们是否将来会在您的系统中发生。



加载中
返回顶部
顶部