DoS攻击技术
一、DoS/DDos攻击简介
DoS(Denial of Service)通过攻击目标主机(网络),使其无法提供(接受)正常服务。如:使受攻击的主机系统瘫痪;使受攻击的主机服务失效,合法用户无法得到相应的资源,使受攻击的主机用户无法使用网络连接等。
DDoS(Distributed Denial of Service)分布式拒绝服务攻击,是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布式、协作的大规模攻击方式,主要目标是比较大的站点,如企业网站、搜索引擎和政府部门的站点。基本的DoS攻击只要一台能连接Internet的单机就可实现,DDoS攻击则利用一批受控的机器向服务器发起攻击,具有较大的破坏性。
形式基本分为三种:
1.消耗资源
- 网络资源
- 带宽资源
- 其他资源衰竭,如磁盘空间、进程数
2.修改配置信息造成DoS
比如,修改路由器信息,造成不能访问网络;修改NT注册表,也可以关掉某些功能。
3.物理部件的移除或破坏
二、DoS/DDos攻击原理
1.Ping of Death
- ping的功能为测试与特定目标主机间联机是否畅通,这是典型的ICMP应用。
- 攻击者故意在ICMP Echo数据包(ping包)之后附加非常多的冗余信息,使数据包的尺寸超过65535个字节的上限。
- 接收方对这种数据包进行处理时就会出现内存分配错误,导致TCP/IP堆栈溢出,从而引起系统崩溃,挂起或重启。
2.Teardrop
- Teardrop指的是向目标机器发送损坏的IP包,诸如重叠的包或过大的包载荷,该攻击通过TCP/IP协议栈中分片重组代码中的bug来瘫痪各种不同的操作系统。
- MTU限制传输数据包的大小,大数据包需要分段。Teardrop攻击就是利用这种分割重组间的漏洞而产生的攻击方式。
- Teardrop攻击使接收数据方重组数据包时,出现数据包长度超大,导致溢出。
3.Land攻击
Land攻击:利用特殊的TCP封包传送至目标主机,使其因无法判别而宕机或被迫重启
攻击原理:用一个特别打造的SYN包,它的源地址和目标地址都被设置成某一个服务器地址。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器接收一个这样的连接都将保留,直到超时。
4.SYN洪水
原理:
- 每个机器都需要为半开连接分配一定的资源
- 这种半开连接的数量是有限制
- 攻击方利用TCP连接三次握手过程,打开大量的半开TCP连接
- 目标机器不能进一步接受TCP连接。机器就不再接受进来的连接请求。
攻击细节
连接请求是正常的,但是,源IP地址往往是伪造的,并且是一台不可达的机器的IP地址,否则,被伪造地址的机器会重置这些半开连接
一般,半开连接超时之后,会自动清除,所以,攻击者的系统发出SYN包的速度要比目标机器清楚半开连接速度要快
任何连接到Internet上并提供基于TCP的网络服务,都有可能成为攻击的目标
这样的攻击很难跟踪,因为源地址往往不可信,而且不在线。
5.Smurf
原理:
- 攻击者向一个广播地址发送ICMP Echo请求,并且用受害者的IP地址作为源地址
- 广播地址网络上的每台机器响应这些Echo请求,同时向受害者主机发送ICMP Echo-Reply应答
- 受害者主机会被这些大量的应答包淹没
受影响的系统:大多数操作系统和路由器
变种:fraggle,使用UDP包,称为udpsmurf
比如,7端口echo,如果目标机器的端口开着,则送回应答UDP数据包,否则,产生ICMP端口不可达消息
6.UDP洪水
因为UDP的不可靠,通过发送大量UDP数据包而导致目标系统的计算负载出现显著增加的事情并不是很容易。
Foundstone公司开发的udpflood工具提供了一个简单的办法来演示这种技术。除了能够在最短的时间里发出尽可能多的UDP数据包以外,UDP洪水没有任何技术方面的突出之处。尽管如此,仍需要在网络边界阻断绝大多数UDP端口。
7.HTTP洪水
这类攻击会占用大量的HTTP进程,从而耗费大量的系统资源。最终,会导致系统因不堪重负而崩溃掉。
最典型的HTTP GET FLOOD攻击为例。
HTTP GET FLOOD是针对应用服务器上的某个文件,对其进行快速的反复的重复读取操作,从而造成服务器的资源减少直至崩溃。
HTTP GET FLOOD针对的不仅仅是WEB服务器,还有数据库服务器。大量的HTTP请求产生了大量的数据库查询,可以在几秒之内使数据库停止响应,系统负载升高,最终导致服务器宕机。
三、DoS/DDos攻击检测
1.按检测模式分类的检测方法
①基于误用的DDoS检测
基于无用的DDoS攻击检测是指事先收集已有DDoS攻击的各种攻击特征相比较,如果特征匹配则发现DDoS攻击。
基于误用方法依赖于攻击特征的选取,一般用于检测利用漏洞型DDoS攻击。
基于误用的DDoS检测主要是利用了特征匹配、模型推理、状态转换和专家系统的方法。
②基于异常的DDoS检测
基于异常的DDoS攻击检测是指通过监视系统审计记录上系统使用的异常情况,可以检测出违反安全的事件。目前,大多数的DDoS攻击检测都属于异常检测。
基于异常的DDoS检测取决于检测模型的建立,不同的模型对应着不同的检测方式,主要包括统计检测、模式预测、人工智能检测、机器学习检测四种方法。
- 统计检测是通过计算网络正常工作时流量的阈值,然后与当前网络流量进行比较,如果当前网络流量超过了阈值则说明可能发生了DDoS攻击。
- 模式检测就是通过分析攻击发生前必然发生的一些现象来判断是否发生了DDoS攻击。
- 人工智能检测主要包括数据挖掘、人工神经网络和模糊理论等。
- 使用机器学习的方法实现DDoS攻击的检测也是可行的。
③混合模式DDoS检测
混合模式DDoS攻击检测是将误用的DDoS攻击检测和异常DDoS攻击检测两种方式混合使用。
通常使用数据挖掘的方法,由异常检测发现攻击,从发现的攻击中摘录特征放入误用模式特征库中,再利用误用检测方法来检测DDoS攻击。但实际效果根据具体情况的不同也有差异。
2.按算法部署位置分类的检测方法
源端检测
源端DDoS攻击检测:将检测算法布置在发出攻击数据包的主机所处网络的边界路由器上。
将DDoS攻击检测系统部署在源端,可以使得攻击数据流在进入网络之前被阻止。
中间网络检测
中间网络DDoS攻击检测:将攻击检测算法部署在整个网络上,包括路由器、交换机或其他网络设备。
在中间网络进行检测,通常是在核心路由器上部署分布式DDoS防御检测系统。
目的端检测
目的端DDoS攻击检测:将算法部署在被攻击主机和相关网络设备上。目前应用得最多的攻击检测是在目的端进行的。
3.DDoS攻击检测方法的分析
DoS/DDos攻击防范
域名服务器接收到大量的反向解析目标IP主机名的PTR查询请求。这是由于攻击者在进行DDoS攻击前总要解析目标的主机名,发出PTR反向查询请求。BIND域名服务器能够记录这些请求。
网络通讯流量明显超出正常工作时的极限流量。目前的技术能够分别对不同的源地址计算出对应的极限流量值,明显超出此极限值就表明存在DoS攻击的通讯。
出现特大型的UDP和ICMP数据包。正常的UDP会话一般都使用小的UDP包,通常有效数据内容不超过10字节。正常的ICMP消息一般也不会超过128字节。那些尺寸明显大地多的数据很有可能就是控制信息,主要含有加密后的目标地址和一些命令。
出现不属于正常连接通讯TCP和UDP数据包。那些连接到高于1024而且不属于常见网络服务的目标端口的数据包是非常值得怀疑的。比如机器仅作为Web服务器使用,而外来数据包却直接发送至FTP端口或其他一些任意的端口,那么很可能正在被攻击。
数据段内容只包含文字和数字字符的数据包。这往往时数据经过BASE64编码后形成的,因而只含有base64字符集字符。TFN2K发送的控制信息数据包就是这种类型。