什么是本机防攻击?
本机防攻击是如何工作的?
本机防攻击通过多级安全机制,实现对设备的分级保护。具体功能包括CPU防攻击、用户级限速、攻击溯源及攻击防范。
本机防攻击的防护分级
第一级:通过过滤器、攻击溯源惩罚丢弃功能等直接丢弃上送CPU的恶意报文。
第二级:基于协议报文的限速CPCAR(Control Plane Committed Access Rate)。对上送CPU的报文按照协议类型进行速率限制,比如 ARP、 DHCP 协议,每个协议都有一定的带宽,保证每种协议上送CPU的报文不会过多。对每个协议进行限速可以保证协议之间不互相影响,不会因为某种协议的流量过大导致其它协议得不到处理。
控制CPCAR是CPU防攻击的核心部分。CPCAR是基于设备对协议报文进行限速,用户级限速是基于发起攻击的用户MAC地址对协议报文进行限速。
第三级:基于队列的调度和限速。协议报文CPCAR限速之后,设备可对一类协议再分配一个队列,比如 Telnet、 SSH 等管理类协议一个队列、路由协议一个队列。各个队列之间按照权重或优先级方式调度,在有冲突的情况下高优先级的队列优先处理。同时,可以针对每个队列进行限速,限制各个队列向CPU上送报文的最大速率。对于超过队列最大速率的协议报文,设备会直接丢弃。
第四级:所有报文统一限速。该功能是为了限制CPU处理的报文总数,保证CPU在其正常处理能力范围内尽可能多的处理报文。在进行所有报文统一限速之前,设备支持通过分析上送CPU处理的报文的内容和行为,判断报文是否具有攻击特性,并对具有攻击特性的报文执行丢弃或限速等攻击防范措施。
哪些功能可以保护本机免受攻击?
本机防攻击的基本功能包括CPU防攻击、用户级限速、攻击溯源及攻击防范。其中CPU防攻击、用户级限速、攻击溯源用于进行流量控制,用于处理网络中需正常上送的CPU数量巨大而影响业务的问题。攻击防范功能用于识别及处理恶意攻击报文,以处理CPU接收恶意攻击报文数量较多而影响业务的情况。
CPU防攻击
CPU防攻击的核心是CPCAR(Control Plane Committed Access Rate),即基于协议报文的限速。设备支持通过命令行修改CPCAR,包括协议报文的CPCAR、上送到CPU的所有报文的CPCAR以及协议联动后的CPCAR。并且,在默认CPCAR不能满足业务需求时,支持动态自适应调整协议报文的默认CPCAR。
应用层协议联动功能
协议联动功能是指设备对基于会话连接的应用层数据的保护功能。当 OSPF、 BGP、 FTP 等协议会话连接建立后,基于协议的默认CPCAR就不再起作用,设备以协议联动设定的CPCAR对建立会话连接的报文进行限速。通常,协议联动设定的CPCAR要比默认CPCAR大很多,以此来保证业务运行的可靠性和稳定性。
动态自适应调整协议报文的默认CPCAR值
动态自适应调整协议报文的默认CPCAR值应用在用户接入相关的协议报文(如ARP协议)上,主要解决协议报文默认CPCAR值无法满足上送速率的场景。开启该功能后,设备会根据协议报文的丢包情况和CPU占用率调整默认CPCAR值。
用户级限速
用户侧主机遭受病毒攻击时向网络中发送大量的协议报文,导致设备的CPU占用率过高,性能下降,从而影响正常的业务。此时,管理员可以配置用户级限速功能。用户级限速功能是指基于用户MAC地址识别用户,对用户的特定报文进行限速,使得单个用户发起攻击时只对该用户进行限速,而不影响其他用户。与CPCAR基于设备对协议报文进行限速相比,基于用户MAC地址进行限速能够精确到每个用户,对正常用户的影响更小。其处理流程如下:
- 设备对收到的用户协议报文的源MAC地址进行哈希计算,将收到的不同源MAC地址的报文放到不同的限速桶中。
- 当单位时间内限速桶内的报文超过了限速值时,该限速桶会丢弃收到的报文。并且每隔一定时间对限速桶内的丢包数目进行统计,如果限速桶丢弃的报文数目超过限速值,设备会发送该限速桶的丢包日志。
攻击溯源
攻击溯源针对设备CPU的DOS攻击进行防御。通过对上送报文进行统计分析,将超过了配置阈值的报文视为用户攻击报文,并据报文信息找到攻击源用户、攻击源端口,并发送日志、告警告知管理员或直接进行惩罚。
其具体过程如下:
攻击防范
攻击防范是在进行所有报文统一限速之前,通过分析经过设备的报文的内容和行为,判断报文是否具有攻击特征,并根据配置对具有攻击特征的报文执行一定的防范措施。攻击防范主要包含畸形报文攻击防范、分片报文攻击防范、TCP SYN泛洪攻击防范、UDP泛洪攻击防范和ICMP泛洪攻击防范。
本机防攻击可防御哪些报文攻击?
畸形报文攻击
攻击类型 |
特点 |
判断依据 |
---|---|---|
缺失IP载荷的泛洪 |
如果IP报文只有20字节的IP报文头,没有数据部分的报文。 |
检测IP报文是否缺失数据部分。 |
IGMP空报文 |
正常的IGMP报文由20字节的IP报文头加上8字节的数据部分组成,总长28个字节。总长度小于28字节的IGMP报文称为IGMP空报文。 |
检测IGMP报文总长度是否小于28字节。 |
LAND攻击 |
攻击者利用TCP连接三次握手机制中的缺陷,向目标主机发送一个源地址和目的地址均为目标主机、源端口和目的端口相同的SYN报文,目标主机接收到该报文后,将创建一个源地址和目的地址均为自己的TCP空连接,直至连接超时,耗费大量资源,直至设备瘫痪。 |
检测TCP SYN报文的源地址和目的地址是否一致或源端口和目的端口是否一致。 |
Smurf攻击 |
Smurf攻击是指攻击者向目标网络发送源地址为目标主机地址、目的地址为目标网络广播地址的ICMP请求报文,目标网络中的所有主机接收到该报文后,都会向目标主机发送ICMP响应报文,导致目标主机收到过多报文而消耗大量资源,甚至导致设备瘫痪或网络阻塞。 |
检测ICMP请求报文的目标地址是否是广播地址或子网广播地址。 |
TCP标志位非法攻击 |
TCP报文包含6个标志位:URG、ACK、PSH、RST、SYN、FIN。
|
检查TCP报文的各个标志位是否符合下面条件之一:
|
分片报文攻击
分片报文攻击是通过向目标设备发送分片出错的报文,使得目标设备在处理分片错误的报文时崩溃、重启或消耗大量的CPU资源,影响目标设备承载的业务正常运行。分片报文攻击防范是指设备实时检测出分片报文并予以丢弃或者限速处理,实现对本设备的保护。
分片报文攻击主要分为以下几类:
- 分片数量巨大攻击:同一IP报文中的分片数目超过8189个,造成设备重组分片报文时消耗大量CPU资源。
- 巨大Offset攻击:攻击者向目标设备发送一个Offset值大于8189的分片报文,导致目标设备需要分配巨大的内存空间来存放所有分片报文,消耗大量资源。
- 重复分片攻击 :重复分片攻击就是把同样的分片报文多次向目标主机发送,造成目标主机的CPU和内存使用不正常。同样的分片包括完全相同的分片和报文不相同但offset相同的分片。
- Syndrop攻击:IP分片错误,第二片包含在第一片之中。即数据包中第二片IP包的偏移量小于第一片结束的位移,而且算上第二片IP包的Data,也未超过第一片的尾部。Syndrop攻击使用了TCP协议,Flag为SYN,而且带有载荷。
- 分片错误攻击:IP报文分片第二片包含在第一片之中,即数据包中第二片IP包的偏移量小于第一片结束的位移。根据采用的协议不同和有效荷载长度不同可分为Syndrop攻击、NewTear攻击、Bonk攻击和Nesta攻击。
对于分片数量巨大攻击、巨大Offset攻击、Syndrop攻击和分片错误攻击,直接丢弃所有分片报文。对于重复分片攻击,设备实现对分片报文进行CAR(Committed Access Rate)限速,保留首片,丢弃其余所有相同的重复分片,保证不对CPU造成攻击。
TCP SYN泛洪攻击
TCP SYN攻击利用了TCP三次握手的漏洞。在TCP的3次握手期间,当接收端(目标设备)收到来自发送端(攻击者)的初始SYN报文时,向发送端返回一个SYN+ACK报文。接收端在等待发送端的最终ACK报文时,该连接一直处于半连接状态。如果接收端最终没有收到ACK报文包,则重新发送一个SYN+ACK到发送端。如果经过多次重试,发送端始终没有返回ACK报文,则接收端关闭会话并从内存中刷新会话,从传输第一个SYN+ACK到会话关闭大约需要30秒。
在这段时间内,攻击者可能发送大量SYN报文到开放的端口,并且不回应接收端的SYN+ACK报文。接收端内存很快就会超过负荷,且无法再接收任何新的连接,并将现有的连接断开。
TCP SYN泛洪攻击
TCP SYN泛洪攻击防范即设备对TCP SYN报文进行速率限制,当目标设备每秒收到的SYN报文数量超过限速值就启动丢弃动作,保证设备受到攻击时资源不被耗尽。
UDP泛洪攻击
UDP泛洪攻击是指攻击者在短时间内向目标设备发送大量的UDP报文,导致目标设备负担过重而不能处理正常的业务。UDP泛洪攻击分为两类:
- Fraggle攻击:攻击者发送源地址为目标设备IP地址,目的地址为广播地址,目的端口号为7的UDP报文。如果该广播网络中有很多主机都启用了UDP响应请求服务,目标设备将会收到很多主机发送的UDP回应报文,设备处理这些报文会消耗CPU资源,造成系统繁忙,从而达到攻击效果。
Fraggle攻击
对于Fraggle攻击,设备开启UDP泛洪攻击防范功能后,默认UDP端口号为7的报文是攻击报文,直接将其丢弃。
- UDP诊断端口攻击:攻击者向目标设备的UDP诊断端口(7-echo,13-daytime,19-Chargen等UDP端口)发送大量UDP请求报文,形成泛洪,消耗网络带宽资源,并且目标设备为这些请求提供服务回应UDP报文时会消耗CPU资源,造成负担过重而不能处理正常的业务。
开启泛洪攻击防范功能后,设备将UDP端口为7、13和19的报文认为是攻击报文,直接丢弃。
ICMP泛洪攻击
网络管理员一般用Ping程序对网络进行监控和故障排除,大概过程如下:
- 源设备向接收设备发出ICMP请求报文;
- 接收设备接收到ICMP请求报文后,会向源设备回应一个ICMP响应报文。
如果攻击者向目标设备发送大量的ICMP请求报文,则目标设备会忙于处理这些请求,而无法继续处理其他的数据报文,造成对正常业务的冲击。
ICMP泛洪攻击
ICMP泛洪攻击防范即设备对ICMP报文进行速率限制,当目标设备每秒收到的ICMP报文数量超过限速值就启动丢弃动作,保证设备受到攻击时资源不被耗尽。
- 作者: 扶晓琴,孟显海
- 最近更新: 2024-02-26
- 浏览次数: 3360
- 平均得分: