1.1概念介绍
( 1 ) DoS攻击:(Denial of Service)拒绝服务攻击,这种攻击行为是使目标服务器充斥大量要回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷而停止提供正常的网络服务。
( 2 ) DDoS攻击:(Distributed Denial of Service)分布式拒绝服务攻击,这种是攻击者利用Internet上现有机器及系统的漏洞,攻占大量联网主机(俗称肉鸡),使其成为攻击者的代理。当被控制的机器达到一定数量后,攻击者通过发送指令操纵这些攻击机同时向目标主机或网络发起DoS攻击,大量消耗其网络带宽和系统资源,导致该网络或系统瘫痪或停止提供正常的网络服务。由于DDoS的分布式特征,它具有了比DoS远为强大的攻击力和破坏性。
图1 DDoS攻击示意图
1.2攻击原理
如图2所示,一个比较完善的DDoS攻击体系分成四大部分,分别是攻击者(attacker也可以称为master)、控制傀儡机( handler)、攻击傀儡机(demon,又可称agent)和受害着(victim)。第2和第3部分,分别用做控制和实际发起攻击。第2部分的控制机只发布令而不参与实际的攻击,第3部分攻击傀儡机上发出DDoS的实际攻击包。对第2和第3部分计算机,攻击者有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自攻击者的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦攻击者连接到它们进行控制,并发出指令的时候,攻击愧儡机就成为攻击者去发起攻击了。
图2 分布式拒绝服务攻击体系结构
之所以采用这样的结构,一个重要目的是隔离网络联系,隐藏保护攻击者,使其不会在攻击进行时受到监控系统的跟踪。同时也能够更好地协调进攻,因为攻击执行器的数目太多,同时由一个系统来发布命令会造成控制系统的网络阻塞,影响攻击的突然性和协同性。而且,流量的突然增大也容易暴露攻击者的位置和意图。整个过程可分为:
( 1 ) 扫描大量主机以寻找可入侵主机目标;
( 2 ) 有安全漏洞的主机并获取控制权;
( 3 ) 入侵主机中安装攻击程序;
( 4 ) 用己入侵主机继续进行扫描和入侵。
当受控制的攻击代理机达到攻击者满意的数量时,攻击者就可以通过攻击主控机随时发出击指令。由于攻击主控机的位置非常灵活,而且发布命令的时间很短,所以非常隐蔽以定位。一旦攻击的命令传送到攻击操纵机,主控机就可以关闭或脱离网络,以逃避追踪要着,攻击操纵机将命令发布到各个攻击代理机。在攻击代理机接到攻击命令后,就开始向目标主机发出大量的服务请求数据包。这些数据包经过伪装,使被攻击者无法识别它的来源面,并且这些包所请求的服务往往要消耗较大的系统资源,如CPU或网络带宽。如果数百台甚至上千台攻击代理机同时攻击一个目标,就会导致目标主机网络和系统资源的耗尽,从而停止服务。有时,甚至会导致系统崩溃。
另外,这样还可以阻塞目标网络的防火墙和路由器等网络设备,进一步加重网络拥塞状况。于是,目标主机根本无法为正常用户提供任何服务。攻击者所用的协议都是一些非常常见的协议和服务。这样,系统管理员就难于区分恶意请求和正常连接请求,从而无法有效分离出攻击数据包,提升防御难度。
分布式拒绝服务攻击的精髓是:利用分布式的客户端,向目标发起大量看上去合法的请求,消耗或者占用大量资源,从而达到拒绝服务的目的。按照攻击对象的不同,将DDoS的攻击方式分成4类,分别是攻击网络带宽、攻击系统、攻击应用、混合攻击。
2.1攻击网络带宽资源
由于网络带宽是有限的,攻击者利用分布式的傀儡主机向目标网络发送大量的网络数据包,占满被攻击者的全部带宽,从而造成正常请求无法响应。具体内容如图2.1。
2.1.1 直接攻击
直接攻击是指攻击者利用控制的大量主机对受害者发送大量的数据流量,使得受害者的网络带宽被占据,并大量消耗服务器和网络设备的处理能力,达到拒绝服务攻击的目的。例如ICMP/IGMP洪水攻击,UDP洪水攻击等都是典型的DDoS直接攻击方式。
2.1.2 反射和放大攻击
直接攻击不仅效率低而且容易被追踪,所以攻击者更多地选择反射攻击。反射攻击又称DRDoS(DistributedReflectionDenialofService,分布式反射拒绝服务),是指攻击者利用路由器、服务器等设施对请求产生应答,从而反射出大量的流量对受害者进行攻击的一种DDoS攻击方式。这种攻击方式隐蔽,更大危害还来自于使用反射过程的放大。放大是一种特殊的反射攻击,其特殊之处在于反射器对于网络流量具有放大作用,可以将攻击者较小的流量放大成较大流量,从而造成更加严重的带宽消耗。
2.1.3 链路攻击
攻击链路与前面提到的攻击方法不同,攻击对象不是服务器而是骨干网络上的带宽资源。一种典型的链路攻击方式是Coremelt攻击。首先,攻击者通过traceroute等手段确定各个僵尸主机与攻击链路之间的位置关系。然后,由攻击者将僵尸网络分成两部分,并控制这两部分之间通过骨干网络进行通信。大量的数据包通过骨干网络,将会造成骨干网络的拥堵和延时。从骨干网络上来看,通过网络的数据包是真实存在的,并没有任何有效的方式将真正的数据包与拒绝服务攻击的数据区分开来,这样使得这种攻击方式更加隐蔽和难以防范。
图3 攻击网络带宽资源
2.2攻击系统资源
2.2.1 攻击TCP连接
TCP是一种面向连接的、可靠的、基于字节流量的传输层控制协议。由于在设计之初考虑更多的是协议的可用性,缺乏对协议的安全性进行周密比较和详细描述,因此TCP协议存在许多安全缺陷和安全问题。TCP连接洪水攻击的原理,就是在建立三次握手过程中,服务器会创建并保存TCP连接信息,该信息会被保存在连接表中。但是,连接表中的空间是有限的,一旦连接表中存储的数据超过了其最大数目,服务器就无法创建新的TCP连接。攻击者利用大量的受控主机,占据连接表中所有空间,使得目标无法建立新的TCP连接。当大量的受控主机进行攻击时,其攻击效果非常明显。攻击手段主要有:SYN洪水攻击、PSH+ACK洪水攻击、RST攻击、Sockstress攻击等。
2.2.2 攻击SSL连接
安全套接字(SecureSocketsLayer,SSL)是为网络通信协议提供安全及数据完整性的一种安全协议。其在传输层对数据进行加密,然而SSL协议在加密、解密和密钥协商的过程中会消耗大量的系统资源。SSL洪水攻击的原理,就是在SSL握手过程中,无论接收的数据是否有效,只能先进行解密才能进行验证,所以攻击者利用这个特性,向被攻击者发送大量的无用数据,消耗目标大量的计算资源。
图4 攻击系统资源
2.3攻击应用资源
2.3.1 攻击DNS服务
DNS服务是网络服务中一项核心服务,对DNS服务器攻击造成的影响更具威胁性。针对DNS服务器的攻击,主要有DNSQUERY洪水攻击和DNSNXDOMAIN攻击两类。DNSQUERY洪水攻击是利用大量的查询请求,使得DNS服务器进行大量查询,消耗其大量的计算和存储资源,使得DNS服务器的服务质量下降,甚至完全停止服务。在发起该攻击方式时,考虑到DNS服务器的查询方式,需要发送大量的不同域名的地址查询,而且尽量不要选择存储在DNS缓存记录里面的域名。DNSNXDO-MAIN攻击是DNSQUERY洪水攻击的一种变种,后者攻击时发送的是真实的域名地址,前者则发送大量不存在的域名地址,使得DNS服务器进行大量递归查询,从而使得正常的请求速度变慢,甚至是拒绝服务。
2.3.2 攻击Web服务
随着Web的迅速发展,人们的生活因此而变得方便快捷,大量的商务也因此更加方便。所以一旦Web服务器遭到拒绝服务攻击,那么就会对其承载的大量服务造成巨大的影响。攻击Web服务器,常用的手段包括HTTP(s)洪水攻击、Slowloris攻击、慢速POST请求攻击、数据处理过程攻击等。
图5 攻击应用资源
2.4混合攻击
攻击者在实施攻击过程中,并不在意使用了哪种攻击手段,而更加在意是否能够达到拒绝服务攻击的效果。所以,攻击者常常使用其能够使用的所有攻击手段进行攻击,称这种攻击为混合攻击。这些攻击方式是相辅相成、互相补充的,对于受害者来说,要面对不同协议、不同资源的攻击,更加难以防范,其处理拒绝服务攻击的成本也会大幅提高,这种攻击更加具有针对性。
除上述提到的攻击方式外,拒绝服务攻击还可与其它攻击方式相互混合使用。以达到混淆视听,难以防范的目的。
3.1检测原理
常见的入侵检测方法分为误用检测和异常检测两种。
3.1.1 误用检测
误用检测主要是根据已知的攻击特征直接检测入侵行为。首先对异常信息源建模分析提取特征向量,根据特征设计针对性的特征检测算法,若新数据样本检测出相应的特征值,则发布预警或进行反应。
优点:特异性,检测速度快,误报率低,能迅速发现已知的安全威胁。
缺点:需要人为更新特征库,提取特征码,而攻击者可以针对某一特征码进行绕过。
3.1.2 异常检测
异常检测主要是检测偏离正常数据的行为。首先对信息源进行建模分析,创建正常的系统或者网络的基准轮廓。若新数据样本偏离或者超出当前正常模式轮廓,异常检测系统就发布预警或进行反应。由于检测系统是根据正常情况定制描绘出系统或网络的正常轮廓,对于外部攻击,攻击者很难在攻击时不偏离正常轮廓,因此很容易被异常检测系统侦测到;同理,异常检测系统也可以检测来自内部的攻击。另外,异常检测系统还有能力检测以前未知的攻击。
优点:异常检测旨在发现偏离,而不是具体入侵特征,因而通用性较强,对突发的新型异常事件有很好的预警作用,利于人们宏观防御,目前大部分网络异常流量检测系统均采用异常检测系统。
缺点:首先只有对初始系统进行训练,才能创建正常的轮廓模型;其次,调整和维护轮廓模型也较为复杂和耗时,创建错误的轮廓模型可能导致较高的误报率。最后,一些精心构造恶意攻击,可利用异常检测训练系统使其逐渐接受恶意行为,造成漏报。
3.2检测方法
一般检测DDoS攻击依靠网络流量实时监测系统或者业务系统本身运行状态参数。具体检测方法如下:
3.2.1 基于网络流量实时监测系统
( 1 ) 发现网络流量突然暴增,出现异常变化。
( 2 ) 个别网络协议(如:ICMP、UDP、TCP;HTTP、DNS等)突然暴增。
( 3 ) 出现相同源地址的大量数据包、大量垃圾数据包。
3.2.2 基于设备运行状态
( 1 ) 监控业务系统性能,网络设备、服务器CUP占用率突然增高。
( 2 ) 业务系统的业务请求连接突然大量增加。
( 3 ) 服务器出现大量垃圾数据包。
( 4 ) 将服务器网络断开后,异常状态消失。
3.3防御方法
随着这几年DDoS攻击越来越智能化,发起DDoS攻击不再需要很高的技术能力,在很多提供在线攻击服务的网站上只要支付几美元,然后输入IP或域名,就可以对目标发起DDoS攻击。2020年5G网络的商业化导致未来智能物联网设备越来越多,僵尸网络“肉鸡”规模将越来越大,成本将越来越低,这直接导致DDoS攻击频率将不断提升。企业想要保障服务器稳定运行,必须重视网络安全防护,接入专业的高防服务,比如游盾云防护DDoS高防,基于云计算的分布式集群防御搭建,每个节点服务器配置多个IP地址,T级的DDoS防御流量保障服务器稳定运行。特别是电商、金融、培训、美容、游戏等DDoS“重灾区”行业,更应该重视网络安全防护,避免因DDoS攻击导致业务中断造成经济损失和用户流失。
一般DDoS攻击防御方法如下:
( 1 ) 过滤不必要的服务和端口:可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如www服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
( 2 ) 异常流量的清洗过滤:通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。单台负载每秒可防御800-927万个syn攻击包。
( 3 ) 分布式集群防御:这是目前网络安全界防御大规模DDoS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址(负载均衡),并且每个节点能承受不低于10G的DDoS攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。
( 4 ) 高防智能DNS解析:高智能DNS解析系统与DDoS防御系统的完美结合,为企业提供对抗新兴安全威胁的超级检测功能。它颠覆了传统一个域名对应一个镜像的做法,智能根据用户的上网路线将DNS解析请求解析到用户所属网络的服务器。同时智能DNS解析系统还有宕机检测功能,随时可将瘫痪的服务器IP智能更换成正常服务器IP,为企业的网络保持一个永不宕机的服务状态。
随着全球互联网业务和云计算的发展热潮,可以预见到,针对特定服务、大小型企业甚至公共和非营利组织的DDoS攻击频率还会大幅度增长,攻击手段也会更加复杂。虽然无法完全阻止DDoS攻击的发生,但一些有效的DDoS攻击保护技术和方法可用于增强基础设施抵御DDoS攻击并减轻其后果。有效地对付DDoS攻击是一个系统工程,不仅需要技术人员去探索新的防护手段,网络使用者也要具备网络攻击基本的防护意识,只有将技术手段和人员素质结合到一起才能最大限度的发挥网络防护的效能。
参考资料:
转载请注明来源:网络安全应急技术国家工程实验室