目录
DOS攻击
一、DDOS攻击
1.分类
2.DDos攻击趋势
3.常见单包攻击
①扫描窥探攻击
②畸形报文攻击
③特殊报文攻击
4.DDoS通用攻击防范技术
①首包丢弃编辑
②阻断和限流
③过滤器
④ 黑名单和白名单
二、TCP类报文攻击防御
1.SYN Flood攻击
2.SYN-ACK Flood攻击与防御原理
3.ACK Flood攻击与防御原理
4.FIN/RST Flood攻击与防御原理
三、UDP类报文攻击防御
1.UDP Flood攻击
2.UDP分片攻击
四、DNS类报文攻击防御
1.DNS Request Flood攻击
五、HTTP类报文攻击防御
1.HTTP Flood攻击与防御原理
2.HTTP慢速攻击与防御原理
六、Anti-DDoS防御系统
1.七层防御体系
2.防御系统要素
3.系统组成
4.部署模式
DOS攻击
deny of service
2016年10月21日,美国提供动态DNS服务的DynDNS报告遭到DDoS攻击,攻击导致许多使用DynDNS服务的网站遭遇访问问题,其中包括BBC、华尔街日报、CNN、纽约时报等一大批新闻网站集体宕机, Twitter甚至出现了近24小时0访问的局面!此次事件中,黑客就是运用了DNS洪水攻击手段。
一、DDOS攻击
1.分类
1.流量型攻击:Flood方式攻击
流量型攻击是指攻击者通过大量的无用数据占用过多的资源以达到服务器拒绝服务的目的。这类攻击典型特征是通过发出海量数据包,造成设备负载过高,最终导致网络带宽或是设备资源耗尽。通常,被攻击的路由器、服务器和防火墙的处理资源都是有限的,攻击负载之下它们就无法处理正常的合法访问, 导致正常服务被拒绝。流量型攻击最通常的形式是Flood方式,这种攻击把大量看似合法的TCP、UDP、 ICMP包发送至目标主机,甚至,有些攻击者还利用源地址伪造技术来绕过检测系统的监控,以达到攻击的目的。
2.单包攻击
1. 扫描窥探攻击是利用ping扫射(包括ICMP和TCP)来标识网络上存活着的系统,从而准确定位潜在的目标;利用TCP和UDP端口扫描,就能检测出操作系统和监听着的潜在服务。攻击者通过扫描窥探就能大致了解目标系统提供的服务种类和潜在的安全漏洞(识别目标弱点),为进一步侵入系统做好准备。
2. 畸形报文攻击是指通过向目标系统发送有缺陷的IP报文,使得目标系统在处理这样的IP报文时发生错误,或者造成系统崩溃,影响目标系统的正常运行。主要的畸形报文攻击有Ping of Death、
Teardrop等。
3. 特殊报文攻击是指攻击者利用一些合法的报文对网络进行侦察或者数据检测,这些报文都是合法的应用类型,只是正常网络很少用到。
2.DDos攻击趋势
由于DDoS攻击成本不断降低,防御成本不断攀升,传统防御技术遭受严峻挑战。DDoS 的攻击主要呈现以下几个趋势。
大流量攻击基本上都呈现出"Fast"的特点,攻击流量峰值在几秒内即可从O上升至几十Gbps,直接
挑战防御系统的快速响应能力。
- 随着loT僵尸网络的规模不断扩大,越来越多的反射源被挖掘
loT终端设备缺乏必要的安全防护,弱口令和出厂固化的账号密码现象普遍存在,海量loT终端已经
成为僵尸网络快速发展的温床。loT终端不仅实时在线,相比数据中心服务器,被控后用户不易发
现,已经成为TCP会话耗尽及应用层DDoS攻击的新傀儡。
-
同针对业务系统的各类慢速攻击和应用层攻击更加拟人化
建立
TCP
连接的攻击容易暴露僵尸主机真实
IP
地址,为了躲避防御系统的过滤,
TCP
会话耗尽攻击及真实源 SYN
攻击呈现出
"
慢速
"
的特点,速率甚至可以低到和正常用户访问行为接近。
2018
年底,一次针对某知名 WEB
网站的
TCP Connection Flood
攻击就使用了
180+
万个
Bot
。这给防御系统带来不小困扰,防御策略配 置严格容易误判,配置宽松,攻击则像慢性毒药一样,最终导致业务系统被攻瘫。
3.常见单包攻击
最常见的DoS攻击就是我们常常提到的单包攻击,这类攻击一般都是以个人为单位的黑客发动的,攻击报文也比较单一,虽然破坏力强大,但是只要掌握了攻击的特征,防御起来还是比较容易的。
畸形报文攻击:
通常指攻击者发送大量有缺陷的报文,从而造成主机或服务器在处理这类报文时系统崩溃。
扫描类攻击:
是一种潜在的攻击行为,并不具备直接的破坏行为,通常是攻击者发动真正攻击前的网络探测行为。
特殊控制报文攻击:
也是一种潜在的攻击行为,不具备直接的破坏行为,攻击者通过发送特殊控制报文探测网络结构,为后续发动真正的攻击做准备。
①扫描窥探攻击
地址扫描攻击防范
攻击介绍:运用
ping程序探测目标地址,确定目标系统是否存活。
也可使用
TCP/UDP
报文对目标系统发起探测(如TCP ping
)。
处理方法:检测进入防火墙的
ICMP
、
TCP
和
UDP
报文,根据源
IP
地址获取统计表项的索引,如果目的IP
地址与前一报文的
IP
地址不同,则将表项中的总报文个数增加
1
。如果在一定时间内报文的个数达到设置的阈值,记录日志,并根据配置决定是否将源IP
地址自动加入黑名单。
攻防配置:
[USG] firewall blacklist enable //
使能黑名单开关。
[USG] firewall defend ip-sweep enable //
使能地址扫描攻击防范功能开关。
[USG] firewall defend ip-sweep max-rate 1000 //
设定从同一源地址向外发送报文的目的地址变化速率的阈值
[USG] firewall defend ip-sweep blacklist-timeout 20 //
将攻击源
IP
加入黑名单并设定其在黑名单内的保持时间
端口扫描攻击防范
攻击介绍:
Port Scan
攻击通常使用一些软件,向大范围主机的
各个TCP/UDP端口发起连接
,根据
应答报文判断主机是否使用这些端口提供服务。
处理方法:检测进入防火墙的
TCP
报文或
UDP
报文,根据源
IP
地址获取统计表项的索引,如果目的
端口与前一报文不同,将表项中的报文个数增
1
。如果报文的个数超过设置的阈值,记录日志,并
根据配置决定是否将源
IP
地址加入黑名单。
攻防配置:
[USG] firewall blacklist enable
[USG] firewall defend port-scan max-rate 1000
[USG] firewall defend port-scan blacklist-timeout 20
[USG] firewall defend port-scan enable
②畸形报文攻击
SMURF
攻击防范
攻击介绍:
Smurf
攻击方法是发送
ICMP
请求,该请求包的目标地址设置为受害网络的广播地址,源地址为服务器地址。该网络的所有主机都回应此ICMP
请求,回应报文全部发往服务器,导致服务器不能正常提供服务。
处理方法:检查
ICMP
应答请求包的目的地址是否为子网广播地址或子网的网络地址,如果是,则
直接拒绝,并将攻击记录到日志。
由于路由器等三层设备本身就不会转发目的地址是广播地址的报文,因此
SMURF
攻击在网络上很
难形成攻击。在防火墙上,检查
SMURF
攻击要求被攻击网络与防火墙必须是直接相连的。
LAND
攻击防范
攻击介绍:把
TCP 的源地址和目标地址都设置成某一个受害者的IP地址
。这将导致受害者向它自己的地址发送SYN-ACK
消息,结果这个地址又发回
ACK
消息并创建一个空连接,占用系统资源或使目的主机崩溃。
处理方法:对每一个的
IP
报文进行检测,若其源地址与目的地址相同,或者源地址为环回地址
(
127.0.0.1
),则直接拒绝,并将攻击记录到日志。
Fraggle
攻击防范
攻击介绍:
Fraggle
类似于
Smurf
攻击,只是使用
UDP
应答消息而非
ICMP
。
UDP
端口
7
(
ECHO
)和端口19
(
Chargen
)在收到
UDP
报文后,都会产生回应。在
UDP
的
7
号端口收到报文后,会回应到的内容,而UDP
的
19
号端口在收到报文后,会产生一串字符流。它们都同
ICMP
一样,会产生大
量无用的应答报文,占满网络带宽。攻击者可以
向子网广播地址发送源地址为受害网络或受害主机
的UDP包,端口号用7或19
。子网络启用了此功能的每个系统都会向受害者的主机作出响应,从而
引发大量的应答包,导致受害网络的阻塞或受害主机的崩溃;子网上没有启动这些功能的系统将产
生一个
ICMP
不可达消息,因而仍然消耗带宽。也可将源端口改为
Chargen
,目的端口为
ECHO
,这样会自动不停地产生回应报文,其危害性更大。
处理方法:检查进入防火墙的
UDP
报文,若目的端口号为
7
或
19
,则直接拒绝,并将攻击记录到日
志,否则允许通过。
IP Fragment
攻击
攻击介绍:
IP
报文中有几个字段与分片有关:
DF
位、
MF
位、
Fragment Offset
、
Length
。如果
上
述字段的值出现矛盾
,而设备处理不当,会对设备造成一定的影响,甚至瘫痪。
处理方法:检查
IP
报文中与分片有关的字段(
DF
位、
MF
位、片偏置量、总长度)是否有以下矛
盾,若发现含有以下矛盾,则丢弃。将攻击记录到日志:
DF
位为
1
,而
MF
位也为
1
或
Fragment
Offset
不为
0
;
DF
位为
0
,而
Fragment Offset + Length > 65535
。
IP Spoofing
攻击防范
攻击介绍:为了获得访问权,或隐藏入侵者的身份信息,入侵者生成带有
伪造源地址
的报文,并使
用该伪造源地址访问攻击目标,进行扫描、窥探等预备攻击。
处理方法:检测每个接口流入的
IP
报文的源地址与目的地址,并
对报文的源地址反查路由表
,入接
口与以该
IP
地址为目的地址的最佳出接口不相同的
IP
报文被视为
IP Spoofing
攻击,将被拒绝,并进
行日志记录。
Ping of Death
攻击
攻击介绍:
IP
报文的长度字段为
16
位,即
IP
报文的最大长度为
65535 B
。
Ping of Death
利用一些长
度超大的ICMP报文对系统进行攻击
。
如果数据长度大于
65508 B
(分片报文总长度),就会ICMP数据+
IP
头长度
(20)
+
ICMP
头长度(8)
> 65535
。对于有些路由器或系统,在接收到一个这
样的报文后,由于处理不当,会造成系统崩溃、死机或重启。
处理方法:检测
ICMP
请求报文长度是否超过
65535 B
,若超过,则丢弃报文并记录日志。
TCP Flag
攻击
攻击介绍:
TCP
报文包含
6
个标志位:
URG
、
ACK
、
PSH
、
RST
、
SYN
、
FIN
,不同的系统对这些标志位组合的应答是不同的,可用于操作系统探测。
处理方法:检查
TCP
报文的各个标志位,若出现以下任意一种情况,直接丢弃该报文并记录日志
- 6个标志位全为1或6个标志位全为0;
- SYN和FIN位同时为1;SYN和RST同时为1;
- FIN和URG同时为1;RST和FIN同时为1;
Teardrop
攻击
攻击介绍:利用在
TCP/IP
堆栈中信任
IP
分片报文头所包含的信息实现。
处理方法:缓存分片信息,每一个源地址、目的地址、分片
ID
相同的为一组,最大支持缓存
10000
组分片信息 。
WinNuke
攻击防范
攻击介绍:
WinNuke
攻击通常向装有
Windows
系统的特定目标的
NetBIOS
端口(
139
)发送
OOB
(
out-of-band
)数据包,引起一个
NetBIOS
片断重叠,致使已与其他主机建立连接的目标主机崩
溃。还有一种是
IGMP
分片报文,一般情况下,
IGMP
报文是不会分片的,所以,不少系统对
IGMP
分片报文的处理有问题。
处理方法:
WinNuke
攻击
1
:检测数据包目的端口是否为
139
,并且检查
TCP-URG
位是否被设置;
WinNuke
攻击
2
:检测进入的
IGMP
报文是否为分片报文,如果是分片报文,则直接丢弃。
③特殊报文攻击
超大ICMP报文攻击防范
攻击介绍:超大ICMP报文攻击是指利用长度超大的ICMP报文对目标系统进行攻击。对于有些系 统,在接收到超大ICMP报文后,由于处理不当,会造成系统崩溃、死机或重启。
处理方法:用户可以根据实际网络需要配置允许通过的ICMP报文的最大长度,当实际ICMP报文的长度超过该值时,防火墙认为发生了超大ICMP报文攻击,将丢弃该报文。
ICMP
不可达报文攻击防范
攻击介绍:不同的系统对
ICMP
不可达报文的处理方式不同,有的系统在收到网络或主机不可达的
ICMP
报文后,对后续发往此目的地址的报文直接认为不可达,从而切断了目的地与主机的连接。
攻击者利用这一点,
伪造不可达ICMP报文,切断受害者与目的地的连接,造成攻击。
处理方法:启动
ICMP
不可达报文攻击防范功能,防火墙对
ICMP
不可达报文进行丢弃并记录攻击日
志。
Tracert
报文攻击防范
攻击介绍:
Tracert
报文攻击是攻击者利用
TTL
为
0
时返回的
ICMP
超时报文,和达到目的地址时返回
的
ICMP
端口不可达报文来
发现报文到达目的地所经过的路径,它可以窥探网络的结构。
处理方法:对于检测到的超时的
ICMP
报文或
UDP
报 文,或者目的端口不可达的报文,给予丢弃处
理。
4.DDoS通用攻击防范技术
①首包丢弃
有些攻击采用不断变换源
IP
地址或者源端口号的方式发送攻击报文,通过首包丢弃,可以有效拦截这部分流量。首包丢弃与源认证结合使用,防止虚假源攻击。
正常情况下,
TCP
、
DNS
、
ICMP
报文都具有重传功能。如果在交互过程中报文被丢弃,则都会重传。首包丢弃正是
利用了报文的重传机制
,将收到的第一个报文丢弃,以判定后续是否有重传报文。防御设备判定报文是否属于重传报文是基于三元组及时间间隔来判断的。三元组包含源IP
地址、源端口和协议;时间间隔可以自定义配置。当报文没有匹配到任何三元组时,认为该报文是首包,将其丢弃。当报文匹配到某三元组,则计算该报文与匹配该三元组的上一个报文到达的时间间隔。如果时间间隔低于设定的下限,或者高于设定的上限,则认为是首包,将其丢弃;如果时间间隔落在配置的上限和下限之间,则认为是后续包,将其放行。支持首包丢弃后重传报文的协议包括TCP
、
DNS
、
ICMP
协议。
UDP
协议虽然不具备重传机制,如果有应用层协议来协助实现重传时,也可以配置首包丢弃功能。
②阻断和限流
通过服务基线学习或管理员经验判断,发现网络中根本没有某种服务或某种服务流量很小,则可以分别采用阻断和限流方法来防御攻击。
-
阻断:在自定义服务策略中,阻断表示
将匹配自定义服务的报文全部丢弃
;在默认防御策略中表示将自定义服务以外的此协议报文全部丢弃。
-
限流:在自定义服务策略中,限流表示
将匹配自定义服务的报文限制在阈值内,丢弃超过阈值的部分报文
;在默认防御策略中,限流表示将自定义服务以外的此协议报文限制在阈值内,丢弃超过阈值的部分报文。
③过滤器
过滤器就是在
Anti-DDoS
设备上自定义报文的源
IP
、目的
IP
、协议、
TTL
等特征,将这些特征组合在一起作为过滤条件。后续对到达Anti-DDoS
设备的报文进行匹配,如果特征匹配,则表示命中过滤器,并对匹配的报文执行相应操作,从而实现精细化过滤的目的。
过滤器对匹配的报文支持以下方式的操作:
1.禁止通过。
2.禁止通过,并将源
IP
地址加入黑名单。
3.允许通过。
4.允许通过,并将源
IP
地址加入白名单。
5.限速。
6.源认证。此方式只针对
HTTP
过滤器有效
④ 黑名单和白名单
Anti-DDoS防御系统支持将一些不可信任的源IP地址加入黑名单,对此源发出的报文禁止通过;将信任的源IP地址加入到白名单,对此源发出的报文允许通过。
黑名单有两种类型:
管理员针对防护对象手动将源IP地址、子网掩码、目的端口号和协议类型加入到黑名单中。后续收到匹配的报文时,异常流量清洗方案认为此报文不可信,直接丢弃。 静态黑名单配置后,一直生效,除非管理员手动删除。
动态黑名单无需管理员手动配置,在防御过程中,检测到的非法源将被加入系统自动生成的动
态黑名单中。
在对
TCP Connection Flood
、
HTTP Flood
和
HTTPS Flood
等应用层攻击防御过程中,开启动态黑名单功能,系统会将攻击源IP
地址加入动态黑名单。在动态黑名单老化时间内,系统阻断攻击源流量;当超过黑名单老化时间后,系统将重新检测攻击源IP
地址。而对于静态特征过滤功能,命中过滤指纹的报文如果配置了drop-mark-black
操作,也需要将动态黑名单功能打开,才可将此指纹的源IP
地址加入黑名单表项。其中,动态黑名单的生效模式有以下三种:自动。动态黑名单生成后自动生效。
二、TCP类报文攻击防御
TCP正常建立连接和断开连接的过程
1.SYN Flood攻击
1.伪造报文一般为源
IP
地址不存在或不可达,大量的半连接消耗了服务器的资源,使服务器无法处理正常的连接请求。
2.SYN Flood
攻击是通过伪造一个源地址的
SYN
报文,发送给受害主机,受害主机回复
SYN-ACK
报文给这些地址后,不会收到ACK
报文,导致受害主机保持了大量的半连接,直到超时。这些
半连接可以耗尽主机资源,使受害主机无法建立正常TCP连接
,从而达到攻击的目的。
3.SYN flood
攻击是虚假源攻击的典型代表,此类攻击的最显著特点就是发送海量变源或变源端口的报文到受害主机,耗尽受害主机资源或网络资源。Anti-DDoS
设备
通过对报文源的真实性检查来防御SYN Flood攻击。
①SYN Flood攻击防御 – 源认证(虚假源)
Anti-DDoS
设备基于目的地址对
SYN
报文速率进行统计,当
SYN报文速率超过阈值时,启动源认证防御。
此源认证方法主要针对虚假源的攻击者进行防御。
处理过程如下:
1.Anti-DDoS
设备接收到
SYN
报文,发送
SYN-ACK
探测报文到
SYN
报文中的源
IP
地址。
2.Anti-DDoS
设备通过校验接收到的对探测报文的响应报文的真实性来确认源
IP
地址的真实性,以防止虚假源攻击。
①如果没有响应报文,则表示之前的
SYN
为攻击,
Anti-DDoS
设备不会将该
SYN
报文发给被防护服务器,有效终止了攻击。
②如果有响应报文,
Anti-DDoS
设备验证响应报文是否为真实的报文,如果真实,则表示该源
IP地址通过源认证,Anti-DDoS
设备将该源
IP
地址加入白名单,在白名单老化前,从此源
IP
地址发出的SYN
报文都直接被
Anti-DDoS
设备转发。白名单老化时间可配置。
③未匹配白名单的源
IP
地址发出的
SYN
报文则继续被探测。
②SYN Flood攻击防御 – 源认证(真实源)
源
IP
加入白名单之后将继续对真实源IP进行统计分析,对异常的源IP进行限速,以防止真实源发起攻击。
TCP-Ratio
异常限速:基于源来统计除
ACK
以外的其他报文总和(
SYN+SYN-ACK+FIN/RST
)与
ACK报文的比例,当这个比例超过“TCP-Ratio
比例阈值
”
时,判定源
IP
地址异常,将除
ACK
以外的其他报文的速率总和限制在阈值内。
始终限速:任何情况下,都将除
ACK
以外的其他报文的速率总和限制在阈值内。
2.SYN-ACK Flood攻击与防御原理
攻击原理:
- SYN-ACK Flood攻击源会假冒服务器,发送大量SYN-ACK报文到攻击目标网络,如果网络出口有依靠会话转发的网络设备,比如防火墙、IPS等设备,则大量的SYN-ACK报文会导致这类网络设备处理性能降低,甚至会话耗尽。
- 另外,SYN Flood的反射攻击也可能造成服务器发送大量的SYN-ACK报文。
防御原理:
- Anti-DDoS设备基于目的地址对SYN-ACK报文速率进行统计,当SYN-ACK报文速率超过阈值时,启动源认证防御。Anti-DDoS设备接收到SYN-ACK报文,发送SYN探测报文到SYN-ACK报文中的源IP地址。Anti-DDoS设备通过源IP地址对探测报文的响应报文校验源是否真实存在,以防止虚假源攻击。
如果没有响应报文,则表示之前的
SYN-ACK
报文为攻击报文,
Anti-DDoS
设备不会将该
SYN-
ACK
报文发给被防护目标,有效终止了攻击。
如果有响应报文,
Anti-DDoS
设备验证响应报文是否为探测报文的响应报文,如果是,则
Anti-
DDoS
设备将该源
IP
地址加入白名单,在白名单老化前,从此源
IP
地址发出的
SYN-ACK
报文都
直接被
Anti-DDoS
设备转发。白名单老化时间可配置。
未匹配白名单的
SYN-ACK
报文则继续被探测。
3.ACK Flood攻击与防御原理
攻击者利用僵尸网络发送大量的
ACK
报文,通常会造成以下三种情况的危害:
- 如果是带有超大载荷的ACK Flood攻击,会导致链路拥塞。
-
如果是极高速率的变源变端口
ACK Flood
攻击,很容易导致依靠会话转发的设备转发性能降低,甚至会话耗尽造成网络瘫痪。
-
如果攻击报文到达服务器,则导致服务器处理性能耗尽,从而拒绝正常服务。
防御原理:
- 会话检查和载荷检查结合来防御ACK Flood攻击。
-
如果
ACK
报文没有命中会话表,则
Anti-DDoS
设备直接丢弃
ACK
报文。
-
如果
ACK
报文命中会话表,则允许
ACK
报文通过。
4.FIN/RST Flood攻击与防御原理
攻击原理:
攻击者利用僵尸网络
发送大量的变源变端口FIN/RST报文攻击
,这些攻击到达依靠会话转发的设备
上,很容易导致转发设备性能降低甚至会话耗尽造成网络瘫痪,从而拒绝正常服务。
防御原理:
- 当FIN/RST报文速率超过阈值时,启动会话检查。
-
如果
Anti-DDoS
设备检查到
FIN/RST
报文没有命中会话,直接丢弃报文。
-
如果
Anti-DDoS
设备检查到
FIN/RST
报文命中会话,则根据会话创建原因和会话检查结果来判断该报文是否通过。
如果会话是由SYN
或
SYN-ACK
报文创建的,则允许该
FIN/RST
报文通过。 如果会话是由其他报文创建的(例如ACK
报文),则进一步检查报文序列号是否正确,序列号正确的报文允许通过,不正确的报文则被丢弃。
三、UDP类报文攻击防御
1.UDP Flood攻击
UDP Flood攻击原理:
攻击者通过僵尸网络向目标服务器
发起大量的UDP报文
,这种
UDP
报文通常为大包,且速率非常快。通常会造成以下危害:
- 消耗网络带宽资源,严重时造成链路拥塞。
-
大量变源变端口的
UDP Flood
会导致依靠会话转发的网络设备性能降低,甚至会话耗尽,从而导致网络瘫痪。
-
攻击报文到达服务器开放的
UDP
业务端口,服务器检查报文的正确性需要消耗计算资源,影响正常业务。
UDP类的攻击中报文的源IP和源端口变化频繁,但报文负载一般保持不变或有规律的变化。有效防御这类攻击的方法是使用关联防御和指纹学习。
①UDP Flood关联TCP类服务防范
防御原理:
- 当UDP流量与TCP类服务有关联时,通过防御TCP类服务来防御UDP Flood。
-
UDP
是无连接的协议,因此无法通过源认证的方法防御
UDP Flood
攻击。如果
UDP
业务流量需要通过TCP
业务流量认证或控制,则当
UDP
业务受到攻击时,对关联的
TCP
业务强制启动防御,用此TCP防御产生的白名单决定同一源的
UDP
报文是丢弃还是转发。
-
有些服务,例如游戏类服务,是先通过
TCP
协议对用户进行认证,认证通过后使用
UDP
协议传输业务数据,此时可以通过验证UDP
关联的
TCP
类服务来达到防御
UDP Flood
攻击的目的。当
UDP
业务受到攻击时,对关联的TCP
业务强制启动防御,通过关联防御产生
TCP
白名单,以确定同一源的UDP流量的走向,即命中白名单的源的
UDP
流量允许通过,否则丢弃。
②载荷检查和指纹学习
防御原理:使用载荷检查和指纹学习方法防御具有规律的UDP Flood攻击。
当攻击报文负载有特征时,则可以采用动态指纹学习或特征过滤防御。
载荷检查:当
UDP
流量超过阈值时,会触发载荷检查。如果
UDP
报文数据段内容完全一样,例如数据段内容都为1
,则会被认为是攻击而丢弃报文。
指纹学习:当
UDP
流量超过阈值时,会触发指纹学习。指纹由
Anti-DDoS
设备动态学习生成,将攻
击报文的一段显著特征学习为指纹后,匹配指纹的报文会被丢弃。
2.UDP分片攻击
攻击者
向攻击目标发送大量的UDP分片报文,
通常会造成以下危害:
- 一般攻击效果是消耗网络带宽资源,严重时造成链路拥塞。
-
大量
UDP
分片报文会导致具有会话重组功能的网络设备性能降低。
-
大量变源变端口的
UDP
分片报文会导致依靠会话转发的网络设备性能降低,甚至会话耗尽,从而导致网络瘫痪。
-
攻击报文到达服务器开放的UDP
业务端口,服务器检查报文的正确性需要消耗计算资源,造成服务器响应缓慢,甚至无法正常回应。
防御手段:载荷检查和指纹学习
四、DNS类报文攻击防御
比较常见的针对
缓存服务器
的攻击包括:
- DNS Request Flood攻击
-
DNS Reply Flood
攻击
-
未知域名攻击
-
DNS
缓存投毒攻击
比较常见的针对
授权服务器
的攻击包括:
- DNS Request Flood攻击
- 未知域名攻击
- 异常DNS报文攻击
1.DNS Request Flood攻击
攻击原理:
针对缓存服务器的攻击是指攻击者直接或间接
向DNS缓存服务器发送大量不存在的域名解析请求
,导致DNS
缓存服务器不停向授权服务器发送解析请求,最终导致
DNS
缓存服务器超载,影响正常业务的攻击。
针对授权服务器的攻击是指攻击者直接或间接
向DNS授权服务器发送大量不存在的子域名请求
,致使DNS
授权服务器严重超载,无法继续响应正常用户的
DNS
请求,从而达到攻击的目的攻击。DNS Request Flood
攻击源可能是虚假源,也可能是真实源。针对不同类型的攻击源,采取的防御方式也不同。
DNS Request Flood
防御原理:
①针对虚假源攻击缓存服务器
源认证方式可以有效防御
DNS Request Flood
虚假源攻击。
Anti-DDoS
设备基于目的地址对
DNS
Request
报文的速率进行统计,当
DNS Request
报文的
速率超过阈值时,启动源认证防御。
源认证只针对访问受攻击域名的源IP
地址实施,以减少误判和避免对正常业务的访问延时。源
②
针对虚假源攻击授权服务器
授权服务器源认证(即重定向方式),可以有效防御
DNS Request Flood
虚假源攻击。重定向只针
对访问受攻击域名的源
IP
地址实施,以减少误判和避免对正常业务的访问延时。
如上图所示,
Anti-DDoS
设备基于目的地址对
DNS Request
报文的速率进行统计,
当DNS Request
报文的速率超过阈值时,启动重定向
。
1.Anti-DDoS
设备返回给请求源一个别名地址,如果请求源是虚假源,则不会回应重定向报文,认证不通过,报文丢弃。
2.如果请求源是真实源,则重新请求
Anti-DDoS
设备发送的重定向地址。认证通过,
Anti-DDoS设备将此真实源加入白名单。
3.Anti-DDoS
设备再次重定向正确的地址,请求源重新请求正确地址,报文命中白名单,直接通过Anti-DDoS
设备,到达授权服务器,完成报文交互。
③针对真实源攻击
如果是真实源攻击,经过上述防御过程后,通过的
DNS
报文还很大,则可以继续采用以下方式进行防御:
1.DNS
请求报文限速:
指定域名限速;
源
IP
限速
。
2.Anti-DDoS
设备还支持对异常
DNS
报文的检测,根据预定义的规则分别从以下三个方面进行检测:
DNS
报文的格式;
DNS
报文的长度;
DNS
报文的
TTL。
五、HTTP类报文攻击防御
1.HTTP Flood攻击与防御原理
防御
HTTP Flood
攻击的方法包括源认证、目的
IP
的
URI
检测和指纹学习。
攻击原理 :攻击者通过代理服务器或僵尸主机
向目标服务器发起大量的HTTP报文,请求涉及数据库操作的URI或其它消耗系统资源的URI
,造成服务器资源耗尽,无法响应正常请求
防御原理:HTTP Flood源认证;HTTP源统计;URI监测;URI源指纹学习功能。
①HTTP Flood
源认证
源认证防御方式是防御
HTTP Flood
最常用的手段。这种防御方式适用于客户端为浏览器的
HTTP
服务器场景,因为浏览器支持完整的HTTP
协议栈,可以正常回应
重定向报文或者是验证码
。
Anti-DDoS
设备基于目的IP
地址对
HTTP
报文进行统计,当
HTTP报文达到设定的告警阈值时,启动源认证防御功能。
源认证防御包含以下三种方式:
基本模式(
META
刷新);
增强模式(验证码认证) ;302重定向模式。
2.HTTP慢速攻击与防御原理
攻击原理:
HTTP
慢速攻击是利用
HTTP
现有合法机制,在建立了与
HTTP
服务器的连接后,尽量长时间保持该连接, 不释放,达到对HTTP
服务器的攻击。常见的攻击有两种:
Slow POST:
攻击者发送
Post
报文向服务器请求提交数据,将总报文长度设置为一个很大的数值,
但是在随后的数据发送中,每次只发送很小的报文,这样导致服务器端一直等待攻击者发送数据。
Slow headers:
攻击者通过
GET
或者
POST
向服务器建立连接,但是
HTTP
头字段不发送结束符,之后发送其他字段进行保活。服务器会一直等待头信息中结束符而导致连接始终被占用。
防御原理:
针对
HTTP
慢速攻击的特点,
Anti-DDoS
设备对每秒钟
HTTP
并发连接数进行检查,当每秒钟
HTTP
并发连接数超过设定值时,会触发HTTP
报文检查,检查出以下任意一种情况,都认定受到
HTTP
慢速连接攻击,则将该源IP
地址判定为攻击源,加入动态黑名单,同时断开此
IP
地址与
HTTP
服务器的连接。
连续多个
HTTP POST
报文的总长度都很大,但是其
HTTP
载荷长度都很小。
连续多个
HTTP GET/POST
报文的报文头都没有结束标识。
六、Anti-DDoS防御系统
1.七层防御体系
第一步,畸形报文过滤:可以针对协议栈漏洞的畸形报文、特殊控制报文等进行过滤。
第二步,特征过滤:全局静态过滤。首先基于报文内容特征的静态匹配过滤,主要针对没有连接状态的攻击进行防范,如UDP Flood、DNS Flood、ICMP Flood;然后基于黑名单静态过滤;最后提供对僵尸,木马,蠕虫病毒及协议漏洞的过滤。
第三步,基于传输协议层的源认证:用于防范虚假源发起的SYN Flood、ACK Flood、SYN-ACK Flood、 TCP Fragment Flood。
第四步,基于应用层的源认证:用于防范虚假源或僵尸工具的DNS Query Flood、DNS Reply Flood、 HTTP Flood、HTTPS Flood、SIP Flood。
第五步,基于会话检查的防范技术:基于会话检查可防范FIN/RST Flood、TCP连接耗尽攻击、TCP异常会话攻击(SockStress攻击、重传攻击、空连接攻击)、DNS Cache Poisoning、DNS反射攻击 、SSL-DoS/SSL-DDoS、HTTP Slow Header/Post Attack。
第六步,行为分析技术:僵尸网络发起的攻击流量和用户访问业务流量行为上存在很大差异,僵尸网络攻击因属于僵尸工具攻击,流量最大特征是访问频率恒定,访问资源固定;而用户访问业务流量具有突发性,访问资源比较分散。可基于行为分析防范CC攻击、TCP慢速攻击、真实源发起的TCP Flood。
第七步,智能限速,流量整形:经过上述层层过滤后,如果流量还很大,超过服务器的实际带宽,则采用流量整形使到达服务器的流量处于服务器的安全带宽范围内。
2.防御系统要素
3.系统组成
4.部署模式
①直连部署
②旁路部署