本文目录一览:
DDOS网络攻击的类型有哪些
主要几个攻击类型:
TCP全连接攻击
和SYN攻击不同,它是用合法并完整的连接攻击对方,SYN攻击采用的是半连接攻击方式,而全连接攻击是完整的,合法的请求,防火墙一般都无法过滤掉这种攻击,这种攻击在现在的DDOS软件中非常常见,有UDP碎片还有SYN洪水,甚至还有TCP洪水攻击,这些攻击都是针对服务器的常见流量攻击
59.50.179.84:2900 220.181.6.18:80 ESTABLISHED
59.50.179.84:2901 220.181.6.18:80 ESTABLISHED
59.50.179.84:2902 220.181.6.18:80 ESTABLISHED
59.50.179.84:2903 220.181.6.18:80 ESTABLISHED
通过这里可以看出59.50.179.84这个IP对220.181.6.18这台服务器的80端口发动TCP 全连接攻击,通过大量完整的TCP链接就有可能让服务器的80端口无法访问。
SYN变种攻击:发送伪造源IP的SYN数据包,但是数据包不是64字节而是上千字节,这种攻击会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。
TCP混乱数据包攻击
发送伪造源IP的 TCP数据包,TCP头的TCP Flags 部分是混乱的可能是syn,ack,syn+ack,syn+rst等等,会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。
用UDP协议的攻击
很多聊天室,视频音频软件,都是通过UDP数据包传输的,攻击者针对分析要攻击的网络软件协议,发送和正常数据一样的数据包,这种攻击非常难防护,一般防护墙通过拦截攻击数据包的特征码防护,但是这样会造成正常的数据包也会被拦截。
WEB Server多连接攻击
通过控制大量肉鸡同时连接访问网站,造成网站瘫痪,这种攻击和正常访问网站是一样的,只是瞬间访问量增加几十倍甚至上百倍,有些防火墙可以通过限制每个连接过来的IP连接数来防护,但是这样会造成正常用户稍微多打开几次网站也会被封。
WEB Server变种攻击
通过控制大量肉鸡同时连接访问网站,一点连接建立就不断开,一直发送一些特殊的GET访问请求造成网站数据库或者某些页面耗费大量的CPU,这样通过限制每个连接过来的IP连接数就失效了,因为每个肉鸡可能只建立一个或者只建立少量的连接。这种攻击非常难防护,后面给大家介绍防火墙的解决方案。
WEB Server变种攻击
通过控制大量肉鸡同时连接网站端口,但是不发送GET请求而是乱七八糟的字符,大部分防火墙分析攻击数据包前三个字节是GET字符然后来进行http协议的分析,这种攻击,不发送GET请求就可以绕过防火墙到达服务器,一般服务器都是共享带宽的,带宽不会超过10M 所以大量的肉鸡攻击数据包就会把这台服务器的共享带宽堵塞造成服务器瘫痪,这种攻击也非常难防护,因为如果只简单的拦截客户端发送过来没有GET字符的数据包,会错误的封锁很多正常的数据包造成正常用户无法访问,后面给大家介绍防火墙的解决方案。
针对游戏服务器的攻击
因为游戏服务器非常多,这里介绍最早也是影响最大的传奇游戏,传奇游戏分为登陆注册端口7000,人物选择端口7100,以及游戏运行端口7200,7300,7400等,因为游戏自己的协议设计的非常复杂,所以攻击的种类也花样倍出,大概有几十种之多,而且还在不断的发现新的攻击种类,这里介绍目前最普遍的假人攻击,假人攻击是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是攻击哪些是正常玩家。
流量攻击是什么?遇到攻击怎么办?
流量攻击
由于DDoS攻击往往采取合法的数据请求技术,再加上傀儡机器,造成DDoS攻击成为目前最难防御的网络攻击之一。据美国最新的安全损失调查报告,DDoS攻击所造成的经济损失已经跃居第一。传统的网络设备和周边安全技术,例如防火墙和IDSs(Intrusion Detection Systems), 速率限制,接入限制等均无法提供非常有效的针对DDoS攻击的保护,需要一个新的体系结构和技术来抵御复杂的DDoS拒绝服务攻击。 DDoS攻击主要是利用了internet协议和internet基本优点——无偏差地从任何的源头传送数据包到任意目的地。
防御方式
目前流行的黑洞技术和路由器过滤、限速等手段,不仅慢,消耗大,而且同时也阻断有效业务。如IDS入侵监测可以提供一些检测性能但不能缓解DDoS攻击,防火墙提供的保护也受到其技术弱点的限制。其它策略,例如大量部署服务器,冗余设备,保证足够的响应能力来提供攻击防护,代价过于高昂。
1、 黑洞技术描述了一个服务提供商将指向某一目标企业的包尽量阻截在上游的过程,将改向的包引进“黑洞”并丢弃,以保全运营商的基础网络和其它的客户业务。但是合法数据包和恶意攻击业务一起被丢弃,所以黑洞技术不能算是一种好的解决方案。被攻击者失去了所有的业务服务,攻击者因而获得胜利。
2、 路由器许多人运用路由器的过滤功能提供对DDoS攻击的防御,但对于复杂的DDoS攻击不能提供完善的防御。 路由器只能通过过滤非基本的不需要的协议来停止一些简单的DDoS攻击,例如ping攻击。这需要一个手动的反应措施,并且往往是在攻击致使服务失败之后。另外,DDoS攻击使用互联网必要的有效协议,很难有效的滤除。路由器也能防止无效的或私有的IP地址空间,但DDoS攻击可以很容易的伪造成有效IP地址。 基于路由器的DDoS预防策略——在出口侧使用uRPF来停止IP地址欺骗攻击——这同样不能有效防御现在的DDoS攻击,因为uRPF的基本原理是如果IP地址不属于应该来自的子网网络阻断出口业务。然而,DDoS攻击能很容易伪造来自同一子网的IP地址,致使这种解决法案无效。 本质上,对于种类繁多的使用有效协议的欺骗攻击,路由器ACLs是无效的。包括: ● SYN、SYN-ACK、FIN等洪流。 ● 服务代理。因为一个ACL不能辨别来自于同一源IP或代理的正当SYN和恶意SYN,所以会通过阻断受害者所有来自于某一源IP或代理的用户来尝试停止这一集中欺骗攻击。 ● DNS或BGP。当发起这类随机欺骗DNS服务器或BGP路由器攻击时,ACLs——类似于SYN洪流——无法验证哪些地址是合法的,哪些是欺骗的。 ACLs在防御应用层(客户端)攻击时也是无效的,无论欺骗与否,ACLs理论上能阻断客户端攻击——例如HTTP错误和HTTP半开连接攻击,假如攻击和单独的非欺骗源能被精确的监测——将要求用户对每一受害者配置数百甚至数千ACLs,这其实是无法实际实施的。防火墙首先防火墙的位置处于数据路径下游远端,不能为从提供商到企业边缘路由器的访问链路提供足够的保护,从而将那些易受攻击的组件留给了DDoS 攻击。此外,因为防火墙总是串联的而成为潜在性能瓶颈,因为可以通过消耗它们的会话处理能力来对它们自身进行DDoS攻击。 其次是反常事件检测缺乏的限制,防火墙首要任务是要控制私有网络的访问。一种实现的方法是通过追踪从内侧向外侧服务发起的会话,然后只接收“不干净”一侧期望源头发来的特定响应。然而,这对于一些开放给公众来接收请求的服务是不起作用的,比如Web、DNS和其它服务,因为黑客可以使用“被认可的”协议(如HTTP)。 第三种限制,虽然防火墙能检测反常行为,但几乎没有反欺骗能力——其结构仍然是攻击者达到其目的。当一个DDoS攻击被检测到,防火墙能停止与攻击相联系的某一特定数据流,但它们无法逐个包检测,将好的或合法业务从恶意业务中分出,使得它们在事实上对IP地址欺骗攻击无效。 IDS入侵监测 IDS解决方案将不得不提供领先的行为或基于反常事务的算法来检测现在的DDoS攻击。但是一些基于反常事务的性能要求有专家进行手动的调整,而且经常误报,并且不能识别特定的攻击流。同时IDS本身也很容易成为DDoS攻击的牺牲者。 作为DDoS防御平台的IDS最大的缺点是它只能检测到攻击,但对于缓和攻击的影响却毫无作为。IDS解决方案也许能托付给路由器和防火墙的过滤器,但正如前面叙述的,这对于缓解DDoS攻击效率很低,即便是用类似于静态过滤串联部署的IDS也做不到。 DDoS攻击的手动响应 作为DDoS防御一部份的手动处理太微小并且太缓慢。受害者对DDoS攻击的典型第一反应是询问最近的上游连接提供者——ISP、宿主提供商或骨干网承载商——尝试识别该消息来源。对于地址欺骗的情况,尝试识别消息来源是一个长期和冗长的过程,需要许多提供商合作和追踪的过程。即使来源可被识别,但阻断它也意味同时阻断所有业务——好的和坏的。
3、 其他策略为了忍受DDoS攻击,可能考虑了这样的策略,例如过量供应,就是购买超量带宽或超量的网络设备来处理任何请求。这种方法成本效益比较低,尤其是因为它要求附加冗余接口和设备。不考虑最初的作用,攻击者仅仅通过增加攻击容量就可击败额外的硬件,互联网上上千万台的机器是他们取之不净的攻击容量资源。 有效抵御DDoS攻击 从事于DDoS攻击防御需要一种全新的方法,不仅能检测复杂性和欺骗性日益增加的攻击,而且要有效抵御攻击的影响。
保护关键主题
完整的DDoS保护围绕四个关键主题建立:
1. 要缓解攻击,而不只是检测
2. 从恶意业务中精确辨认出好的业务,维持业务继续进行,而不只是检测攻击的存在
3. 内含性能和体系结构能对上游进行配置,保护所有易受损点
4. 维持可靠性和成本效益可升级性
防御保护性质
通过完整的检测和阻断机制立即响应DDoS攻击,即使在攻击者的身份和轮廓不 断变化的情况下。
与现有的静态路由过滤器或IDS签名相比,能提供更完整的验证性能。
提供基于行为的反常事件识别来检测含有恶意意图的有效包。
识别和阻断个别的欺骗包,保护合法商务交易。
提供能处理大量DDoS攻击但不影响被保护资源的机制。
攻击期间能按需求部署保护,不会引进故障点或增加串联策略的瓶颈点。
内置智能只处理被感染的业务流,确保可靠性最大化和花销比例最小化。
避免依赖网络设备或配置转换。
所有通信使用标准协议,确保互操作性和可靠性最大化。
保护技术体系
1. 时实检测DDoS停止服务攻击攻击。
2. 转移指向目标设备的数据业务到特定的DDoS攻击防护设备进行处理。
3. 从好的数据包中分析和过滤出不好的数据包,阻止恶意业务影响性能,同时允许合法业务的处理。
4. 转发正常业务来维持商务持续进行。
DDOS攻击方式有哪些?
ddos攻击主要有以下3种方式。
大流量攻击
大流量攻击通过海量流量使得网络的带宽和基础设施达到饱和,将其消耗殆尽,从而实现淹没网络的目的。一旦流量超过网络的容量,或网络与互联网其他部分的连接能力,网络将无法访问。大流量攻击实例包括ICMP、碎片和UDP洪水。
TCP状态耗尽攻击
TCP状态耗尽攻击试图消耗许多基础设施组件(例如负载均衡器、防火墙和应用服务器本身)中存在的连接状态表。例如,防火墙必须分析每个数据包来确定数据包是离散连接,现有连接的存续,还是现有连接的完结。同样,入侵防御系统必须跟踪状态以实施基于签名的数据包检测和有状态的协议分析。这些设备和其他有状态的设备—包括负责均衡器—被会话洪水或连接攻击频繁攻陷。例如,Sockstress攻击可通过打开套接字来填充连接表以便快速淹没防火墙的状态表。
应用层攻击
应用层攻击使用更加尖端的机制来实现黑客的目标。应用层攻击并非使用流量或会话来淹没网络,它针对特定的应用/服务缓慢地耗尽应用层上的资源。应用层攻击在低流量速率下十分有效,从协议角度看,攻击中涉及的流量可能是合法的。这使得应用层攻击比其他类型的DDoS攻击更加难以检测。HTTP洪水、DNS词典、Slowloris等都是应用层攻击的实例。
什么是ACK攻击
ACK Flooding攻击是在TCP连接建立之后,所有的数据传输TCP报文都是带有ACK标志位的,主机在接收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法,例如该数据包所指向的目的端口在本机并未开放,则主机操作系统协议栈会回应RST包告诉对方此端口不存在。当发包速率很大的时候,主机操作系统将耗费大量的精力接收报文、判断状态,同时要主动回应RST报文,正常的数据包就可能无法得到及时的处理。
服务器遭受大量ACK攻击如何解决
拒绝服务攻击(Denial of Service,DoS)是目前比较有效而又非常难于防御的一种网络攻击方式,它的目的就是使服务器不能够为正常访问的用户提供服务。所以,DoS对一些紧密依靠互联网开展业务的企业和组织带来了致命的威胁。
SYN Flood是最为有效和流行的一种DoS攻击形式。它利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的资源,从而不能够为正常用户提供服务。
1.1 TCP连接建立的过程
要掌握SYN Flood攻击的基本原理,必须先介绍TCP的三次握手机制。
TCP三次握手过程如下:
1)客户端向服务器端发送一个SYN置位的TCP报文,包含客户端使用的端口号和初始序列号x;
2)服务器端收到客户端发送来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,包含确认号为x+1和服务器的初始序列号y;
3)
TCP客户端
客户端端口
(1024-65535)
TCP服务器端
服务器端口
(1-1023)
SYN
SYN/ACK
ACK
客户端收到服务器返回的SYN+ACK报文后,向服务器返回一个确认号为y+1序号为x+1的ACK报文,一个标准的TCP连接完成。如图1所示:
1.2 攻击原理
在SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包,并等待源端返回ACK包,如图2所示。由于源地址是伪造的,所以源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但是由于端口的半连接队列的长度是有限的,如果不断的向受害主机发送大量的TCP SYN报文,半连接队列就会很快填满,服务器拒绝新的连接,将导致该端口无法响应其他机器进行的连接请求,最终使受害主机的资源耗尽。
TCP客户端
客户端端口
(1024-65535)
TCP服务器端
服务器端口
(1-1023)
SYN
SYN/ACK
伪造源地址
2 几种防御技术
SYN Flood攻击给互联网造成重大影响后,针对如何防御SYN Flood攻击出现了几种比较有效的技术。
2.1 SYN-cookie技术
一般情况下,当服务器收到一个TCP SYN报文后,马上为该连接请求分配缓冲区,然后返回一个SYN+ACK报文,这时形成一个半连接。SYN Flood正是利用了这一点,发送大量的伪造源地址的SYN连接请求,而不完成连接。这样就大量的消耗的服务器的资源。
SYN-cookie技术针对标准TCP连接建立过程资源分配上的这一缺陷,改变了资源分配的策略。当服务器收到一个SYN报文后,不立即分配缓冲区,而是利用连接的信息生成一个cookie,并将这个cookie作为将要返回的SYN+ACK报文的初始序列号。当客户端返回一个ACK报文时,根据包头信息计算cookie,与返回的确认序列号(初始的序列号+1)的前24位进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。
该技术的巧妙之点在于避免了在连接信息未完全到达前进行资源分配,使SYN Flood攻击的资源消耗失效。实现的关键之处在于cookie的计算。cookie的计算应该做到包含本次连接的状态信息,使攻击者不能伪造cookie。cookie的计算过程如下:
1)服务器收到一个SYN包后,计算一个消息摘要mac:
mac = MAC(A,k);
MAC是密码学中的一个消息认证码函数,也就是满足某种安全性质的带密钥的hash函数,它能够提供cookie计算中需要的安全性。
A为客户和服务器双方的IP地址和端口号以及参数t的串联组合:
A = SOURCE_IP || SOURCE_PORT || DST_IP || DST_PORT || t
K为服务器独有的密钥;
时间参数t为32比特长的时间计数器,每64秒加1;
2)生成cookie:
cookie = mac(0:24):表示取mac值的第0到24比特位;
3)设置将要返回的SYN+ACK报文的初始序列号,设置过程如下:
i. 高24位用cookie代替;
ii. 接下来的3比特位用客户要求的最大报文长度MMS代替;
iii. 最后5比特位为t mod 32。
客户端收到来自服务器SYN+ACK报文后,返回一个ACK报文,这个ACK报文将带一个cookie(确认号为服务器发送过来的SYN ACK报文的初始序列号加1,所以不影响高24位),在服务器端重新计算cookie,与确认号的前24位比较,如果相同,则说明未被修改,连接合法,然后,服务器完成连接的建立过程。
SYN-cookie技术由于在连接建立过程中不需要在服务器端保存任何信息,实现了无状态的三次握手,从而有效的防御了SYN Flood攻击。但是该方法也存在一些弱点。由于cookie的计算只涉及了包头的部分信心,在连接建立过程中不在服务器端保存任何信息,所以失去了协议的许多功能,比如,超时重传。此外,由于计算cookie有一定的运算量,增加了连接建立的延迟时间,因此,SYN-cookie技术不能作为高性能服务器的防御手段。通常采用动态资源分配机制,当分配了一定的资源后再采用cookie技术,Linux就是这样实现的。还有一个问题是,当我们避免了SYN Flood攻击的同时,同时也提供了另一种拒绝服务攻击方式,攻击者发送大量的ACK报文,使服务器忙于计算验证。尽管如此,在预防SYN Flood攻击方面,SYN-cookie技术仍然是一种有效的技术。
2.2 地址状态监控的解决方法
地址状态监控的解决方法是利用监控工具对网络中的有关TCP连接的数据包进行监控,并对监听到的数据包进行处理。处理的主要依据是连接请求的源地址。
每个源地址都有一个状态与之对应,总共有四种状态:
初态:任何源地址刚开始的状态;
NEW状态:第一次出现或出现多次也不能断定存在的源地址的状态;
GOOD状态:断定存在的源地址所处的状态;
BAD状态:源地址不存在或不可达时所处的状态。
具体的动作和状态转换根据TCP头中的位码值决定:
1)监听到SYN包,如果源地址是第一次出现,则置该源地址的状态为NEW状态;如果是NEW状态或BAD状态;则将该包的RST位置1然后重新发出去,如果是GOOD状态不作任何处理。
2)监听到ACK或RST包,如果源地址的状态为NEW状态,则转为GOOD状态;如果是GOOD状态则不变;如果是BAD状态则转为NEW状态;如果是BAD状态则转为NEW状态。
3)监听到从服务器来的SYN ACK报文(目的地址为addr),表明服务器已经为从addr发来的连接请求建立了一个半连接,为防止建立的半连接过多,向服务器发送一个ACK包,建立连接,同时,开始计时,如果超时,还未收到ACK报文,证明addr不可达,如果此时addr的状态为GOOD则转为NEW状态;如果addr的状态为NEW状态则转为BAD状态;如果为addr的状态为BAD状态则不变。
状态的转换图如图3所示:
初态
GOOD
NEW
BAD
ACK/RST
SYN
ACK/RST
ACK包确认超时
ACK/RST
ACK包确认超时
下面分析一下基于地址状态监控的方法如何能够防御SYN Flood攻击。
1)对于一个伪造源地址的SYN报文,若源地址第一次出现,则源地址的状态为NEW状态,当监听到服务器的SYN+ACK报文,表明服务器已经为该源地址的连接请求建立了半连接。此时,监控程序代源地址发送一个ACK报文完成连接。这样,半连接队列中的半连接数不是很多。计时器开始计时,由于源地址是伪造的,所以不会收到ACK报文,超时后,监控程序发送RST数据包,服务器释放该连接,该源地址的状态转为BAD状态。之后,对于每一个来自该源地址的SYN报文,监控程序都会主动发送一个RST报文。
2)对于一个合法的SYN报文,若源地址第一次出现,则源地址的状态为NEW状态,服务器响应请求,发送SYN+ACK报文,监控程序发送ACK报文,连接建立完毕。之后,来自客户端的ACK很快会到达,该源地址的状态转为GOOD状态。服务器可以很好的处理重复到达的ACK包。
从以上分析可以看出,基于监控的方法可以很好的防御SYN Flood攻击,而不影响正常用户的连接。
3 小结
本文介绍了SYN Flood攻击的基本原理,然后详细描述了两种比较有效和方便实施的防御方法:SYN-cookie技术和基于监控的源地址状态技术。SYN-cookie技术实现了无状态的握手,避免了SYN Flood的资源消耗。基于监控的源地址状态技术能够对每一个连接服务器的IP地址的状态进行监控,主动采取措施避免SYN Flood攻击的影响。这两种技术是目前所有的防御SYN Flood攻击的最为成熟和可行的技术。
ACK攻击是什么?
SYN工作的原理就是利用两个互联网程序间协议握手的过程进行的攻击。协议握手的过程如下,其中一个应用程序向另一个程序发送一个TCP SYN(同步)数据包。然后目标程序向第一个程序发送一个TCP-ACK应答数据包作为回答;第一个程序最后用一个ACK应答数据包确认已经收到。一旦这两个程序握手成功,它们就准备一起运行了。 SYN攻击用一堆TCP SYN数据包来淹没它的受害者。每个SYN数据包迫使目标服务器产生一个SYN-ACK应答数据包然后等待对应的ACK应答。这很快就导致过量的SYN-ACK一个接一个的堆积在缓存队列里。当缓存队列满了以后,系统就会停止应答到来的SYN请求。如果SYN攻击中包括了拥有错误IP源地址的SYN数据包,情况很快就会变得更糟。在这种情况下,当SYN-ACK被送出的时候,ACK应答就永远不会被收到。飞快充满的缓存队列使得合法程序的SYN请求无法再通过。更加厉害的是,与之相似的Land攻击手段使用欺骗性的SYN数据包,它带有一个伪装的IP地址,使得它看起来像是来自你自己的网络。现在,SYN攻击就像是来自于你防火墙的内部,这使得问题更加严重。 大多数时新的操作系统和防火墙可以阻止SYN攻击。另一个简单的阻止SYN攻击的方法是阻塞掉所有带有已知的错误的IP源地址的数据包。