DDoS攻击,全称为分布式拒绝服务攻击(Distributed Denial of Service attack),是一种常见的网络安全攻击方式。这种攻击形式主要通过恶意流量消耗网络或网络设备的资源,从而导致网站无法正常运行或在线服务无法正常提供。
攻击者通常出于以下目的实施DDoS攻击:
在DDoS攻击中,攻击者通过控制大量的网络设备(例如个人电脑、服务器、物联网设备),向攻击目标(例如网站、Web服务器、网络设备等)发出海量的、但并不是出于正常业务需要的访问请求,来耗尽目标系统或网站的资源,让用户无法正常使用该系统或访问该网站,从而达到破坏网站或在线服务正常运营的目的。
攻击者可利用恶意软件或攻击目标系统的漏洞等安全薄弱环节,对攻击目标方接入互联网的设备(即“傀儡机”)进行控制。同时,对被控制设备发送远程指令,让其对目标网站或服务发起DDoS攻击。被控制设备的访问流量通常难与正常的访问流量区分开。
受到DDoS攻击时,网站或服务的响应速度会突然变慢或无法访问。有以下迹象时需警惕是否出现了DDoS攻击:
DDoS 攻击还有其他更具体的迹象,具体取决于攻击的类型,例如网络层DDoS攻击中特定类型的请求(SYN请求)会突然增多等。
DDoS攻击类型
具体的攻击类型
危害及防护思路
应用层攻击
模拟正常的用户请求,通过向目标服务器或系统发送大量正常的HTTP请求,使Web应用程序耗尽处理能力,直接影响Web应用的功能和性能,例如Web响应、访问数据库、磁盘读写等。
应用层攻击与正常的业务请求没有明显的区分,所以比较难以辨认。
因此需关注Web服务中一些资源消耗较大的任务,比如Web应用中的分页和分表、文件的上传和下载、大文件或多个文件同时传输、后台定时任务、资源密集型API调用、实时图形渲染或复杂的数据可视化等。可以考虑对请求的频率进行限制,防止过多请求达到应用程序,或对应用程序的资源进行管控,避免单一用户或IP地址消耗过多资源。
网络层或协议攻击
利用协议通信的恶意连接请求或伪造连接请求来耗尽网络资源。TCP通信过程通过三次握手建立连接,其中包括发送SYN包和ACK包。攻击者会发送大量SYN包用于建立TCP的初始连接,但不完成后续的握手过程(即不响应服务器发回的SYN-ACK包),导致服务器为了维护这个半连接状态持续分配资源,最终资源耗尽,达到拒绝服务的状态。
因此需要配置防火墙规则、黑白名单功能来识别和阻止异常或恶意的网络流量。
容量耗尽型攻击
通过向攻击目标发送大量的数据包,消耗目标系统的可用带宽来造成网络拥塞。
DNS Flood攻击还可以利用伪造的IP地址向开放式DNS服务器发出海量的域名查询请求(虚假请求),让DNS服务器无法响应正常的域名查询请求。
因此可以考虑增加足够的带宽来确保受到攻击时服务可用,或使用CDN来分散流量,可在一定程度上缓解攻击流量带来的影响。