分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用,分布式拒绝服务攻击已经出现了很多次,导致很多的大型网站都出现了无法进行操作的情况,这样不仅仅会影响用户的正常使用,同时造成的经济损失也是非常巨大的。
分布式拒绝服务攻击方式在进行攻击的时候,可以对源IP地址进行伪造,这样就使得这种攻击在发生的时候隐蔽性是非常好的,同时要对攻击进行检测也是非常困难的,因此这种攻击方式也成为了非常难以防范的攻击。
分布式拒绝服务攻击(英文意思是Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击,其中的攻击者可以有多个。
攻击原理
分布式拒绝服务攻击原理分布式拒绝服务攻击DDoS是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布的、协同的大规模攻击方式。单一的DoS攻击一般是采用一对一方式的,它利用网络协议和操作系统的一些缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。与DoS攻击由单台主机发起攻击相比较,分布式拒绝服务攻击DDoS是借助数百、甚至数千台被入侵后安装了攻击进程的主机同时发起的集团行为。
一个完整的DDoS攻击体系由攻击者、主控端、代理端和攻击目标四部分组成。主控端和代理端分别用于控制和实际发起攻击,其中主控端只发布命令而不参与实际的攻击,代理端发出DDoS的实际攻击包。对于主控端和代理端的计算机,攻击者有控制权或者部分控制权.它在攻击过程中会利用各种手段隐藏自己不被别人发现。真正的攻击者一旦将攻击的命令传送到主控端,攻击者就可以关闭或离开网络.而由主控端将命令发布到各个代理主机上。这样攻击者可以逃避追踪。每一个攻击代理主机都会向目标主机发送大量的服务请求数据包,这些数据包经过伪装,无法识别它的来源,而且这些数据包所请求的服务往往要消耗大量的系统资源,造成目标主机无法为用户提供正常服务。甚至导致系统崩溃。
分类
一、基于自动化程度分类
1、手工的DDoS攻击。
早期的DDoS攻击全是采用手动配置的,即发动DDoS攻击时,扫描远端有漏洞的计算机,侵入它们并且安装代码全是手动完成的。
2、半自动化的DDoS攻击。
在半自动化的攻击中,DDoS攻击属于主控端一代理端的攻击模型,攻击者用自动化的Scripts来扫描,主控端的机器对主控端和代理端之间进行协商攻击的类型、受害者的地址、何时发起攻击等信息由进行详细记录。 [4]
3、自动化的DDoS攻击。
在这类攻击中。攻击者和代理端机器之间的通信是绝对不允许的。这类攻击的攻击阶段绝大部分被限制用一个单一的命令来实现,攻击的所有特征,例如攻击的类型,持续的时间和受害者的地址在攻击代码中都预先用程序实现。 [4]
二、基于系统及协议的弱点分类
1、洪水攻击。
在洪水攻击中。傀儡机向受害者系统发送大量的数据流为了充塞受害者系统的带宽,影响小的则降低受害者提供的服务,影响大的则使整个网络带宽持续饱和,以至于网络服务瘫痪。典型的洪水攻击有UDP洪水攻击和ICMP洪水攻击。 [4]
2、扩大攻击。
扩大攻击分为两种,一种是利用广播lP地址的特性,一种是利用反射体来发动攻击。前一种攻击者是利用了广播IP地址的特性来扩大和映射攻击,导致路由器将数据包发送到整个网络的广播地址列表中的所有的广播IP地址。这些恶意的流量将减少受害者系统可提供的带宽。典型的扩大攻击有Smurf和Fraggle攻击。 [4]
3、利用协议的攻击。
该类攻击则是利用某些协议的特性或者利用了安装在受害者机器上的协议中存在的漏洞来耗尽它的大量资源。典型的利用协议攻击的例子是TCP SYN攻击。
4、畸形数据包攻击。
攻击者通过向受害者发送不正确的IP地址的数据包,导致受害系统崩溃。畸形数据包攻击可分为两种类型:IP地址攻击和IP数据包属性攻击。
三、基于攻击速率分类
DDoS攻击从基于速率上进行分类,可以分为持续速率和可变速率的攻击。持续速率的攻击是指只要开始发起攻击,就用全力不停顿也不消减力量。像这种攻击的影响是非常快的。可变速率的攻击,从名字就可以看出,用不同的攻击速率,基于这种速率改变的机制,可以把这种攻击分为增加速率和波动的速率。
四、基于影响力进行分类
DDoS攻击从基于影响力方面可以分为网络服务彻底崩溃和降低网络服务的攻击。服务彻底崩溃的攻击将导致受害者的服务器完全拒绝对客户端提供服务。降低网络服务的攻击,消耗受害者系统的一部分资源,这将延迟攻击被发现的时间,同时对受害者造成一定的破坏。
五、基于入侵目标分类
DDoS攻击从基于入侵目标,可以将DDoS攻击分为带宽攻击和连通性攻击,带宽攻击通过使用大量的数据包来淹没整个网络,使得有效的网络资源被浪费,合法朋户的请求得不到响应,大大降低了效率。而连通性攻击是通过发送大量的请求来使的计算机瘫痪,所有有效的操作系统资源被耗尽,导致计算机不能够再处理合法的用户请求。 [4]
六、基于攻击路线分类
1、直接攻击:攻击者和主控端通信,主控端接到攻击者的命令后,再控制代理端向受害者发动攻击数据流。代理端向受害者系统发送大量的伪IP地址的网络数据流,这样攻击者很难被追查到。
2、反复式攻击通过利用反射体,发动更强大的攻击流。反射体是任何一台主机只要发送一个数据包就能收到一个数据包,反复式攻击就是攻击者利用中间的网络节点发动攻击。
七、基于攻击特征分类
从攻击特征的角度,可以将DDoS攻击分为攻击行为特征可提取和攻击行为特征不可提取两类。攻击行为特征可提取的DDoS攻击又可以细分为可过滤型和不可过滤型。可过滤型的DDoS攻击主要指那些使用畸形的非法数据包。不可过滤型DDoS攻击通过使用精心设计的数据包,模仿合法用户的正常请求所用的数据包,一旦这类数据包被过滤将会影响合法用户的正常使用。
攻击现象
DDoS的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务。当被DDoS攻击时,主要表现为: [5]
(1)被攻击主机上有大量等待的TCP连接。
(2)网络中充斥着大量的无用的数据包,源地址为假。
(3)制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯。
(4)利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求。
(5)严重时会造成系统死机。
攻击流程
攻击者进行一次DDoS攻击大概需要经过了解攻击目标、攻占傀儡机、实际攻击三个主要步骤,下面依次说明每一步骤的具体过程:
1、了解攻击目标就是对所要攻击的目标有一个全面和准确的了解,以便对将来的攻击做到心中有数。主要关分布式拒绝服务攻击 心的内容包括被攻击目标的主机数目、地址情况。目标主机的配置、性能、目标的带宽等等。对于DDoS攻击者来说,攻击互联网上的某个站点,有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供服务。所有这些攻击目标的信息都关系到后面两个阶段的实施目标和策略,如果盲目的发动DDoS攻击就不能保证攻击目的的完成,还可能过早的暴露攻击者的身份,所以了解攻击目标是有经验的攻击者必经的步骤。
2、攻占傀儡主机就是控制尽可能多的机器,然后安装相应的攻击程序。在主控机上安装控制攻击的程序,而攻击机则安装DDoS攻击的发包程序。攻击者最感兴趣,也最有可能成为别人的傀儡主机的机器包括那些链路状态好、性能好同时安全管理水平差的主机。攻击者一般会利用已有的或者未公布的一些系统或者应用软件的漏洞.取得一定的控制权,起码可以安装攻击实施所需要的程序,更厉害的可能还会取得最高控制权、留下后门等等。在早期的DDoS攻击过程中,攻占傀儡主机这一步主要是攻击者自己手动完成的,亲自扫描网络,发现安全性比较差的主机,将其攻占并且安装攻击程序。但是后来随着DDoS攻击和蠕虫的融合,攻占傀儡机变成了一个自动化的过程,攻击者只要将蠕虫放入网络中,蠕虫就会在不断扩散中不停地攻占主机,这样所能联合的攻击机将变得非常巨大,DDoS攻击的威力更大。 [6]
3、DDoS攻击的最后一个阶段就是实际的攻击过程,攻击者通过主控机向攻击机发出攻击指令,或者按照原先设定好的攻击时间和目标,攻击机不停的向目标或者反射服务器发送大量的攻击包,来吞没被攻击者,达到拒绝服务的最终目的。和前两个过程相比,实际攻击过程倒是最简单的一个阶段,一些有经验的攻击者可能还会在攻击的同时通过各种手段检查攻击效果,甚至在攻击过程中动态调整攻击策略,尽可能清除在主控机和攻击机上留下的蛛丝马迹。 [6]
攻击方式
1、SYN Flood攻击
SYN Flood攻击是当前网络上最为常见的DDoS攻击,它利用了TCP协议实现上的一个缺陷。通过向网络服务所在端口发送大量的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其他合法用户进行访问。
、UDP Flood攻击
UDP Flood是日渐猖厥的流量型DDoS攻击,原理也很简单。常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。由于UDP协议是一种无连接的服务,在UDP Flood攻击中,攻击者可发送大量伪造源IP地址的小UDP包。
3、ICMP Flood攻击
4、Connection Flood攻击
Connection Flood是典型的利用小流量冲击大带宽网络服务的攻击方式,这种攻击的原理是利用真实的IP地址向服务器发起大量的连接。并且建立连接之后很长时间不释放,占用服务器的资源,造成服务器上残余连接(WAIT状态)过多,效率降低,甚至资源耗尽,无法响应其他客户所发起的链接。
5、HTTP Get攻击
这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用。这种攻击的特点是可以绕过普通的防火墙防护,可通过Proxy代理实施攻击,缺点是攻击静态页面的网站效果不佳,会暴露攻击者的lP地址。
6、UDP DNS Query Flood攻击
UDP DNS Query Flood攻击采用的方法是向被攻击的服务器发送大量的域名解析请求,通常请求解析的域名是随机生成或者是网络世界上根本不存在的域名。域名解析的过程给服务器带来了很大的负载,每秒钟域名解析请求超过一定的数量就会造成DNS服务器解析域名超时。
应对策略
防御措施
不但是对DDoS,而且是对于所有网络的攻击,都应该是采取尽可能周密的防御措施,同时加强对系统的检测,建立迅速有效的应对策略。应该采取的防御措施有:
(1)全面综合地设计网络的安全体系,注意所使用的安全产品和网络设备。
(2)提高网络管理人员的素质,关注安全信息,遵从有关安全措施,及时地升级系统,加强系统抗击攻击的能力。
(3)在系统中加装防火墙系统,利用防火墙系统对所有出入的数据包进行过滤,检查边界安全规则,确保输出的包受到正确限制。
(4)优化路由及网络结构。对路由器进行合理设置,降低攻击的可能性。
(5)优化对外提供服务的主机,对所有在网上提供公开服务的主机都加以限制。
(6)安装入侵检测工具(如NIPC、NGREP),经常扫描检查系统,解决系统的漏洞,对系统文件和应用程序进行加密,并定期检查这些文件的变化。
防御原则
在响应方面,虽然还没有很好的对付攻击行为的方法,但仍然可以采取措施使攻击的影响降至最小。对于提供信息服务的主机系统,应对的根本原则是:
尽可能地保持服务、迅速恢复服务。由于分布式攻击入侵网络上的大量机器和网络设备,所以要对付这种攻击归根到底还是要解决网络的整体安全问题。真正解决安全问题一定要多个部门的配合,从边缘设备到骨干网络都要认真做好防范攻击的准备,一旦发现攻击就要及时地掐断最近攻击来源的那个路径,限制攻击力度的无限增强。网络用户、管理者以及ISP之间应经常交流,共同制订计划,提高整个网络的安全性。
打击行动
2019年9月初,北京市公安局网络安全保卫总队(以下简称“网安总队”)发起了针对“分布式拒绝服务攻击”类违法犯罪的全国性专项打击行动。三个月内,网安总队在全国范围内共抓获违法犯罪嫌疑人379名,清理在京被控主机7268台。
专项打击中,网安总队会同北京市海淀公安分局围绕此类违法犯罪开展缜密侦查,先后发现10个专门从事DDoS攻击网站。此类网站靠为他人提供DDoS攻击服务进而非法牟利。其中一个网站内的会员有1万人左右,攻击峰值流量高达400G,总攻击次数达30余万次。
通过案件深挖,网安总队联合相关技术团队,共同开展对DDoS攻击类违法犯罪的研究,先后发现了多条团伙案件线索。此后,网安总队会同北京市丰台公安分局对上述线索开展分析梳理,获取了涉及全国25个省的220条DDoS攻击类线索,并由公安部统一指挥、全国相关地区公安机关共同开展集中打击。截至2019年12月,在全国范围内共抓获违法犯罪嫌疑人379名。