被DoS攻击时的现象大致有:
被攻击主机上有大量等待的TCP连接;
被攻击主机的系统资源被大量占用,造成系统停顿;
网络中充斥着大量的无用的数据包,源地址为假地址;
高流量无用数据使得网络拥塞,受害主机无法正常与外界通讯;
利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求;
严重时会造成系统死机。
到目前为止,防范DoS特别是DDoS攻击仍比较困难,但仍然可以采取一些措施以降低其产生的危害。对于中小型网站来说,可以从以下几个方面进行防范:
主机设置:
即加固 *** 作系统,对各种 *** 作系统参数进行设置以加强系统的稳固性。重新编译或设置Linux以及各种BSD系统、Solaris和Windows等 *** 作系统内核中的某些参数,可在一定程度上提高系统的抗攻击能力。
例如,对于DoS攻击的典型种类—SYN Flood,它利用TCP/IP协议漏洞发送大量伪造的TCP连接请求,以造成网络无法连接用户服务或使 *** 作系统瘫痪。该攻击过程涉及到系统的一些参数:可等待的数据包的链接数和超时等待数据包的时间长度。因此,可进行如下设置:
关闭不必要的服务;
将数据包的连接数从缺省值128或512修改为2048或更大,以加长每次处理数据包队列的长度,以缓解和消化更多数据包的连接;
将连接超时时间设置得较短,以保证正常数据包的连接,屏蔽非法攻击包;
及时更新系统、安装补丁。
防火墙设置:
仍以SYN Flood为例,可在防火墙上进行如下设置:
禁止对主机非开放服务的访问;
限制同时打开的数据包最大连接数;
限制特定IP地址的访问;
启用防火墙的防DDoS的属性;
严格限制对外开放的服务器的向外访问,以防止自己的服务器被当做工具攻击他人。
此外,还可以采取如下方法:
Random Drop算法。当流量达到一定的阀值时,按照算法规则丢弃后续报文,以保持主机的处理能力。其不足是会误丢正常的数据包,特别是在大流量数据包的攻击下,正常数据包犹如九牛一毛,容易随非法数据包被拒之网外;
SYN Cookie算法,采用6次握手技术以降低受攻击率。其不足是依据列表查询,当数据流量增大时,列表急剧膨胀,计算量随之提升,容易造成响应延迟乃至系统瘫痪。
由于DoS攻击种类较多,而防火墙只能抵挡有限的几种。
路由器设置:
以Cisco路由器为例,可采取如下方法:
Cisco Express Forwarding(CEF);
使用Unicast reverse-path;
访问控制列表(ACL)过滤;
设置数据包流量速率;
升级版本过低的IOS;
为路由器建立log server。
其中,使用CEF和Unicast设置时要特别注意,使用不当会造成路由器工作效率严重下降。升级IOS也应谨慎。
路由器是网络的核心设备,需要慎重设置,最好修改后,先不保存,以观成效。Cisco路由器有两种配置,startup config和running config,修改的时候改变的是running config,可以让这个配置先运行一段时间,认为可行后再保存配置到startup config;如果不满意想恢复到原来的配置,用copy start run即可。
不论防火墙还是路由器都是到外界的接口设备,在进行防DDoS设置的同时,要权衡可能相应牺牲的正常业务的代价,谨慎行事。
利用负载均衡技术:
就是把应用业务分布到几台不同的服务器上,甚至不同的地点。采用循环DNS服务或者硬件路由器技术,将进入系统的请求分流到多台服务器上。这种方法要求投资比较大,相应的维护费用也高,中型网站如果有条件可以考虑。
以上方法对流量小、针对性强、结构简单的DoS攻击进行防范还是很有效的。而对于DDoS攻击,则需要能够应对大流量的防范措施和技术,需要能够综合多种算法、集多种网络设备功能的集成技术。
近年来,国内外也出现了一些运用此类集成技术的产品,如Captus IPS 4000、Mazu Enforcer、Top Layer Attack Mitigator以及国内的绿盟黑洞、东方龙马终结者等,能够有效地抵挡SYN Flood、UDP Flood、ICMP Flood和Stream Flood等大流量DDoS的攻击,个别还具有路由和交换的网络功能。对于有能力的网站来说,直接采用这些产品是防范DDoS攻击较为便利的方法。但不论国外还是国内的产品,其技术应用的可靠性、可用性等仍有待于进一步提高,如提高设备自身的高可用性、处理速率和效率以及功能的集成性等。
最后,介绍两个当网站遭受DoS攻击导致系统无响应后快速恢复服务的应急办法:
如有富余的IP资源,可以更换一个新的IP地址,将网站域名指向该新IP;
停用80端口,使用如81或其它端口提供>
SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(Distributed Denial Of Service分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。
(1) 攻击者向被攻击服务器发送一个包含SYN标志的TCP报文,SYN(Synchronize)即同步报文。同步报文会指明客户端使用的端口以及TCP连接的初始序号。这时同被攻击服务器建立了第一次握手。
(2) 受害服务器在收到攻击者的SYN报文后,将返回一个SYN+ACK的报文,表示攻击者的请求被接受,同时TCP序号被加一,ACK(Acknowledgment)即确认,这样就同被攻击服务器建立了第二次握手。
(3) 攻击者也返回一个确认报文ACK给受害服务器,同样TCP序列号被加一,到此一个TCP连接完成,三次握手完成。
具体原理是:TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃—— 即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况就称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
SYN COOKIE 防火墙是SYN cookie的一个扩展,SYN cookie是建立在TCP堆栈上的,他为linux *** 作系统提供保护。SYN cookie防火墙是linux的 一大特色,你可以使用一个防火墙来保护你的网络以避免遭受SYN洪水攻击。
下面是SYN cookie防火墙的原理
client firewall server
------ ---------- ------
1 SYN----------- - - - - - - - - - ->
2 <------------SYN-ACK(cookie)
3 ACK----------- - - - - - - - - - ->
4 - - - - - - -SYN--------------->
5 <- - - - - - - - - ------------SYN-ACK
6 - - - - - - -ACK--------------->
7 -----------> relay the ------->
<----------- connection <-------
1:一个SYN包从C发送到S
2:防火墙在这里扮演了S的角色来回应一个带SYN cookie的SYN-ACK包给C
3:C发送ACK包,接着防火墙和C的连接就建立了。
4:防火墙这个时候扮演C的角色发送一个SYN给S
5:S返回一个SYN给C
6:防火墙扮演C发送一个ACK确认包给S,这个时候防火墙和S的连接也就建立了
7:防火墙转发C和S间的数据
如果系统遭受SYN Flood,那么第三步就不会有,而且无论在防火墙还是S都不会收到相应在第一步的SYN包,所以我们就击退了这次SYN洪水攻击。 攻击静态属性主要包括攻击控制模式、攻击通信模式、攻击技术原理、攻击协议和攻击协议层等。
(1)攻击控制方式
攻击控制方式直接关系到攻击源的隐蔽程度。根据攻击者控制攻击机的方式可以分为以下三个等级:直接控制方式(Direct)、间接控制方式(Indirect)和自动控制方式(Auto)。
最早的拒绝服务攻击通常是手工直接进行的,即对目标的确定、攻击的发起和中止都是由用户直接在攻击主机上进行手工 *** 作的。这种攻击追踪起来相对容易,如果能对攻击包进行准确的追踪,通常就能找到攻击者所在的位置。由于直接控制方式存在的缺点和攻击者想要控制大量攻击机发起更大规模攻击的需求,攻击者开始构建多层结构的攻击网络。多层结构的攻击网络给针对这种攻击的追踪带来很大困难,受害者在追踪到攻击机之后,还需要从攻击机出发继续追踪控制器,如果攻击者到最后一层控制器之间存在多重跳板时,还需要进行多次追踪才能最终找到攻击者,这种追踪不仅需要人工进行 *** 作,耗费时间长,而且对技术也有很高的要求。这种攻击模式,是目前最常用的一种攻击模式。自动攻击方式,是在释放的蠕虫或攻击程序中预先设定了攻击模式,使其在特定时刻对指定目标发起攻击。这种方式的攻击,从攻击机往往难以对攻击者进行追踪,但是这种控制方式的攻击对技术要求也很高。Mydoom蠕虫对SCO网站和Microsoft网站的攻击就属于第三种类型[TA04-028A]。
(2)攻击通信方式
在间接控制的攻击中,控制者和攻击机之间可以使用多种通信方式,它们之间使用的通信方式也是影响追踪难度的重要因素之一。攻击通信方式可以分为三种方式,分别是:双向通信方式(bi)、单向通信方式(mono)和间接通信方式(indirection)。
双向通信方式是指根据攻击端接收到的控制数据包中包含了控制者的真实IP地址,例如当控制器使用TCP与攻击机连接时,该通信方式就是双向通信。这种通信方式,可以很容易地从攻击机查找到其上一级的控制器。
单向通信方式指的是攻击者向攻击机发送指令时的数据包并不包含发送者的真实地址信息,例如用伪造IP地址的UDP包向攻击机发送指令。这一类的攻击很难从攻击机查找到控制器,只有通过包标记等IP追踪手段,才有可能查找到给攻击机发送指令的机器的真实地址。但是,这种通信方式在控制上存在若干局限性,例如控制者难以得到攻击机的信息反馈和状态。
间接通信方式是一种通过第三者进行交换的双向通信方式,这种通信方式具有隐蔽性强、难以追踪、难以监控和过滤等特点,对攻击机的审计和追踪往往只能追溯到某个被用于通信中介的公用服务器上就再难以继续进行。这种通信方式已发现的主要是通过IRC(Internet Relay Chat)进行通信[Jose Nazario],从2000年8月出现的名为Trinity的DDoS攻击工具开始,已经有多种DDoS攻击工具及蠕虫采纳了这种通信方式。在基于IRC的傀儡网络中,若干攻击者连接到Internet上的某个IRC服务器上,并通过服务器的聊天程序向傀儡主机发送指令。
(3)攻击原理
DoS攻击原理主要分为两种,分别是:语义攻击(Semantic)和暴力攻击(Brute)。
语义攻击指的是利用目标系统实现时的缺陷和漏洞,对目标主机进行的拒绝服务攻击,这种攻击往往不需要攻击者具有很高的攻击带宽,有时只需要发送1个数据包就可以达到攻击目的,对这种攻击的防范只需要修补系统中存在的缺陷即可。暴力攻击指的是不需要目标系统存在漏洞或缺陷,而是仅仅靠发送超过目标系统服务能力的服务请求数量来达到攻击的目的,也就是通常所说的风暴攻击。所以防御这类攻击必须借助于受害者上游路由器等的帮助,对攻击数据进行过滤或分流。某些攻击方式,兼具语义和暴力两种攻击的特征,比如SYN风暴攻击,虽然利用了TCP协议本身的缺陷,但仍然需要攻击者发送大量的攻击请求,用户要防御这种攻击,不仅需要对系统本身进行增强,而且也需要增大资源的服务能力。还有一些攻击方式,是利用系统设计缺陷,产生比攻击者带宽更高的通信数据来进行暴力攻击的,如DNS请求攻击和Smurf攻击,参见423节以及文献[IN-2000-04]和[CA-1998-01]。这些攻击方式在对协议和系统进行改进后可以消除或减轻危害,所以可把它们归于语义攻击的范畴。
(4)攻击协议层
攻击所在的TCP/IP协议层可以分为以下四类:数据链路层、网络层、传输层和应用层。
数据链路层的拒绝服务攻击[Convery] [Fischbach01][Fischbach02]受协议本身限制,只能发生在局域网内部,这种类型的攻击比较少见。针对IP层的攻击主要是针对目标系统处理IP包时所出现的漏洞进行的,如IP碎片攻击[Anderson01],针对传输层的攻击在实际中出现较多,SYN风暴、ACK风暴等都是这类攻击,面向应用层的攻击也较多,剧毒包攻击中很多利用应用程序漏洞的(例如缓冲区溢出的攻击)都属于此类型。
(5)攻击协议
攻击所涉及的最高层的具体协议,如SMTP、ICMP、UDP、>
分布式拒绝服务攻击(DDOS)是目前常见的网络攻击方法,它的英文全称为Distributed Denial of Service简单来说,很多DoS攻击源一起攻击某台服务器就形成了DDOS攻击,从而成倍地提高拒绝服务攻击的威力。
通常,攻击者将攻击程序通过代理程序安装在网络上的各个“肉鸡”上,代理程序收到指令时就发动攻击。
随着DDOS攻击的成本越来越低,很多人就通过DDOS来实现对某个网站或某篇文章的“下线”功能,某篇文章可能因为内容质量好,在搜索引擎有较高的排名,但如果因为DDOS导致网站长时间无法访问,搜索引擎则会将这篇文章从索引中删除,网站的权重也会降低,因为达到了“下线”文章的目的。
对付DDOS不太容易,首先要找一个靠谱的主机供应商,我之前有个主机供应商,一发现某个IP被DDOS,就主动屏蔽这个IP好几天,实际上就是硬件和技术能力不足的表现。
国外的主机供应商也未必靠谱,比如之前有次被DDOS,我就把博客转到Dreamhost的空间,事实表明Dreamhost的防DDOS的能力不敢恭维,DDOS来了之后,Dreamhost对付DDOS倒是不客气,直接把中国地区的IP全给屏蔽了。
一般来说,DDOS是需要花钱和带宽的,解决DDOS也需要花钱和带宽,那么,如果服务器被DDOS了,我们应该怎么办呢
1、保证服务器系统的安全
首先要确保服务器软件没有任何漏洞,防止攻击者入侵。确保服务器采用最新系统,并打上安全补丁。在服务器上删除未使用的服务,关闭未使用的端口。对于服务器上运行的网站,确保其打了最新的补丁,没有安全漏洞。
2、隐藏服务器的真实IP地址
不要把域名直接解析到服务器的真实IP地址,不能让服务器真实IP泄漏,服务器前端加CDN中转(免费的CDN一般能防止5G左右的DDOS),如果资金充裕的话,可以购买高防的盾机,用于隐藏服务器真实IP,域名解析使用CDN的IP,所有解析的子域名都使用CDN的IP地址。此外,服务器上部署的其他域名也不能使用真实IP解析,全部都使用CDN来解析。
总之,只要服务器的真实IP不泄露,5G以下小流量DDOS的预防花不了多少钱,免费的CDN就可以应付得了。如果攻击流量超过10G,那么免费的CDN可能就顶不住了,需要购买一些高防的收费CDN,一般高防CDN比较贵,比如阿里云腾讯云的10G防护一个月就78千一年,目前国内性价比比较高的推荐:百度云加速 ,10GDDOS防护套餐只需要1190一年,代理商买更便宜。相关链接
服务器防止 DDoS 攻击的方法包括但不限于:
1、全面综合地设计网络的安全体系,注意所使用的安全产品和网络设备。
2、提高网络管理人员的素质,关注安全信息,遵从有关安全措施,及时地升级系统,加强系统抗击攻击的能力。
3、在系统中加装防火墙系统,利用防火墙系统对所有出入的数据包进行过滤,检查边界安全规则,确保输出的包受到正确限制。
4、优化路由及网络结构。对路由器进行合理设置,降低攻击的可能性。
5、优化对外提供服务的主机,对所有在网上提供公开服务的主机都加以限制。
6、安装入侵检测工具(如 NIPC、NGREP),经常扫描检查系统,解决系统的漏洞,对系统文件和应用程序进行加密,并定期检查这些文件的变化。
在响应方面,虽然还没有很好的对付攻击行为的方法,但仍然可以采取措施使攻击的影响降至最小。对于提供信息服务的主机系统,应对的根本原则是:
尽可能地保持服务、迅速恢复服务。由于分布式攻击入侵网络上的大量机器和网络设备,所以要对付这种攻击归根到底还是要解决网络的整体安全问题。
真正解决安全问题一定要多个部门的配合,从边缘设备到骨干网络都要认真做好防范攻击的准备,一旦发现攻击就要及时地掐断最近攻击来源的那个路径,限制攻击力度的无限增强。
网络用户、管理者以及 ISP 之间应经常交流,共同制订计划,提高整个网络的安全性。
百度百科-分布式拒绝服务攻击
高防服务器
高防服务器采用单机防御或者集群防御,攻击直接打在源服务器上的。高防服务器主要通过定期扫描现有的网络节点、在骨干节点配置防火墙、查找可能存在的安全漏洞、用足够的机器承受黑客攻击、充分利用网络设备保护网络资源、过滤不必要的服务和端口等方式来防御DDoS攻击。要真正做好高防,仅靠硬防显然是不够的,实力强的机房都会在硬防上做策略以应对不同种类的攻击,如果防御策略不到位的话,攻击还是会导致服务器的带宽、CPU、内存使用率过高,进而直接影响到源站,造成服务中断等问题。
高防CDN
CDN防御的全称是Content Delivery Network Defense,即内容分流网络流量防御。高防CDN的原理就是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,而不用直接访问网站源服务器。其原理简单的说就是架设多个高防CDN节点,当有CDN节点攻击的时候各个节点共同承受。不会因为一个节点被攻击打死而导致网站无法访问,同时还可以隐藏网站源IP。这里有一个关键点,一旦接入了高防CDN,千万不要泄露源服务器的IP地址,否则攻击者可以绕过CDN直接攻击源服务器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)