关于DDoS攻击及防御技术综述

DDoS攻击及防御技术综述
本文内容为论文转载。

摘    要:
分布式拒绝服务攻击 (Distributed Denial of Service, DDoS) 是互联网上有严重威胁的攻击方式之一, 难以完全对其进行防御。介绍DDoS攻击的技术原理, 在此基础上, 分析主流入侵检测方式在DDoS攻击检测中的优缺点。最后, 全面分析了适用于DDoS攻击防御的技术手段, 为防御DDoS攻击提供了技术参考。

关键词:
DDoS; 攻击技术; 攻击防御; 攻击检测;

0 引言
在互联网的各种安全威胁中, 拒绝服务攻击威胁性强, 而分布式拒绝服务攻击所带来的安全威胁程度更高, 后果损失更加严重。从广义上来说, 拒绝服务攻击指任何导致网络系统不能正常为用户提供服务的攻击手段, 主要包含漏洞利用型攻击和资源消耗型攻击两类。漏洞利用型攻击针对被攻击的系统或软件漏洞, 精心设计特殊的报文, 使得目标系统、软件崩溃或者重启。目前这类攻击的危害不是非常大, 在防火墙及各种检测机制的保护下, 能够有效避免。资源消耗型攻击也称泛洪攻击, 它的攻击方式是在短时间内发送大量的报文来对目标进行攻击, 使得目标机器的计算能力和处理能力大幅度降低, 从而造成目标服务器的服务质量下降甚至停止服务。相较于漏洞利用型攻击方式, 资源消耗型攻击方式更依赖于对目标主机性能的干扰, 由此也产生了后来的分布式拒绝服务攻击。

1 DDoS攻击技术原理
1.1 攻击网络带宽
(1) 直接攻击。直接攻击是指攻击者利用控制的大量主机对受害者发送大量的数据流量, 使得受害者的网络带宽被占据, 并大量消耗服务器和网络设备的处理能力, 达到拒绝服务攻击的目的。例如ICMP/IGMP洪水攻击, UDP洪水攻击等都是典型的DDoS直接攻击方式。

(2) 反射和放大攻击。直接攻击不仅效率低而且容易被追踪, 所以攻击者更多地选择反射攻击。反射攻击又称DRDoS (Distributed Reflection Denial of Service, 分布式反射拒绝服务) , 是指攻击者利用路由器、服务器等设施对请求产生应答, 从而反射出大量的流量对受害者进行攻击的一种DDoS攻击方式。这种攻击方式隐蔽, 更大危害还来自于使用反射过程的放大。放大是一种特殊的反射攻击, 其特殊之处在于反射器对于网络流量具有放大作用, 可以将攻击者较小的流量放大成较大流量, 从而造成更加严重的带宽消耗。

(3) 攻击链路。攻击链路与前面提到的攻击方法不同, 攻击对象不是服务器而是骨干网络上的带宽资源。一种典型的链路攻击方式是Coremelt攻击。首先, 攻击者通过traceroute等手段确定各个僵尸主机与攻击链路之间的位置关系。然后, 由攻击者将僵尸网络分成两部分, 并控制这两部分之间通过骨干网络进行通信。大量的数据包通过骨干网络, 将会造成骨干网络的拥堵和延时。从骨干网络上来看, 通过网络的数据包是真实存在的, 并没有任何有效的方式将真正的数据包与拒绝服务攻击的数据区分开来, 这样使得这种攻击方式更加隐蔽和难以防范。

1.2 攻击系统资源
(1) 攻击TCP连接。TCP是一种面向连接的、可靠的、基于字节流量的传输层控制协议。由于在设计之初考虑更多的是协议的可用性, 缺乏对协议的安全性进行周密比较和详细描述, 因此TCP协议存在许多安全缺陷和安全问题。TCP连接洪水攻击的原理, 就是在建立三次握手过程中, 服务器会创建并保存TCP连接信息, 该信息会被保存在连接表中。但是, 连接表中的空间是有限的, 一旦连接表中存储的数据超过了其最大数目, 服务器就无法创建新的TCP连接。攻击者利用大量的受控主机, 占据连接表中所有空间, 使得目标无法建立新的TCP连接。当大量的受控主机进行攻击时, 其攻击效果非常明显。攻击手段主要有:SYN洪水攻击、PSH+ACK洪水攻击、RST攻击、Sock stress攻击等。

(2) 攻击SSL连接。安全套接字 (Secure Sockets Layer, SSL) 是为网络通信协议提供安全及数据完整性的一种安全协议。其在传输层对数据进行加密, 然而SSL协议在加密、解密和密钥协商的过程中会消耗大量的系统资源。SSL洪水攻击的原理, 就是在SSL握手过程中, 无论接收的数据是否有效, 只能先进行解密才能进行验证, 所以攻击者利用这个特性, 向被攻击者发送大量的无用数据, 消耗目标大量的计算资源。

1.3 攻击应用资源
(1) 攻击DNS服务器。DNS服务是网络服务中一项核心服务, 对DNS服务器攻击造成的影响更具威胁性。针对DNS服务器的攻击, 主要有DNS QUERY洪水攻击和DNS NXDOMAIN攻击两类。DNS QUERY洪水攻击是利用大量的查询请求, 使得DNS服务器进行大量查询, 消耗其大量的计算和存储资源, 使得DNS服务器的服务质量下降, 甚至完全停止服务。在发起该攻击方式时, 考虑到DNS服务器的查询方式, 需要发送大量的不同域名的地址查询, 而且尽量不要选择存储在DNS缓存记录里面的域名。DNS NXDO-MAIN攻击是DNS QUERY洪水攻击的一种变种, 后者攻击时发送的是真实的域名地址, 前者则发送大量不存在的域名地址, 使得DNS服务器进行大量递归查询, 从而使得正常的请求速度变慢, 甚至是拒绝服务。

(2) 攻击Web服务器。随着Web的迅速发展, 人们的生活因此而变得方便快捷, 大量的商务也因此更加方便。所以一旦Web服务器遭到拒绝服务攻击, 那么就会对其承载的大量服务造成巨大的影响。攻击Web服务器, 常用的手段包括HTTP (s) 洪水攻击、Slowloris攻击、慢速POST请求攻击、数据处理过程攻击等。

1.4 混合攻击
攻击者在实施攻击过程中, 并不在意使用了哪种攻击手段, 而更加在意是否能够达到拒绝服务攻击的效果。所以, 攻击者常常使用其能够使用的所有攻击手段进行攻击, 称这种攻击为混合攻击。这些攻击方式是相辅相成、互相补充的, 对于受害者来说, 要面对不同协议、不同资源的攻击, 更加难以防范, 其处理拒绝服务攻击的成本也会大幅提高, 这种攻击更加具有针对性。

除上述提到的攻击方式外, 拒绝服务攻击还可与其它攻击方式相互混合使用。以达到混淆视听, 难以防范的目的。

2 DDoS攻击检测技术
2.1 基本方法
常见的入侵检测方法分为误用检测和异常检测两种。误用检测通过匹配攻击基本特征库检测攻击, 一旦发生攻击, 系统能够快速作出判断, 且误报率低。异常检测则通过发现当前网络状态明显偏离正常状态检测攻击。由于误用检测只能检测攻击类型已知、攻击报文具有明显误用特征的入侵行为, 因此对系统漏洞型的DDoS攻击有较好的作用。随着DDoS攻击的日益发展, 通过操纵大量的傀儡机来达到攻击目标。在原来伪造大量虚假报文的基础上, 改进到可以发送大量的真实报文。所以误用检测对DDoS攻击已经不能有效地进行阻止, 异常检测在防御DDoS攻击发挥着日益重要的作用。

2.2 基于流量特征的攻击检测
基于流量特征的攻击检测是一种基于知识的检测方法。首先收集已知的DDoS攻击的各种特征, 然后将当前网络中的数据包与收集到的各种数据特征进行比较。如果特征与DDoS攻击的特征匹配, 则可以检测出遭受了DDoS攻击。这种检测方法能够准确检测攻击行为, 辨别攻击的类型, 可以采用相应措施来阻止攻击。但缺点是不能检测未知的入侵, 总是滞后于新出现的攻击方式, 需要不断更新特征库, 对系统依赖性较大, 不但系统移植性差, 而且维护工作量也大。这种检测方法一般用于检测利用漏洞型的DDoS攻击。基于流量特征的攻击检测主要使用了特征匹配、模型推理、状态转换和专家系统的方法。

2.3 基于流量异常的攻击检测
基于流量异常的检测是目前常用的方法。基于流量的攻击方法必然会带来流量异常变化。因此, 通过建立模型来判断流量是否异常, 从而知道服务器是否被攻击。流量异常检测可以检测到未知类型的攻击, 然而仅仅通过流量的异常变化并不能判断是否是因为流量攻击而导致的流量异常变化。如正常上班时间周一到周五, 公司服务器的访问数量是一定的, 但是流量异常变化可能是由于人员突然集中或者发生紧急情况人员突然撤离。由此可知流量导致的变化不只是由于攻击造成的, 还有种种可能的原因, 要从中将正常的流量变化与遭受攻击时的流量变化进行区分, 需要确定正常流量是如何变化的。这是确定遭到攻击所必须解决的问题。

已有研究中, 大量异常流量是通过检测时的流量特征进行建模来识别攻击。这种单纯依靠检测时的流量进行区分攻击的方式是不准确的。一旦出现与攻击类似的异常流量变化就会导致检测结果出错。所以这种检测方式是不完善的。

3 DDoS攻击防御技术
一般认为, 除非修改TCP/IP的内核, 否则, 从理论上没有办法彻底解决拒绝服务攻击, 但可以通过一些技术手段有效阻止部分DDoS攻击, 降低攻击的危害。

3.1 攻击源消除
DDoS攻击需要大量的傀儡机才能完成, 离开了傀儡机那么攻击者就不能实施。因此, 可以采取各种措施防止攻击者获得大量傀儡机, 从攻击源头上消除攻击。攻击者能够控制的傀儡机大都是系统存在严重安全漏洞的计算机, 所以要防范计算机成为傀儡机, 就必须对主机的硬件或软件系统存在的安全漏洞进行全面检测, 及时打补丁、修补漏洞。当然在当前的网络体系中, 还可以通过破坏DDoS攻击形成的条件来对该攻击进行防范。当前网络架构下, 接收端被动接收报文, 而对于发送端没有约束。基于授权的攻击预防技术可以控制发送端的流量, 从而达到从源头上解决DDoS攻击。对于一部分不需要向外提供服务的对象, 也可以通过隐藏自己在网络上的存在, 从而达到防范DDoS攻击的效果。

3.2 攻击缓解
攻击缓解是在DDoS攻击发生后, 通过对网络流量的过滤或限制, 削弱攻击者攻击的流量, 尽可能地减少DDoS攻击带来的影响。攻击缓解的基本手段包括报文过滤和速率限制。

(1) 报文过滤。针对源地址进行欺骗的DDoS攻击, 可以通过对报文源IP地址进行检测, 根据IP地址的真假对报文进行过滤防御。入口过滤在攻击源端的边界路由上起作用, 当数据包进入到网络时, 检查报文IP地址是否符合通告的网络标准, 如果不满足就丢弃这个数据包。

(2) 速率限制。当服务器遭受严重DDoS攻击时, 由于边界路由器出现拥塞, 会出现大量的丢包现象。速率限制的核心就是从被丢弃的数据包中寻找信息, 把这些丢弃包中的流量特征进行汇总, 将符合特征的数据包提炼成有价值的数据路, 并通过限制这些数据流从而达到组织DDoS攻击的目的。

3.3 攻击预防
(1) 减少公开暴露。对于企业而言, 减少不必要的分开曝光是十分有效的防御DDoS攻击的一种方式, 及时关闭不必要的服务, 设置安全群组和私有网络, 禁止对主机的非开放服务, 限制打开最大SYN连接数, 限制特定IP地址的访问。通过这些方式可以减少受到攻击的可能性。

(2) 利用扩展和冗余。DDoS攻击对不同的协议层具有多种攻击方式, 因此尽可能采取多种手段进行防范。利用扩展和冗余是在受到攻击前做好防范。它能使得系统在遭受攻击时具有一定的可扩展性, 不至于一旦受到攻击就将完全暂停服务, 尽可能减少DDoS攻击带来的危害。

(3) 提升网络带宽保证能力。网络带宽直接决定抗DDoS攻击的能力, 如果带宽仅仅只能10M的话, 无论如何都不能抵御DDoS攻击。理论上讲网络带宽越大越好, 但是考虑到经济原因, 不可能无限制地将网络带宽提高, 要在经济能力允许的范围内尽量提高网络带宽的保证能力。

(4) 分布式资源共享服务器。将数据和程序分布在多个服务器上, 建立分布式资源共享服务器。分布式资源共享服务器有利于协调整个系统共同解决问题, 进行更加优化的资源分配。能够克服传统的资源紧张与响应瓶颈的缺陷, 分布式规模越大, 防御攻击也就更加容易。

(5) 监控系统性能。对系统性能进行监控也是预防DDoS攻击的一种重要方式, 不合理的服务器配置会使得系统容易被DDoS攻击, 对API、CDN和DNS等第三方服务进行监控, 对网络节点进行监视, 及时发现并清理可能出现的漏洞。当这些性能出现异常后, 及时进行维护。对网络日志进行定期查阅, 看是否有异常入侵, 及时做好防范工作。

3.4 IP地址溯源
在攻击过程中, 可以根据攻击来源来设定过滤, 将攻击来源处的流量进行过滤达到降低攻击强度的效果;另外, 还可以将收集到的信息作为法律证据对攻击者进行法律制裁。IP地址溯源技术主要有:连接测试、随机采样、登录分析等。

4 结语
DDoS攻击攻击方式难以检测。目前, 检测技术不完善、攻击检测技术方法实用性差, 并且随着攻防技术的不断发展, 分布式拒绝分布攻击也呈现出了新的特性, 对其进行防御和检测愈加困难, 一直是网络安全领域研究的重点。本文在分析DDoS攻击技术原理的基础上, 分析了误用检测和异常检测两种方式在DDoS攻击检测中的优缺点, 并重点分析了基于流量特征和流量异常两类攻击的检测方法。最后, 全面分析了适用于DDoS攻击防御的技术手段, 可为相关单位和组织在防御DDoS攻击时提供技术参考。


 

猜你喜欢

转载自blog.csdn.net/dwj_daiwenjie/article/details/88856837