第6章 拒绝服务攻击与防御技术
张玉清
国家计算机网络入侵防范中心
2022/3/23 网络入侵与防范讲义 2
本章内容安排
拒绝服务攻击概述
典型拒绝服务攻击技术
分布式拒绝服务攻击
拒绝服务攻击的防御
分布式拒绝服务攻击的防御
小结
2022/3/23 网络入侵与防范讲义 3
拒绝服务攻击概述
拒绝服务攻击的概念
拒绝服务攻击的类型
2022/3/23 网络入侵与防范讲义 4
拒绝服务攻击的概念
拒绝服务( Denial of Service,简称DoS),是
一种简单的破坏性攻击,通常是利用传输协议中的某
个弱点、系统存在的漏洞、或服务的漏洞,对目标系
统发起大规模的进攻,用超出目标处理能力的海量数
据包消耗可用系统资源、带宽资源等,或造成程序缓
冲区溢出错误,致使其无法处理合法用户的正常请求,
无法提供正常服务,最终致使网络服务瘫痪,甚至系
统死机。
简单的说,拒绝服务攻击就是让攻击目标瘫痪的一种
“损人不利己”的攻击手段。
2022/3/23 网络入侵与防范讲义 5
拒绝服务攻击的概念
历史上最著名的拒绝服务攻击服务恐怕要数
Morris蠕虫事件,1988年11月,全球众多
连在因特网上的计算机在数小时内无法正常
工作,这次事件中遭受攻击的包括5个计算
机中心和12个地区结点,连接着政府、大学、
研究所和拥有政府合同的25万台计算机。这
次病毒事件,使计算机系统直接经济损失达
9600万美元。
许多知名网站如Yahoo、eBay、CNN、百
度、新浪等都曾遭受过DoS攻击。
2022/3/23 网络入侵与防范讲义 6
拒绝服务攻击的概念
拒绝服务攻击可能是蓄意的,也可能是偶
然的。
当未被授权的用户过量使用资源时,攻击
是蓄意的;当合法用户无意地操作而使得
资源不可用时,则是偶然的。
应该对两种拒绝服务攻击都采取预防措施。
但是拒绝服务攻击问题也一直得不到合理
的解决,究其原因是因为这是由于网络协
议本身的安全缺陷造成的。
2022/3/23 网络入侵与防范讲义 7
拒绝服务攻击的类型
最常见的DoS攻击是利用合理的服务请求来
占用过多的服务资源,致使服务超载,无法
响应其他的请求。
这些服务资源包括网络带宽、文件系统空间
容量、开放的进程、向内的连接等。
这种攻击会导致资源的匮乏,无论计算机的
处理速度多么快,内存容量多么大,互联网
带宽多么大都无法避免这种攻击带来的后果。
2022/3/23 网络入侵与防范讲义 8
拒绝服务攻击的类型
从实施DoS攻击所用的思路来看,DoS攻击可以分为:
滥用合理的服务请求
过度地请求系统的正常服务,占用过多服务资源,致使系统超载。
这些服务资源通常包括网络带宽、文件系统空间容量、开放的进程
或者连接数等
制造高流量无用数据
恶意地制造和发送大量各种随机无用的数据包,用这种高流量的无
用数据占据网络带宽,造成网络拥塞
利用传输协议缺陷
构造畸形的数据包并发送,导致目标主机无法处理,出现错误或崩
溃,而拒绝服务
利用服务程序的漏洞
针对主机上的服务程序的特定漏洞,发送一些有针对性的特殊格式
的数据,导致服务处理错误而拒绝服务
2022/3/23 网络入侵与防范讲义 9
拒绝服务攻击的类型
按漏洞利用方式分类,DoS攻击可以分为:
特定资源消耗类
主要利用TCP/IP协议栈、操作系统或应用程序设计上的
缺陷,通过构造并发送特定类型的数据包,使目标系统
的协议栈空间饱和、操作系统或应用程序资源耗尽或崩
溃,从而达到DoS的目的。
暴力攻击类
依靠发送大量的数据包占据目标系统有限的网络带宽或
应用程序处理能力来达到攻击的目的。通常暴力攻击需
要比特定资源消耗攻击使用更大的数据流量才能达到目
的。
2022/3/23 网络入侵与防范讲义 10
拒绝服务攻击的类型
按攻击数据包发送速率变化方式,DoS攻击可分为:
固定速率
可变速率
根据数据包发送速率变化模式,又可以分为震荡变化型
和持续增加型。
震荡变化型变速率发送方式间歇性地发送数据包,使入
侵检测系统难以发现持续的异常。
持续增加型变速率发送方式可以使攻击目标的性能缓慢
下降,并可以误导基于学习的检测系统产生错误的检测
规则。
2022/3/23 网络入侵与防范讲义 11
拒绝服务攻击的类型
按攻击可能产生的影响,DoS攻击可以分为:
系统或程序崩溃类
根据可恢复的程度,系统或程序崩溃类又可以分为:自
我恢复类、人工恢复类、不可恢复类等。
自我恢复类是指当攻击停止后系统功能可自动恢复正常。
人工恢复类是指系统或服务程序需要人工重新启动才能
恢复。不可恢复类是指攻击给目标系统的硬件设备、文
件系统等造成了不可修复性的损坏。
服务降级类
系统对外提供服务的服务下降
2022/3/23 网络入侵与防范讲义 12
典型案例:百度遭受大规模SYN Flooding攻击
2006年9月12日下午,百度遭受有史以来最大规
模的不明身份黑客攻击,导致百度搜索服务在全国
各地出现了近30分钟的故障,黑客所使用的手段
是Syn Flooding分布式拒绝服务攻击。
新华网报道:
/2006-09/14/
下页是新闻的部分截图。
2022/3/23 网络入侵与防范讲义 13
2022/3/23 网络入侵与防范讲义 14
典型拒绝服务攻击技术
Ping of Death
泪滴(Teardrop)
IP欺骗DoS攻击
UDP洪水
SYN洪水
Land攻击
Smurf攻击
Fraggle攻击
电子邮件炸弹
畸形消息攻击
Slashdot effect
WinNuke攻击
2022/3/23 网络入侵与防范讲义 15
Ping of Death
Ping是一个非常著名的程序,这个程序的目的是
为了测试另一台主机是否可达。现在所有的操作系
统上几乎都有这个程序,它已经成为系统的一部分。
Ping程序的目的是为了查看网络上的主机是否处
于活动状态。
通过发送一份ICMP回显请求报文给目的主机,并
等待返回ICMP回显应答,根据回显应答的内容判
断目的主机的状况。
2022/3/23 网络入侵与防范讲义 16
Ping of Death
Ping之所以会造成伤害是源于早期操作系统在处
理ICMP协议数据包存在漏洞。
ICMP协议的报文长度是固定的,大小为64KB
,早期很多操作系统在接收ICMP数据报文的时
候,只开辟64KB的缓存区用于存放接收到的数
据包。
一旦发送过来的ICMP数据包的实际尺寸超过
64KB(65536B),操作系统将收到的数据报文
向缓存区填写时,报文长度大于64KB,就会产
生一个缓存溢出,结果将导致TCP/IP协议堆栈
的崩溃,造成主机的重启动或是死机。
2022/3/23 网络入侵与防范讲义 17
Ping of Death
Ping程序有一个“-l”参数可指定发送数据包的
尺寸,因此,使用Ping这个常用小程序就可以简
单地实现这种攻击。例如通过这样一个命令:
Ping -l 65540
如果对方主机存在这样一个漏洞,就会形成一次
拒绝服务攻击。这种攻击被称为“死亡之Ping”。
2022/3/23 网络入侵与防范讲义 18
Ping of Death
现在的操作系统都已对这一漏洞进行了修补。对可
发送的数据包大小进行了限制。
在Windows xp sp2操作系统中输入这样的命令:
Ping -l 65535
系统返回这样的信息:
Bad value for option -l, valid range
is from 0 to 65500.
2022/3/23 网络入侵与防范讲义 19
Ping of Death
Ping Of Death攻击的攻击特征、检测方法
和反攻击方法总结如下:
攻击特征:该攻击数据包大于65535个字节。由于
部分操作系统接收到长度大于65535字节的数据包
时,就会造成内存溢出、系统崩溃、重启、内核失
败等后果,从而达到攻击的目的。
检测方法:判断数据包的大小是否大于65535个字
节。
反攻击方法:使用新的补丁程序,当收到大于
65535个字节的数据包时,丢弃该数据包,并进行
系统审计。
2022/3/23 网络入侵与防范讲义 20
泪滴(Teardrop)
“泪滴”也被称为分片攻击,它是一种典型
的利用TCP/IP协议的问题进行拒绝服务攻
击的方式,由于第一个实现这种攻击的程序
名称为Teardrop,所以这种攻击也被称为
“泪滴”。
2022/3/23 网络入侵与防范讲义 21
泪滴(Teardrop)
两台计算机在进行通信时,如果传输的数据量较
大,无法在一个数据报文中传输完成,就会将数
据拆分成多个分片,传送到目的计算机后再到堆
栈中进行重组,这一过程称为“分片”。
为了能在到达目标主机后进行数据重组,IP包的
TCP首部中包含有信息(分片识别号、偏移量、
数据长度、标志位)说明该分段是原数据的哪一
段,这样,目标主机在收到数据后,就能根据首
部中的信息将各分片重新组合还原为数据。
2022/3/23 网络入侵与防范讲义 22
例子
2022/3/23 网络入侵与防范讲义 23
例子(2)
如上图所示,从客户机向服务器发送一个数
据报文无法发送完成的数据,这些数据会被
分片发送。
报文1、2、3是TCP连接的三次握手过程,
接着4、5、6客户机向服务器发送三个报文,
在这三个数据报文首部信息中,有每个报文
的分片信息。
2022/3/23 网络入侵与防范讲义 24
例子(3)
这就是报文重组的信息:
PSH 1:1025(1024) ack 1, win 4096
PSH 1025:2049(1024) ack 1, win 4096
PSH 2049:3073(1024) ack 1, win 4096
在这个报文中,可以看到在第4、5、6这三个报文
中,第4个发送的数据报文中是原数据的第1~
1025字节内容,第5个发送的报文包含的是第
1025~2048字节,第6个数据报文是第2049~
3073个字节,接着后面是继续发送的分片和服务
器的确认。当这些分片数据被发送到目标主机后,
目标主机就能够根据报文中的信息将分片重组,还
原出数据。
2022/3/23 网络入侵与防范讲义 25
例子(4)
如果入侵者伪造数据报文,向服务器发送含有重
叠偏移信息的分段包到目标主机,例如如下所列
的分片信息:
PSH 1:1025(1024) ack1, win4096
PSH 1000:2049(1024) ack1, win4096
PSH 2049:3073(1024) ack1, win4096
这样的信息被目的主机收到后,在堆栈中重组时,
由于畸形分片的存在,会导致重组出错,这个错
误并不仅仅是影响到重组的数据,由于协议重组
算法,会导致内存错误,引起协议栈的崩溃。
2022/3/23 网络入侵与防范讲义 26
泪滴(teardrop)
泪滴攻击的攻击特征、检测方法和反攻击
方法总结如下:
攻击特征:Teardrop工作原理是向被攻击者
发送多个分片的IP包,某些操作系统收到含有
重叠偏移的伪造分片数据包时将会出现系统崩
溃、重启等现象。
检测方法:对接收到的分片数据包进行分析,
计算数据包的片偏移量(Offset)是否有误。
反攻击方法:添加系统补丁程序,丢弃收到的
病态分片数据包并对这种攻击进行审计。
2022/3/23 网络入侵与防范讲义 27
IP欺骗DoS攻击
这种攻击利用RST位来实现。
假设现在有一个合法用户()已经同
服务器建立了正常的连接,攻击者构造攻击的TCP
数据,伪装自己的IP为,并向服务
器发送一个带有RST位的TCP数据段。服务器接收
到这样的数据后,认为发送的连接
有错误,就会清空缓冲区中建立好的连接。
这时,如果合法用户再发送合法数
据,服务器就已经没有这样的连接了,该用户就必
须从新开始建立连接。
2022/3/23 网络入侵与防范讲义 28
IP欺骗DoS攻击
攻击时,攻击者会伪造大量的IP地址,
向目标发送RST数据,使服务器不对合
法用户服务,从而实现了对受害服务器
的拒绝服务攻击。
2022/3/23 网络入侵与防范讲义 29
UDP洪水
2022/3/23 网络入侵与防范讲义 30
UDP洪水
当我们向echo服务的端口发送一个数据时,
echo服务会将同样的数据返回给发送方,而
chargen服务则会随机返回字符。
当两个或两个以上系统存在这样的服务时,攻击者
利用其中一台主机向另一台主机的echo或者
chargen服务端口发送数据,echo和chargen
服务会自动进行回复,这样开启echo和chargen
服务的主机就会相互回复数据。
由于这种做法使一方的输出成为另一方的输入,两
台主机间会形成大量的UDP数据包。当多个系统
之间互相产生UDP数据包时,最终将导致整个网
络瘫痪。
2022/3/23 网络入侵与防范讲义 31
UDP洪水实例(UDP-Flood)
IP/hostname和
port:输入目标主机
的IP地址和端口号;
Max duration:设
定最长的攻击时间;
Speed:设置UDP包
发送速度;
Data:指定发送的
UDP数据包中包含的
内容。
2022/3/23 网络入侵与防范讲义 32
UDP洪水实例(2)
对局域网网内的一
台计算机
发起UDP Flood
攻击,发包速率为
250PPS。
2022/3/23 网络入侵与防范讲义 33
UDP洪水实例(3)
在被攻击的计算机上
打开Sniffer工具,可以捕捉由攻击
者计算机发到本机的UDP数据包,可
以看到内容为“***** UDP Flood.
Server stress test *****”的大
量UDP数据包,如下页图所示。
如果加大发包速率和增加攻击机的数量,
则目标主机的处理能力将会明显下降。
2022/3/23 网络入侵与防范讲义 34
UDP“洪水”实例
2022/3/23 网络入侵与防范讲义 35
SYN洪水
SYN Flood是当前最流行的拒绝服务攻击方式之
一,这是一种利用TCP协议缺陷,发送大量伪造的
TCP连接请求,使被攻击方资源耗尽(CPU满负荷
或内存不足)的攻击方式。
SYN Flood是利用TCP连接的三次握手过程的特
性实现的。
2022/3/23 网络入侵与防范讲义 36
SYN洪水
在TCP连接的三次握手过程中,假设一个客户端
向服务器发送了SYN报文后突然死机或掉线,那
么服务器在发出SYN/ACK应答报文后是无法收
到客户端的ACK报文的,这种情况下服务器端一
般会重试,并等待一段时间后丢弃这个未完成的连
接。这段时间的长度我们称为SYN Timeout。
一般来说这个时间是分钟的数量级。
一个用户出现异常导致服务器的一个线程等待1分
钟并不是什么很大的问题,但如果有一个恶意的攻
击者大量模拟这种情况(伪造IP地址),服务器端
将为了维护一个非常大的半连接列表而消耗非常多
的资源。
2022/3/23 网络入侵与防范讲义 37
SYN洪水
即使是简单的保存并遍历半连接列表也会消耗非
常多的CPU时间和内存,何况还要不断对这个列
表中的IP进行SYN+ACK的重试。
实际上如果服务器的TCP/IP栈不够强大,最后
的结果往往是堆栈溢出崩溃——既使服务器端的
系统足够强大,服务器端也将忙于处理攻击者伪
造的TCP连接请求而无暇理睬客户的正常请求,
此时从正常客户的角度看来,服务器失去响应,
这种情况就称作:服务器端受到了SYN Flood攻
击(SYN洪水攻击)。
2022/3/23 网络入侵与防范讲义 38
SYN“洪水”攻击示意图
2022/3/23 网络入侵与防范讲义 39
SYN“洪水”攻击实例
局域网环境,有一台攻击机
(PIII667/128/mandrake),被攻
击的是一台Solaris 的主机,网络设
备是Cisco的百兆交换机。
后面将显示在Solaris上进行snoop抓包
的记录。
注:snoop与tcpdump等网络监听工具
一样,是一个网络抓包与分析工具。
2022/3/23 网络入侵与防范讲义 40
SYN“洪水”攻击实例(2)
攻击示意图:
2022/3/23 网络入侵与防范讲义 41
SYN“洪水”攻击实例(3)
攻击机开始发包,DoS开始了…,突然间
Solaris主机上的snoop窗口开始飞速地翻
屏,显示出接到数量巨大的Syn请求。这时
的屏幕就好象是时速300公里的列车上的一
扇车窗。
Syn Flood攻击时的snoop输出结果如下
页图所示。
2022/3/23 网络入侵与防范讲义 42
SYN“洪水”攻击实例(4)
2022/3/23 网络入侵与防范讲义 43
SYN“洪水”攻击实例(4)
此时,目标主机再也收不到刚才那些正常的
网络包,只有DoS包。
大家注意一下,这里所有的Syn Flood攻
击包的源地址都是伪造的,给追查工作带来
很大困难。
这时在被攻击主机上积累了多少Syn的半连
接呢?用netstat来看一下:
# netstat -an | grep SYN。
结果如下页图所示。
2022/3/23 网络入侵与防范讲义 44
2022/3/23 网络入侵与防范讲义 45
SYN“洪水”攻击实例(5)
其中SYN_RCVD表示当前未完成的TCP SYN队列,统计一下(wc
是文件内容统计命令,-l选项表示统计行数):
# netstat -an | grep SYN | wc -l
5273
# netstat -an | grep SYN | wc -l
5154
# netstat -an | grep SYN | wc -l
5267
…..
共有五千多个Syn的半连接存储在内存中。这时候被攻击机已经不能
响应新的服务请求了,系统运行非常慢,也无法ping通。而这只是在攻击
发起后仅仅70秒钟左右时的情况。
2022/3/23 网络入侵与防范讲义 46
SYN“洪水”的防御
SYN洪水攻击比较难以防御,以下是几种解
决方法:
缩短SYN Timeout时间
设置SYN Cookie
负反馈策略
退让策略
分布式DNS负载均衡
防火墙
2022/3/23 网络入侵与防范讲义 47
缩短SYN Timeout时间
由于SYN Flood攻击的效果取决于服务器
上保持的SYN半连接数,这个值=SYN攻
击的频度 x SYN Timeout,所以通过缩
短从接收到SYN报文到确定这个报文无效并
丢弃该连接的时间,可以成倍的降低服务器
的负荷。
2022/3/23 网络入侵与防范讲义 48
设置SYN Cookie
就是给每一个请求连接的IP地址分配一个
Cookie,如果短时间内连续受到某个IP的
重复SYN报文,就认定是受到了攻击,以后
从这个IP地址来的包会被丢弃。
2022/3/23 网络入侵与防范讲义 49
负反馈策略
正常情况下,OS对TCP连接的一些重要参数有一
个常规的设置: SYN Timeout时间、SYN-
ACK的重试次数、SYN报文从路由器到系统再到
Winsock的延时等等。
这个常规设置针对系统优化,可以给用户提供方便
快捷的服务;一旦服务器受到攻击,SYN Half
link 的数量超过系统中TCP活动Half link最大
连接数的设置,系统将会认为自己受到了SYN
Flood攻击,并将根据攻击的判断情况作出反应:
减短SYN Timeout时间、减少SYN-ACK的重
试次数、自动对缓冲区中的报文进行延时等等措施,
力图将攻击危害减到最低。
2022/3/23 网络入侵与防范讲义 50
退让策略
退让策略是基于SYN Flood攻击代码的一个缺陷:
SYN Flood一旦攻击开始,将不会再进行域名解
析。
切入点:假设一台服务器在受到SYN Flood攻击
后迅速更换自己的IP地址,那么攻击者仍在不断
攻击的只是一个空的IP地址,并没有任何主机,
而防御方只要将DNS解析更改到新的IP地址就能
在很短的时间内恢复用户通过域名进行的正常访问。
为了迷惑攻击者,我们甚至可以放置一台“牺牲”
服务器让攻击者满足于攻击的“效果” 。
2022/3/23 网络入侵与防范讲义 51
分布式DNS负载均衡
在众多的负载均衡架构中,基于DNS解析
的负载均衡本身就拥有对SYN Flood的免
疫力。
基于DNS解析的负载均衡能将用户的请求
分配到不同IP的服务器主机上,攻击者攻击
的永远只是其中一台服务器,一来这样增加
了攻击者的成本,二来过多的DNS请求可
以帮助我们追查攻击者的真正踪迹。
2022/3/23 网络入侵与防范讲义 52
防火墙
在防火墙设置了正确的规则后,可以识别
SYN Flood攻击所采用的攻击方法,并将
攻击包阻挡在外。
2022/3/23 网络入侵与防范讲义 53
Land攻击
Land是因特网上最常见的拒绝服务攻击类
型,它是由著名黑客组织rootshell发现的。
原理很简单,向目标机发送大量的源地址和
目标地址相同的包,造成目标机解析Land
包时占用大量的系统资源,从而使网络功能
完全瘫痪。
2022/3/23 网络入侵与防范讲义 54
Land攻击
Land攻击也是利用TCP的三次握手过程的缺陷进
行攻击。
Land攻击是向目标主机发送一个特殊的SYN包,
包中的源地址和目标地址都是目标主机的地址。目
标主机收到这样的连接请求时会向自己发送
SYN/ACK数据包,结果导致目标主机向自己发
回ACK数据包并创建一个连接。
大量的这样的数据包将使目标主机建立很多无效的
连接,系统资源被大量的占用。
2022/3/23 网络入侵与防范讲义 55
Land攻击
Land攻击示意图:
2022/3/23 网络入侵与防范讲义 56
Land攻击
Land攻击可简要概括如下:
攻击特征:用于Land攻击的数据包中的源地址和目标
地址是相同的。操作系统接收到这类数据包时,不知
道该如何处理堆栈中的这种情况,或者循环发送和接
收该数据包,消耗大量的系统资源,从而有可能造成
系统崩溃或死机等现象。
检测方法:判断网络数据包的源/目标地址是否相同。
反攻击方法:适当配置防火墙设备或过滤路由器的过
滤规则可以防止这种攻击行为,并对这种攻击进行审
计。
2022/3/23 网络入侵与防范讲义 57
Smurf攻击
Smurf攻击是利用IP欺骗和ICMP回应包引起目
标主机网络阻塞,实现DoS攻击。
Smurf攻击原理:在构造数据包时将源地址设置
为被攻击主机的地址,而将目的地址设置为广播地
址,于是,大量的ICMP echo回应包被发送给被
攻击主机,使其因网络阻塞而无法提供服务。
比Ping of Death洪水的流量高出1或2个数量级。
2022/3/23 网络入侵与防范讲义 58
Smurf攻击
Smurf攻击示意图:
2022/3/23 网络入侵与防范讲义 59
Smurf攻击
如上例所示,入侵者的主机发送了一个数据包,
而目标主机就收到了三个回复数据包。
如果目标网络是一个很大的以太网,有200台
主机,那么在这种情况下,入侵者每发送一个
ICMP数据包,目标主机就会收到200个数据
包,因此目标主机很快就会被大量的回复信息
吞没,无法处理其他的任何网络传输。
这种攻击不仅影响目标主机,还能影响目标主
机的整个网络系统。
2022/3/23 网络入侵与防范讲义 60
Smurf攻击例子
B类网络
攻击者冒充服务器向一
个B类网络的广播地址发
送ICMP echo包
整个B类网络
的所有系统都
向此服务器回
应一个icmp
reply包
2022/3/23 网络入侵与防范讲义 61
Fraggle攻击
Fraggle攻击原理与Smurf一样,也是采
用向广播地址发送数据包,利用广播地址的
特性将攻击放大以使目标主机拒绝服务。
不同的是,Fraggle使用的是UDP应答消
息而非ICMP。
2022/3/23 网络入侵与防范讲义 62
电子邮件炸弹
电子邮件炸弹是最古老的匿名攻击之一,由于这种
攻击方式简单易用,互联网上也很容易找到这些发
送匿名邮件的工具,并且入侵者只需要知道对方的
电子邮件地址就可以进行攻击了。
传统的电子邮件炸弹只是简单的往你的邮箱里发送
大量的邮件,入侵者的目的是要用垃圾邮件填满你
的邮箱后,正常的邮件就会因空间不够而被服务器
拒收。
2022/3/23 网络入侵与防范讲义 63
电子邮件炸弹
如果用户的邮箱使用空间不受限制,那么电子邮件
炸弹攻击就有可能影响到服务器的正常工作了。
最有可能的情况是入侵者不断发送大量的电子邮件,
由于用户的邮箱空间不受限制,服务器会接收全部
的邮件并保存在硬盘上。大量到来的邮件将不断吞
噬服务器上的硬盘空间,最终将耗尽服务器上的所
有硬盘空间,使得服务器无法再对外服务。
还有一种可能是通过设置一台机器不断地大量向同
一地址发送电子邮件,入侵者能够耗尽接收者网络
的带宽。
2022/3/23 网络入侵与防范讲义 64
电子邮件炸弹
电子邮件是通过SMTP协议进行发送的,最初的
SMTP协议服务是不需要进行身份认证的,在发
送电子邮件的过程中不对用户进行身份认证。
SMTP不会进行认证,邮件的发送人可以伪造任
何邮件地址,甚至可以不写发件人的信息。这就是
能发送匿名邮件的原因。
针对SMTP的问题,新的SMTP协议规范新增了2
个命令,对发送邮件的发件人进行身份认证,在一
定程度上降低了匿名电子邮件的风险。
2022/3/23 网络入侵与防范讲义 65
畸形消息攻击
畸形消息攻击是一种有针对性的攻击方式,
它利用目标主机或者特定服务存在的安全漏
洞进行攻击。
目前无论是Windows、Unix、Linux等
各类操作系统上的许多服务都存在安全漏洞,
由于这些服务在处理信息之前没有进行适当
正确的错误校验,所以一旦收到畸形的信息
就有可能会崩溃。
2022/3/23 网络入侵与防范讲义 66
畸形消息攻击
例如,在IIS 5没有安装相应的修补包以及没有相
应的安全措施时,向IIS 5服务器递交如下的URL
会导致IIS 5停止服务:
http://testIP/...[25kb of ‘.’]...ida
而向IIS 5递交如下的HTTP请求会导致IIS系统
的崩溃,需要重启动才能恢复:
“GET /......[3k]...... .htr HTTP/”
这两者都是向服务器提交正常情况下不会出现的请
求,导致服务器处理错误而崩溃,是典型的畸形消
息攻击。
2022/3/23 网络入侵与防范讲义 67
Slashdot effect
Slashdot effect来自这个网站,这
曾是十分知名而且浏览人数十分庞大的IT、电子、娱
乐网站,也是blog网站的开宗始祖之一。由于
的知名度和浏览人数的影响,在
上的文章中放入的网站链接,有可能
一瞬间被点入上千次,甚至上万次,造成这个被链接
的网站承受不住突然增加的连接请求,出现响应变慢、
崩溃、拒绝服务。这种现象就称为Slashdot effect
,这种瞬间产生的大量进入某网站的动作,也称作
Slashdotting。
2022/3/23 网络入侵与防范讲义 68
Slashdot effect
这种攻击手法使web服务器或其他类型的服务器由于
大量的网络传输而过载,一般这些网络流量是针对某一
个页面或一个链接而产生的。
当然这种现象也会在访问量较大的网站上正常的发生,
但一定要把这些正常现象和攻击区分开来。
如果您的服务器突然变得拥挤不堪,甚至无法响应再多
的请求时,您应当仔细检查一下这个资源匮乏的现象,
确认在10000次点击里全都是合法用户进行的,还是
由5000个合法用户和一个点击了5000次的攻击者进
行的。
2022/3/23 网络入侵与防范讲义 69
WinNuke攻击
WinNuke攻击又称“带外传输攻击”,它的特
征是攻击目标端口,被攻击的目标端口通常是
139、138、137、113、53。
TCP传输协议中使用带外数据(Out of Band
,OOB数据)通道来传送一些比较特殊(如比
较紧急)的数据。在紧急模式下,发送的每个
TCP数据包都包含URG标志和16位URG指针,
直至将要发送的带外数据发送完为止。16位
URG指针指向包内数据段的某个字节数据,表
示从第一字节到指针所指字节的数据就是紧急数
据,不进入接收缓冲就直接交给上层进程。
2022/3/23 网络入侵与防范讲义 70
WinNuke攻击
WinNuke攻击就是制造特殊的这种报文,但
这些攻击报文与正常携带OOB数据报文不同的
是:其指针字段与数据的实际位置不符,即存
在重合,这样WINDOWS操作系统在处理这
些数据的时候,就会崩溃。
2022/3/23 网络入侵与防范讲义 71
WinNuke攻击
攻击者将这样的特殊TCP带外数据报文发送给
已建立连接的主机的NetBIOS端口139,导
致主机崩溃后,会显示下面的信息:
An exception OE has occurred at 0028:[address] in
VxD MSTCP(01)+ 000041AE. This was called from
0028:[address] in VxD NDIS(01)+
may be possible to continue normally.
Press any key to attempt to continue.
Press CTRL+ALT+DEL to restart your computer.
You will lose any unsaved information in all
applications.
Press any key to continue
2022/3/23 网络入侵与防范讲义 72
WinNuke攻击
WinNuke攻击的特征、检测方法和反攻击方法概
括如下:
攻击特征:WinNuke攻击又称带外传输攻击,它的特征
是被攻击的目标端口通常是139、138、137、113、
53,而且URG位设为“1”,即紧急模式。
检测方法:判断数据包目标端口是否为139、138、
137等,并判断URG位是否为“1”。
反攻击方法:适当配置防火墙设备或过滤路由器就可以
防止这种攻击手段(丢弃该数据包),并对这种攻击进
行审计(记录事件发生的时间,源主机和目标主机的
MAC地址和IP地址)
2022/3/23 网络入侵与防范讲义 73
分布式拒绝服务攻击
分布式拒绝服务攻击简介
分布式拒绝服务攻击造成的影响
分布式拒绝服务攻击工具
2022/3/23 网络入侵与防范讲义 74
分布式拒绝服务攻击简介
分布式拒绝服务DDoS (Distributed Denial
of Service)攻击指借助于客户/服务器技术,将
多个计算机联合起来作为攻击平台,对一个或多个
目标发动DoS攻击,从而成倍地提高拒绝服务攻击
的威力。
可以使得分散在互联网各处的机器共同完成对一台
主机攻击的操作,从而使主机看起来好象是遭到了
不同位置的许多主机的攻击。
这些分散的机器可以分别进行不同类型的攻击。
2022/3/23 网络入侵与防范讲义 75
分布式拒绝服务攻击简介
在进行分布式拒绝服务攻击前,入侵者必须先控制
大量的无关主机,并在这些机器上安装进行拒绝服
务攻击的软件。
互联网上充斥着安全措施较差的主机,这些主机存
在系统漏洞或配置上的错误,可能是一些没有足够
安全技术力量的小站点或者一些企业的服务器,入
侵者轻易就能进入这些系统。
由于攻击者来自于范围广泛的IP地址,而且来自每
台主机的少量的数据包有可能从入侵检测系统的眼
皮下溜掉,这就使得防御变得困难。
2022/3/23 网络入侵与防范讲义 76
分布式拒绝服务攻击简介
分布式拒绝服务攻击的软件一般分为客户端、服务
端与守护程序,这些程序可以使协调分散在互联网
各处的机器共同完成对一台主机攻击的操作,从而
使主机遭到来自不同地方的许多主机的攻击。
客户端:也称攻击控制台,它是发起攻击的主机
服务端:也称攻击服务器,它接受客户端发来的控
制命令
守护程序:也称攻击器、攻击代理,它直接(如
SYN Flooding)或者间接(如反射式DDoS)与
攻击目标进行通信
2022/3/23 网络入侵与防范讲义 77
分布式拒绝服务攻击简介
DDoS攻击示例:
2022/3/23 网络入侵与防范讲义 78
分布式拒绝服务攻击简介
入侵者通过客户端软件向服务端软件发出攻击指
令,服务端在接收到攻击指令后,控制守护进程
向目标主机发动攻击。
采用三层结构的做法是确保入侵者的安全,一旦
客户端发出指令后,客户端就能断开连接,由服
务端指挥守护进程攻击。客户端连接和发送指令
的时间很短,隐蔽性极强。
2022/3/23 网络入侵与防范讲义 79
分布式拒绝服务攻击简介
入侵者先控制多台无关主机,在上面安装守
护进程与服务端程序。
当需要攻击时,入侵者从客户端连接到安装
了服务端软件的主机上,发出攻击指令,服
务端软件指挥守护进程同时向目标主机发动
拒绝服务攻击。
目前流行的分布式拒绝服务攻击软件一般没
有专用的客户端软件,使用telnet进行连
接和传送控制命令。
2022/3/23 网络入侵与防范讲义 80
分布式拒绝服务攻击简介
通常情况下,服务端与守护进程间并不是一
一对应的关系,而是多对多的关系。也就是
说,一个安装了守护进程的主机可以被多个
服务端所控制,一个服务端软件也同时控制
多个守护进程。
2022/3/23 网络入侵与防范讲义 81
DDoS攻击过程
攻击过程主要有两个步骤:攻占代理主机和向
目标发起攻击。具体说来可分为以下几个步骤:
1探测扫描大量主机以寻找可入侵主机;
2入侵有安全漏洞的主机并获取控制权;
3在每台被入侵主机中安装攻击所用的客户进程
或守护进程;
4向安装有客户进程的主控端主机发出命令,由
它们来控制代理主机上的守护进程进行协同入侵。
2022/3/23 网络入侵与防范讲义 82
DDoS造成的影响
被DDoS攻击时的现象
DDoS攻击对Web站点的影响
2022/3/23 网络入侵与防范讲义 83
被DDoS攻击时的现象
被攻击主机上有大量等待的TCP连接;
网络中充斥着大量的无用的数据包,源地址为
假;
制造高流量无用数据,造成网络拥塞,使受害
主机无法正常和外界通讯;
利用受害主机提供的服务或传输协议上的缺陷,
反复高速的发出特定的服务请求,使受害主机
无法及时处理所有正常请求;
严重时会造成系统死机。
2022/3/23 网络入侵与防范讲义 84
DDoS攻击对Web站点的影响
当对一个Web站点执行 DDoS 攻击时,这
个站点的一个或多个Web服务会接到非常
多的请求,最终使它无法再正常使用。
在一个DDoS攻击期间,如果有一个不知情
的用户发出了正常的页面请求,这个请求会
完全失败,或者是页面下载速度变得极其缓
慢,看起来就是站点无法使用。
2022/3/23 网络入侵与防范讲义 85
DDoS的工具
TFN2K
Trinoo
Stacheldraht
其他拒绝服务攻击工具
2022/3/23 网络入侵与防范讲义 86
TFN2K—介绍
TFN(Tribe Flood Network)是德国著
名黑客Mixter编写的分布式拒绝服务攻击
的攻击工具,它是一个典型的分布式拒绝服
务攻击的工具。
TFN由服务端程序和守护程序组成,能实施
ICMP flood、SYN flood、UDP flood
和Smurf等多种拒绝服务攻击。
2022/3/23 网络入侵与防范讲义 87
TFN2K--特点
TFN2K的选择面宽,Solaris、Linux、
Windows NT/2000上都能运行。
TFN2K的另一个特点是服务端控制守护进程发动
攻击时,可以定制通信使用的协议,TFN2K目前
可以使用的TCP、UDP、ICMP三种协议中的任
何一种。
服务端向守护进程发送的控制指令,守护进程是不
会进行回复。由于这一特点,网络中的TFN2K的
隐蔽性更强,检测更加困难,因为服务端可以将命
令的数据报文的源地址信息进行伪造。
2022/3/23 网络入侵与防范讲义 88
TFN2K--特点(2)
TFN2K所有命令都经过了CAST-256算法
(RFC2612)加密。加密关键字在程序编译时定
义,并作为TFN2K客户端程序的口令。并且所有
加密数据在发送前都被编码( Base64 )成可打
印的ASCII字符。TFN2K守护程序接收数据包并
解密数据。
为保护自身,守护进程还能通过修改进程名方式来
欺骗管理员,掩饰自己的真正身份。
总之,TFN2K采用的单向通信、随机使用通信协
议、通信数据加密等多种技术以保护自身,使得实
时检测TFN2K更加困难。
2022/3/23 网络入侵与防范讲义 89
TFN2K—检测
TFN2K有一个独特的设计,在每一个数据包后面填
充了16个零(0x00),这样做的目的是为了使数据
包的长度不固定,欺骗某些防火墙或者入侵检测系
统。
然而,这项独特的设计也成为了TFN2K 的弱点。
TFN2K的数据包后面填充的零(0x00)在经过
Base64编码后就变成了A(0x41)。这样,尾部
的数据包就成为了TFN2K的特征。当然这并不是说
检测到尾部有0x41的数据包就认为网络存在
TFN2K,不过,如果在网络中大量捕获到这种类型
的数据包的时候,管理员就该好好检查网络中的主
机了。
2022/3/23 网络入侵与防范讲义 90
TFN2K—检测(2)
另一种对TFN2K的检测的方法是采用病毒
检测的通用做法,采用特征码。
虽然TFN2K服务端和守护进程的文件名可
以随意修改,但是程序中必然存在不会改变
的特征字符串,这个不会改变的字符串就是
程序的特征码,检查系统中是否存在有这样
特征码的程序就能发现系统中存在的
TFN2K。
2022/3/23 网络入侵与防范讲义 91
TFN2K—防御
TFN2K的抵御方法有:
加固系统和网络,以防系统被当做DDoS主机。
在边界路由器上设置出口过滤,这样做的原因
是或许不是所有的TFN2K源地址都用内部网络
地址进行伪装。
请求上游供应商配置入口过滤。
2022/3/23 网络入侵与防范讲义 92
Trinoo—介绍
Trinoo也是一种比较常见的分布式拒绝服
务攻击,Trinoo与TFN2K相比,虽然在很
多方面都略逊一筹,但从总体上来说,
Trinoo还是一个非常不错的分布式拒绝服
务攻击工具。
2022/3/23 网络入侵与防范讲义 93
Trinoo—组成
Trinoo是一个典型的分布式拒绝服务攻击
软件,由两部分组成,服务端和守护进程,
而没有专门的客户端软件,客户端软件可以
使用通用的如Telnet来代替。如图:
2022/3/23 网络入侵与防范讲义 94
Trinoo—工作原理
Trinoo的守护进程NC在编译时就将安装有服务程序
的主机IP地址包含在内,这样,守护进程NC一旦运
行起来,就会自动检测本机的IP地址,并将本机的
IP地址发送到预先知道的服务器的31335端口(服
务器开启31335UDP端口接收守护进程)。
同时,守护进程也在本机打开一个27444的UDP端
口等待服务器端过来的命令。
Trinoo的服务器端在收到守护进程发回来的IP地址
后,就明白已有一个守护进程准备完毕,可以发送指
控命令了。
主服务器会一直记录并维护一个已激活守护程序的主
机清单。
2022/3/23 网络入侵与防范讲义 95
Trinoo—设计特色
Trinooo的所有连接都需要口令,连接的口令是
编译时就指定的,缺省情况下,服务端连接守护进
程的口令是“144adsl”,而客户端连接到服务端
的口令是“betaalmostdone”。不过口令在进行验
证时是明文进行传送的。
Trinoo另一个比较有特色的设计是,当客户端连
接到服务端时,如果还有其他的连接建立,
Trinoo会将一个包含连接IP地址的报警信息发送
到已连接的主机。这样,入侵者在控制服务端发动
攻击时,还能掌握系统上的用户动向,确保
Trinoo客户端的安全。
2022/3/23 网络入侵与防范讲义 96
Trinoo--基本特性及建议的抵御策略
在master程序(服务端)与代理程序(守
护程序)的所有通讯中,Trinoo都使用了
UDP协议。入侵检测软件能够寻找使用
UDP协议的数据流(类型17)。
Trinoo master程序的监听端口是
27655,攻击者一般借助telnet通过TCP
连接到master程序所在计算机。入侵检测
软件能够搜索到使用TCP (类型6)并连接到
端口27655上的数据流。
2022/3/23 网络入侵与防范讲义 97
Trinoo--基本特性及建议的抵御策略
(2)
所有从master程序到代理程序的通讯都包含字符
串"l44",并且被引导到代理的UDP 端口27444。
入侵检测软件检查到UDP 端口27444的连接,
如果有包含字符串l44的信息包被发送过去,那么
接受这个信息包的计算机可能就是DDoS代理。
Master和代理之间的通讯受到口令的保护,但是
口令不是以加密格式发送的,因此它可以被“嗅探
”到并被检测出来。使用这个口令以及Dave
Dittrich编写的Trinot脚本,要准确地验证出
Trinoo代理的存在是很可能的。
2022/3/23 网络入侵与防范讲义 98
Stacheldraht
Stacheldraht 也是一个分布式拒绝服务
攻击,它很多方面类似于Trinoo和TFN,
能发动ICMP Flood、SYN Flood、
UDP Flood和Smurf等多种攻击。它的主
要特色是能进行自动更新。
2022/3/23 网络入侵与防范讲义 99
Stacheldraht(2)
Stacheldraht跟TFN和trinoo一样也是
基于客户机/服务器模式,其中Master程
序与潜在的成千个代理程序进行通讯。在发
动攻击时,入侵者与master程序进行连接。
Stacheldraht增加了以下新功能:攻击者
与master程序之间的通讯是加密的,以及
使用rcp (remote copy,远程复制)技术
对代理程序进行更新。
2022/3/23 网络入侵与防范讲义 100
Stacheldraht(3)
Stacheldraht同TFN一样,可以并行发
动数不胜数的DoS攻击,类型多种多样,而
且还可建立带有伪装源IP地址的信息包。
Stacheldraht所发动的攻击包括UDP洪
水、TCP SYN洪水、ICMP回应洪水攻击。
2022/3/23 网络入侵与防范讲义 101
Stacheldraht DDoS攻击的特征及防御
1)在发动Stacheldraht攻击时,攻击者访问
master程序,向它发送一个或多个攻击目标的
IP地址。Master程序再继续与所有代理程序进行
通讯,指示它们发动攻击。
Stacheldraht master程序与代理程序之间
的通讯主要是由ICMP 回音和回音应答信息包来
完成的。配置路由器或入侵检测系统,不允许一切
ICMP回音和回音应答信息包进入网络,这样可以
挫败Stacheldraht代理。但是这样会影响所有要
使用这些功能的Internet程序,例如ping。
2022/3/23 网络入侵与防范讲义 102
Stacheldraht DDoS攻击的特征及防御 (2)
2)代理程序要读取一个包含有效master程序
的IP地址列表。代理会试图与列表上所有的
master程序进行联系。如果联系成功,代理
程序就会进行一个测试,以确定它被安装到的
系统是否会允许它改变“伪造”信息包的源地
址。
通过配置入侵检测系统或使用嗅探器来搜寻
它们的签名信息,可以探测出这两个行为。
2022/3/23 网络入侵与防范讲义 103
Stacheldraht DDoS攻击的特征及防御 (3)
)代理会向每个master发送一个ICMP
回音应答信息包,其中有一个ID域包含值666
,一个数据域包含字符串“skillz”。如果
master收到了这个信息包,它会以一个包含
值667的ID 域和一个包含字符串“ficken”
的数据域来应答。代理和master通过交换这
些信息包来实现周期性的基本接触。
通过对这些信息包的监控,可以探测出
Stacheldraht。
2022/3/23 网络入侵与防范讲义 104
Stacheldraht DDoS攻击的特征及防御 (4)
)一旦代理找到了一个有效master程序,
它会向master发送一个ICMP信息包,其中有
一个伪造的源地址,这是在执行一个伪造测试。
这个假地址是“”。如果master收到了
这个伪造地址,在它的应答中,用ICMP信息包
数据域中的“spoofworks”字符串来确认伪造的
源地址是奏效的。
通过监控这些值,也可以将Stacheldraht
检测出来。
2022/3/23 网络入侵与防范讲义 105
Stacheldraht DDoS攻击的特征及防御 (5)
3)Stacheldraht代理并不检查 ICMP
回音应答信息包来自哪里,因此就有可能伪
造 ICMP 信息包将其排除。
4)Stacheldraht代理程序与TFN 和
trinoo一样,都可以用一个C程序
DDoS_scan来探测。
2022/3/23 网络入侵与防范讲义 106
其他拒绝服务攻击工具
Trinity
Shaft
MStream
2022/3/23 网络入侵与防范讲义 107
Trinity
Trinity也是一个能对受害人的站点进行多
种类型的“洪水”攻击的工具,能发动
UDP、Fragment、SYN、RST、ACK
以及其他的一些“洪水”攻击。它的特点是
可以通过IRC(Internet Relay Chat,网
上实时聊天)或者AOL(American On
Line)的ICQ来传递信息。Trinity使用的
主通信端口是6667,并且它还运行一个后
台程序监听TCP 33270端口。
2022/3/23 网络入侵与防范讲义 108
Shaft
Shaft分布式拒绝服务攻击的网络结构非常
类似Trinoo,这个攻击工具没有什么特殊
的功能,唯一与其他工具不同的是它所有的
TCP数据包序列号都是0x28374839。
2022/3/23 网络入侵与防范讲义 109
MStream
MStream使用虚假的ACK标志TCP数据
包进行攻击。传输没有经过加密。主控端有
口令保护。它有一个与其他工具不同的特点
就是这个程序提供所有连接的用户成功或失
败的信息。
2022/3/23 网络入侵与防范讲义 110
拒绝服务攻击的防御
防御的困难之处
防御方法
2022/3/23 网络入侵与防范讲义 111
防御的困难之处
不容易定位攻击者的位置
Internet上绝大多数网络都不限制源地址,也
就是伪造源地址非常容易
很难溯源找到攻击控制端的位置
各种反射式攻击,无法定位源攻击者
完全阻止是不可能的,但是适当的防范工作
可以减少被攻击的机会
2022/3/23 网络入侵与防范讲义 112
防御方法
有效完善的设计
带宽限制
及时给系统安装补丁
运行尽可能少的服务
只允许必要的通信
封锁敌意IP地址
2022/3/23 网络入侵与防范讲义 113
有效完善的设计
一个站点越完善,它的状况会越好。如果公司有
一个运行关键任务的Web站点,用户必须连接到
Internet,但是与路由器之间只有一条单一的
连接,服务器运行在一台单一的计算机上,这样
的设计就不是完善的。
这种情况下,攻击者对路由器或服务器进行DoS
攻击,使运行关键任务的应用程序被迫离线。理
想情况下,公司不仅要有多条与Internet的连
接,最好有不同地理区域的连接。
公司的服务位置越分散,IP地址越分散,攻击同
时寻找与定位所有计算机的难度就越大。
2022/3/23 网络入侵与防范讲义 114
带宽限制
当DoS攻击发生时,针对单个协议的攻击会损
耗公司的带宽,以致拒绝合法用户的服务。例
如,如果攻击者向端口25发送洪水般的数据,
攻击者会消耗掉所有带宽,所以试图连接端口
80的用户被拒绝服务。
一种防范方法是限制基于协议的带宽。例如,
端口25只能使用25%的带宽,端口80只能使
用50%的带宽。
2022/3/23 网络入侵与防范讲义 115
及时给系统安装补丁
当新的DoS 攻击出现并攻击计算机时,厂商一般
会很快确定问题并发布补丁。如果一个公司关注最
新的补丁,同时及时安装,这样被DoS攻击的机会
就会减少。
记住:这些措施并不能阻止DoS攻击耗尽公司的资
源。还有在安装补丁之前,先要对其进行测试。即
使厂商声明它可以弥补DoS漏洞,这并不意味着不
会产生新的问题。
2022/3/23 网络入侵与防范讲义 116
运行尽可能少的服务
运行尽可能少的服务可以减少被攻击成功的机
会。
如果一台计算机开了20个端口,这就使得攻击
者可以在大的范围内尝试对每个端口进行不同
的攻击。相反,如果系统只开了两个端口,这
就限制了攻击者攻击站点的攻击类型。
另外,当运行的服务和开放的端口都很少时,
管理员可以容易的设置安全,因为要监听和担
心的事情都很少了。
2022/3/23 网络入侵与防范讲义 117
只允许必要的通信
这一防御机制与上一个标准“运行尽可能少的
服务”很相似,不过它侧重于周边环境,主要
是防火墙和路由器。关键是不仅要对系统实施
最少权限原则,对网络也要实施最少权限原则。
确保防火墙只允许必要的通信出入网络。
许多公司只过滤进入通信,而对向外的通信不
采取任何措施。这两种通信都应该过滤。
2022/3/23 网络入侵与防范讲义 118
封锁敌意IP地址
当一个公司知道自己受到攻击时,应该马上确定发
起攻击的IP地址,并在其外部路由器上封锁此IP
地址。这样做的问题是,即使在外部路由器上封锁
了这些IP地址,路由器仍然会因为数据量太多而
拥塞,导致合法用户被拒绝对其他系统或网络的访
问。
因此,一旦公司受到攻击应立刻通知其ISP和上游
提供商封锁敌意数据包。因为ISP拥有较大的带宽
和多点的访问,如果他们封锁了敌意通信,仍然可
以保持合法用户的通信,也可以恢复遭受攻击公司
的连接。
2022/3/23 网络入侵与防范讲义 119
分布式拒绝服务攻击的防御
分布式拒绝服务攻击的监测
分布式拒绝服务攻击的防御
拒绝服务监控系统的设计
2022/3/23 网络入侵与防范讲义 120
分布式拒绝服务攻击的监测
许多人或工具在监测分布式拒绝服务攻击时常
犯的错误是只搜索那些DDoS工具的缺省特
征字符串、缺省端口、缺省口令等。
人们必须着重观察分析DDoS网络通讯的普遍
特征,不管是明显的,还是模糊的。
使用网络入侵监测系统(NIDS),根据异常
现象在网络入侵监测系统上建立相应规则,能
够较准确地监测出DDoS攻击。
2022/3/23 网络入侵与防范讲义 121
分布式拒绝服务攻击的监测
实际上,DDoS的唯一检测方式是:异常的
网络交通流量。
下面将分别介绍5种异常模式及相应的解决
办法。
2022/3/23 网络入侵与防范讲义 122
异常现象1
大量的DNS PTR查询请求
根据分析,攻击者在进行DDoS攻击前总要解析
目标的主机名。BIND域名服务器能够记录这些
请求。由于每台攻击服务器在进行一个攻击前
会发出PTR反向查询请求,也就是说在DDoS攻
击前域名服务器会接收到大量的反向解析目标
IP主机名的PTR查询请求。
2022/3/23 网络入侵与防范讲义 123
异常现象2
超出网络正常工作时的极限通讯流量
当DDoS攻击一个站点时,会出现明显超出该
网络正常工作时的极限通讯流量的现象。现在
的技术能够分别对不同的源地址计算出对应的
极限值。当明显超出此极限值时就表明存在
DDoS攻击的通讯。
因此可以在主干路由器端建立ACL访问控制规
则以监测和过滤这些通讯。
2022/3/23 网络入侵与防范讲义 124
异常现象3
特大型的ICMP和UDP数据包。
正常的UDP会话一般都使用小的UDP包,通常
有效数据内容不超过10字节。正常的ICMP消
息也不会超过64到128字节。
那些明显大得多的数据包很有可能就是控制信
息通讯用的,主要含有加密后的目标地址和一
些命令选项。一旦捕获到(没有经过伪造的)
控制信息通讯,DDoS服务器的位置就无所遁
形了,因为控制信息通讯数据包的目标地址是
没有伪造的。
2022/3/23 网络入侵与防范讲义 125
异常现象4
不属于正常连接通讯的TCP和UDP数据包。
隐蔽的DDoS工具随机使用多种通讯协议通过基
于无连接通道发送数据。优秀的防火墙和路由
规则能够发现这些数据包。另外,那些连接到
高于1024而且不属于常用网络服务的目标端口
的数据包也是非常值得怀疑的。
2022/3/23 网络入侵与防范讲义 126
异常现象5
数据段内容只包含文字和数字字符(例如,没
有空格、标点和控制字符)的数据包。
这往往是数据经过BASE64编码后而只会含有
base64字符集字符的特征。TFN2K发送的控制信
息数据包就是这种类型的数据包。TFN2K(及其变
种)的特征模式是在数据段中有一串A字符
(AAA……),这是经过调整数据段大小和加密算
法后的结果。如果没有使用BASE64编码,对于使
用了加密算法数据包,这个连续的字符就是“\0”
2022/3/23 网络入侵与防范讲义 127
分布式拒绝服务攻击的防御
虽然还没有很好的措施来彻底解决分布式
拒绝服务攻击问题,但下面有一些措施能
降低系统受到拒绝服务攻击的危害:
优化网络和路由结构
保护网络及主机系统安全
安装入侵检测系统
与ISP服务商合作
使用扫描工具
2022/3/23 网络入侵与防范讲义 128
优化网络和路由结构
理想情况下,提供的服务不仅要有多条与
Internet的连接,而且最好有不同地理区
域的连接。这样服务器IP地址越分散,攻击
者定位目标的难度就越大,当问题发生时,
所有的通信都可以被重新路由,可以大大降
低其影响。
2022/3/23 网络入侵与防范讲义 129
保护网络及主机系统安全
本质上,如果攻击者无法获得网络的访问权,无法
攻克一台主机,他就无法在系统上安装DDoS服务
器。要使一个系统成为服务器,首先要以某种手段
攻克它。
如果周边环境不会被突破,系统能够保持安全,就
不会被用于攻击其他系统。
对所有可能成为目标的主机都进行优化,禁止不必
要的服务,可以减少被攻击的机会。要注意保护主
机系统的安全,避免其被攻击者用作傀儡主机,充
当DDoS的间接受害者。
2022/3/23 网络入侵与防范讲义 130
安装入侵检测系统
能否尽可能快地探测到攻击是非常关键的。以
DDoS的角度来看,单位越快探测到系统被入
侵或服务器被用来进行攻击,该单位的网络状
况越好。
借助于入侵检测系统(IDS)可以完成这一工
作。
2022/3/23 网络入侵与防范讲义 131
安装入侵检测系统
有两种常用的IDS:基于网络的和基于主机
的。
基于网络的IDS是网络上被动的设备,负责嗅
探通过给定网段的所有数据包。通过查看数据
包,查找显示可能的攻击的签名并对可疑行为
发出警报。
基于主机的IDS运行在一台独立的服务器上,
并经常查看审计日志以查找可能的攻击信息。
2022/3/23 网络入侵与防范讲义 132
安装入侵检测系统
正如有两种类型IDS一样,也有两种构建IDS
的技术:样式匹配和不规则探测。
样式匹配技术有一个关于已知攻击特征的数据库。
当它找到与给定样式相同的数据包时就发出警报。
不规则探测系统决定什么是网络的正常通信,任
何不符合这一规则的通信都被标为可疑的。
可以想象,基于不规则探测的系统实现起来十
分困难,因为对于一个公司正常的通信对于另
一个公司则是不正常的。因此大多数入侵检测
系统都是基于样式匹配技术的。
2022/3/23 网络入侵与防范讲义 133
与ISP合作
这一点非常重要。DDoS攻击非常重要的
一个特点是洪水般的网络流量,耗用了大量
带宽,单凭自己管理网络,是无法对付这些
攻击的。当受到攻击时,与ISP协商,确定
发起攻击的IP地址,请求ISP实施正确的路
由访问控制策略,封锁来自敌意IP地址的数
据包,减轻网络负担,防止网络拥塞,保护
带宽和内部网络。
2022/3/23 网络入侵与防范讲义 134
使用扫描工具
由于许多公司网络安全措施都进行得很慢,
它们的网络可能已经被攻克并用作了DDoS
服务器,因此要扫描这些网络查找DDoS服
务器并尽可能的把它们从系统中关闭删除。
一些工具可以做到这些,而且大多数商业的
漏洞扫描程序都能检测到系统是否被用作
DDoS服务器。
2022/3/23 网络入侵与防范讲义 135
拒绝服务监控系统的设计
利用总结出的若干拒绝服务攻击数据包的特
征,可以进行拒绝服务监控系统的设计,建
立网络通信中异常现象的模式库,把实时采
集网络数据包与模式库进行模式匹配,得到
监控结果。
下页为监控系统的结构图。
2022/3/23 网络入侵与防范讲义 136
拒绝服务监控系统的设计
模式库
分析单元 分析报告采集库
2022/3/23 网络入侵与防范讲义 137
拒绝服务监控系统的设计
上图中,采集器用来收集网络通信信息,并
向分析单元提供分析所需的数据,同时还能
接收分析单元的指令,进一步采集分析单元
所需的特定信息。
分析单元可以采用人工神经元网络对网络采
集信息和模式库进行模式匹配得出分析报告,
同时定期进行自学习,更新模式库,及时跟
踪并反映拒绝服务攻击模式的最新动态。
2022/3/23 网络入侵与防范讲义 138
小结
无论是DoS还是DDoS攻击,其目的是使受害主机
或网络无法及时接收并处理外界请求,表现为:
制造大流量无用数据,造成通往被攻击主机的网络拥塞,
使被攻击主机无法正常和外界通信。
利用被攻击主机提供服务或传输协议上处理重复连接的
缺陷,反复高频的发出攻击性的重复服务请求,使被攻
击主机无法及时处理其它正常的请求。
利用被攻击主机所提供服务程序或传输协议的本身的实
现缺陷,反复发送畸形的攻击数据引发系统错误的分配
大量系统资源,使主机处于挂起状态。
DoS/DDoS攻击是很有效的攻击方式,必须注意
防范这种攻击。
2022/3/23 网络入侵与防范讲义 139