目录
应用场景
DOS侧重于通过对主机特定漏洞的利用攻击导致网络栈失效、系统崩溃、主机死机而无法提供正常的网络服务功能,从而造成拒绝服务,常见的DOS攻击手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等;扫描也是网络攻击的一种,攻击者在发起网络攻击之前,通常会试图确定目标上开放的TCP/UDP端口,而一个开放的端口通常意味着某种应用。
DDOS的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务。
NGFW的防SYN Flood攻击采用了业界最新的syncookie技术,在很少占用系统资源的情况下,可以有效地抵御SYN Flood等DDOS攻击对受保护服务器的攻击。从而阻止外部的恶意攻击,保护设备和内网,当检测到此类扫描探测时,向用户进行报警提示。
基于上面的例子“保护内网服务器”。除了进行IPS防护外,在对其进行DDOS的保护。
一、组网需求
对所有来自互联网的访问进行DDOS防护。
(1)保护web服务器,其私网地址为192.168.1.2,映射到外网地址202.1.1.11,对互联网开放HTTP服务;
(2)保护防火墙本身,202.1.1.10, 防止对其https, ssh端口进行DDOS攻击。
二、网络拓扑
三、配置要点
1 定义服务器地址
2 定义DDOS策略
四、配置步骤
1 定义服务器地址
菜单:“防火墙”--“地址”--“地址”,点击“添加”按钮
名称配置为”server“,地址类型选择子网:ip/掩码为”202.1.1.8/29“,该地址范围既包含服务器,也包含了设备本身,点击“确认”。
改地址范围既包括了服务器地址(202.1.1.11)也包括了防火墙的外网口地址(202.1.1.10)。
2 定义DDOS策略
菜单:“防火墙”--“策略”--“DDOS策略” ,点击“新建”按钮
配置DDOS策略参数:
源接口/区: wan1, wan1口是外网接口,针对wan1口部署DDOS策略。
源地址:all.
目的地址: 被保护的地址202.1.1.8/29,同时实现对防火墙外网口和服务器的保护。
服务:被保护的服务 http,https,ssh。
anomalies: DDOS支持的防护类型
tcp_sysn_flood: DDOS攻击名称
状态: 是否启用该种防护
logging: 是否启用日志,ddos日志无需再CLI命令行下开启,只需将logging打勾即可
动作: 检查到攻击后的处理动作 block阻止,或者pass。
阀值: 每秒检测的一定的攻击数量,则会触发相应的处理动作。
点击”确定“即可。
五、查看抗DOS攻击日志
六、常见DOS攻击和防扫描简介
防DOS攻击
Jolt2:Jolt2攻击通过向目的主机发送报文偏移加上报文长度超过65535的报文,使目的主机处理异常而崩溃。 配置了防Jolt2攻击功能后,NGFW可以检测出Jolt2攻击,丢弃攻击报文并输出告警日志信息。
Land-Base:Land-Base攻击通过向目的主机发送目的地址和源地址相同的报文,使目的主机消耗大量的系统资源,从而造成系统崩溃或死机。 配置了防Land-Base攻击功能后,NGFW可以检测出Land-Base攻击,丢弃攻击报文并输出告警日志信息。
PING of death:PING of death攻击是通过向目的主机发送长度超过65535的ICMP报文,使目的主机发生处理异常而崩溃。 配置了防PING of death攻击功能后,NGFW可以检测出PING of death攻击,丢弃攻击报文并输出告警日志信息。
Syn flag:Syn-flag攻击通过向目的主机发送错误的TCP标识组合报文,浪费目的主机资源。 配置了防Syn-flag攻击功能后,NGFW可以检测出Syn-flag攻击,丢弃攻击报文并输出告警日志信息。
Tear drop:Tear-drop攻击通过向目的主机发送报文偏移重叠的分片报文,使目的主机发生处理异常而崩溃。 配置了防Tear-drop攻击功能后, NGFW可以检测出Tear-drop攻击,并输出告警日志信息。因为正常报文传送也有可能出现报文重叠,因此NGFW不会丢弃该报文,而是采取裁减、重新组装报文的方式,发送出正常的报文。
Winnuke:Winnuke攻击通过向目的主机的139、138、137、113、53端口发送TCP紧急标识位URG为1的带外数据报文,使系统处理异常而崩溃。 配置了防Winnuke攻击功能后,NGFW可以检测出Winnuke攻击报文,将报文中的TCP紧急标志位为0后转发报文,并可以输出告警日志信息。
Smurf:这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(PING)数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。
防扫描
TCP协议扫描:根据实际网络情况,当受到TCP扫描攻击时,可以配置防TCP扫描。 当一个源IP 地址在1秒内将含有TCP SYN片段的IP 封包发送给位于相同目标IP地址的不同端口数量大于配置的门限值时,即认为其进行了端口扫描,系统将其标记为TCP SCAN,并在配置的阻断时间内拒绝来自于该台源主机的所有其它TCP SYN包。 启用防TCP扫描,可能会占用比较多的内存。
UDP协议扫描:根据实际网络情况,当受到UDP扫描攻击时,可以配置防UDP SCAN扫描。 当一个源IP 地址在1秒内将含有UDP的IP 封包发送给位于相同目标IP地址的不同端口数量大于配置的门限值时,即进行了一次端口扫描,系统将其标记为UDP SCAN,并在配置的阻断时间内拒绝来自于该台源主机的所有其它UDP包。 启用防UDP扫描,可能会占用比较多的内存。
PING扫描:根据实际网络情况,当受到PING扫描攻击时,可以配置防PING扫描。 当一个源IP地址在1秒内发送给不同主机的ICMP 封包超过门限值时,即进行了一次地址扫描。此方案的目的是将ICMP 封包( 通常是应答请求) 发送给各个主机,以期获得至少一个回复,从而查明目标地址。NGFW设备在内部记录从某一远程源地点发往不同地址的ICMP 封包数目。当某个源IP被标记为地址扫描攻击,则系统在配置的阻断时间内拒绝来自该主机的其它更多ICMP 封包。 启用防PING扫描,可能会占用比较多的内存。
主机抑制时长:设置防扫描功能的阻断时间,当系统检测到扫描攻击时,在配置的时长内拒绝来自于该台源主机的所有其它攻击包,缺省配置为20秒。
七、DDOS策略实施建议
由于DDOS的闸值,与用户实际业务流量相关,所以没有标准的建议值,建议逐步调整.
(1) 明确被保护的对象和服务。如保护内网的WEB服务器,则应该明确目的地址和端口。以便节约性能。
(2) 根据业务量估算,配置DOS闸值,过高则无法起到保护作用。同时将动作配置为pass,防止因为阈值配置过低,造成业务中断。
同时开启日志记录,运行一段时间后,观察日志,是否有流量触发DOS, 并分析是否为攻击行为。
(3) 不断优化阈值,最后将动作改为所需的block或者pass,并观察性能的变化。
(4) 谨慎使用 tcp_src_session,udp_src_session,tcp_dst_session,udp_dst_session类似功能,正常流量可以触发该类攻击检测,且消耗资源高。。
同一个ip发起过的的tcp或者udp会话会触发 tcp_src_session,udp_src_session,如内网用户过多bt下载,同一DNS服务器大量返回包等。
而去往同一个ip地址的tcp,udp链接过多,会触发tcp_dst_session,udp_dst_session,如内网用户共同访问你同一dns服务器,百度等常用网站。
(5) 性能
建议仅开启tcp syn flook, udp flood, 网络中大都为该类型的攻击。tcp_src_session等基于会话数的功能,对cpu消耗较高,不建议开启。
对于网络攻击单个服务器的攻击,开启syn flood,要比仅仅依靠防护强策略阻挡,会节约30-50%左右的cpu。可以针对服务器进行ddos保护。
DDOS不消耗内存。
(6) 相关诊断命令
A 查看会话: get system session-info full-stat
session table: table_size=2097152 max_depth=4 used=52794
expect session table: table_size=32768 max_depth=0 used=0
misc info: session_count=27709 exp_count=0 clash=0 memory_tension_drop=0 ephemeral=0/851968 removeable=0
delete=0, flush=0, dev_down=0/0
TCP sessions:
7 in ESTABLISHED state
27712 in SYN_SENT state //syn会话过多,异常
1 in CLOSE state
B 抓包: 通过抓包命令可以看到高平率出现的异常数据包。
diagnose sniffer packet any 'icmp' 4 1000 或者
diagnose sniffer packet any 'tcp' 4 1000 或者
diagnose sniffer packet any 'udp' 4 1000
八、DDOS策略参考
异常名称 | 描述 | 默认的阈值 |
tcp_syn_flood | 如果新键TCP连接(包括重传)的SYN数据包传至一个目标IP地址的速率超过配置阈值,则执该动作。 | 每秒2000个数据包。 |
tcp_port_scan | 如果新建TCP连接(包括重传)的SYN数据包传至一个源IP地址的速率超过配置的阈值,则执行该动作。 | 每秒1000个数据包。 |
tcp_src_session | 如果从同一个源IP地址传出的并发TCP连接数量超过配置的阈值,则执行该动作。 | 5000个并发会话。 |
tcp_dst_session | 如果传至同一目标IP地址的并发TCP连接数量超过配置的阈值,则执行该动作。 | 5000个并发会话。 |
udp_flood | 如果传至目标IP地址的UDP流量超过配置的阈值,则执行该动作。 | 每秒2000个数据包。 |
udp_scan | 如果一个源IP地址传出的UDP会话数量超过配置阈值,则执行该动作。 | 每秒2000个数据包。 |
udp_src_session | 如果一个源IP地址传出的并发UDP连接数量超过配置的阈值,则执行该动作。 | 5000个并发会话。 |
udp_dst_session | 如果传至目标IP地址的并发UDP连接数量超过配置的阈值,则执行该动作。 | 5000个并发会话。 |
icmp_flood | 如果发送至一个目标IP地址的ICMP数据包数量超过配置的阈值,则执行该动作。 | 每秒250个数据包。 |
icmp_sweep | 如果一个源IP地址传出ICMP数据包数量超过配置的阈值,则执行该动作。 | 每秒100个数据包。 |
icmp_src_session | 如果一个源IP地址传出的并发ICMP连接数量超过配置的阈值,则执行该动作。 | 300个并发会话 |
icmp_dst_session | 如果传至目标IP地址的并发ICMP连接数据超过配置的阈值,则执行该动作。 | 3000个并发会话 |
ip_src_session | 如果一个源IP地址传出的并发IP连接数据超过配置的阈值,则执行该动作。 | 5000个并发会话。 |
ip_dst_session | 如果传至目标IP地址的并发IP连接数据超过配置的阈值,则执行该动作。 | 5000个并发会话。 |
sctp_flood | 如果发送至一个目标IP地址的SCTP数据包数量超过配置的阈值,则执行该动作。 | 每秒2000个数据包 |
sctp_scan | 如果一个源IP地址传出的SCTP会话数量超过配置阈值,则执行该动作。 | 每秒1000个数据包 |