服务器被ddos攻击和CC攻击怎么解决?

服务器被ddos攻击和CC攻击怎么解决?,第1张

最近随着业务的爆发,很多客户都遭到大大小小的ddos攻击和CC攻击,攻击手法的不断进化以及攻击工具的肆意传播,使得攻击成本的不断降低,互联网类业务遭受到的威胁也在不断攀升。本文主要结合锐速云多年网络安全运维经验以及对DDoS的基本理解,浅谈DDos攻击原理和基本防护思路。
DDoS攻击主要分为两大类:DDoS攻击和CC攻击
DDoS攻击主要是通过大流量来快速消耗用户网络带宽,造成网络堵塞服务器宕机,流量型DDoS又可分为直接型和反射型,直接型主要包括SYN\ACK\ICMP\UDPFLOOD等,反射型主要包括NTP\DNS\SSDP反射FLOOD等。
CC其实也是DDos攻击的一种,CC攻击是通过借助代理服务器模拟真实用户请求,实现DDOS和伪装,通过制造大量的后台数据库查询动作来攻击页面,消耗目标资源,造成服务器宕机。
DDos攻击防护思路
1本地DDos防护设备
一般大型企业都会在本地数据中心部署DDos防护设备,本地DDos防护设备一般分为DDos检测设备、清洗设备和管理中心,防护效果不错但成本非常高,一般中小型企业是承受不了。
2运营商清洗服务
当流量型攻击的攻击流量超出互联网链路带宽或本地DDos清洗设备性能不足以应对DDos流量攻击时,需要通过运营商清洗服务或借助运营商临时增加带宽来完成攻击流量的清洗,运营商通过各级DDos防护设备以清洗服务的方式帮助用户解决带宽消耗型的DDos攻击行为。
3云清洗服务
高防CDN是目前互联网企业最常用的防护方式,通过CNAME接入模式更加方便,只需要在域名解析服务商处修改一次解析配置即可生效,实现引流、清洗、回注,提升抗D能力。当某条线路的高防IP出现异常时,CNAME可以自动调度解析到其他可用的线路上去,避免原本解析到该线路的部分业务受到影响,保证业务的可用性。
CC攻击的防护思路
1部署架构
可将前端WAF或者负载均衡设备部署于>小溪边是腾讯云最大经销商
腾讯云大禹BGP高防是腾讯云针对游戏、、网站等用户遭受大流量DDoS攻击时服务不可用的情况推出的服务。
高达300G的防护服务和多达21线的BGP线路,不再畏惧DDoS攻击的挑战

DDOS网络攻击的7种武器
DDOS网络攻击是我们最常见的问题了,要防止DDOS网络攻击,首先就要了解其攻击的方式。
1Synflood:该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。 安易防火墙抗DDOS攻击 SYN DDOS ICMP UDP
2Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。 小顾qq1020855230
3Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
4Ping of Death:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。
5Teardrop:IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现Teardrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。
6PingSweep:使用ICMP Echo轮询多个主机。
7Pingflood: 该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。
网络攻击方面的术语解释2008-02-14 17:55DDOS:DDOS的中文名叫分布式拒绝服务攻击,俗称洪水攻击。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。被攻击主机上有大量等待的TCP连接,网络中充斥着大量的无用的数据包,源地址为假,制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯,利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求,严重时会造成系统死机。
Worm:网络蠕虫病毒,为了尽量减少蠕虫病毒在网络上的传播,现在常常配置ACL,把已知的蠕虫病毒常用的一些端口给封掉。蠕虫也在计算机与计算机之间自我复制,但蠕虫病毒可自动完成复制过程,因为它接管了计算机中传输文件或信息的功能。一旦计算机感染蠕虫病毒,蠕虫即可独自传播。但最危险的是,蠕虫可大量复制。例如,蠕虫可向电子邮件地址簿中的所有联系人发送自己的副本,联系人的计算机也将执行同样的 *** 作,结果造成多米诺效应(网络通信负担沉重),业务网络和整个 Internet 的速度都将减慢。
IP Spoof:即IP 电子欺骗,我们可以说是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术。在TCP三次握手过程中实现,黑客主机可以假装TRUST的ip向TARget发送请求连接报文,target响应(在这个过程中,黑客主机必须使用DDOS等拒绝服务攻击使trust主机无法接受target的包,而同时黑客主机又必须猜测target发送的响应包的内容以便向target发送确认报文,与target建立连接)。
SYN Flood:是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。发生在Tcp连接握手过程。
Social Engineering:社会工程攻击是一种利用"社会工程学"来实施的网络攻击行为。最近流行的免费下载软件中捆绑流氓软件、免费音乐中包含病毒、网络钓鱼、垃圾电子邮件中包括间谍软件等,都是近来社会工程学的代表应用。
Honeybot:僵尸网络跟踪工具。HoneyBOT是一款能够在网络上模仿超过1000个易受攻击的服务的Windows蜜罐程序,可以捕获和记录入侵和袭击企图。它运行于Windows 2000及以上版本,是AtomicSfotwareSolutions公司的产品。
ShellCode:Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。另外,Shellcode一般是作为数据发送给受攻击服务的。
Brute Attack:蛮力攻击就是我们常说的穷举法。

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
要明白这种攻击的基本原理,还是要从TCP连接建立的过程开始说起:
大家都知道,TCP与UDP不同,它是基于连接的,也就是说:为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接,建立TCP连接的标准过程是这样的:
首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgment)。
第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。
以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)。
问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
从防御角度来说,有几种简单的解决方法:
第一种是缩短SYN Timeout时间,由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度 x SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃改连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。
第二种方法是设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。
可是上述的两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,SYN Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址,以上的方法将毫无用武之地。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13037322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存