

本机防攻击是为了保证CPU对正常业务的处理而设计的一种CPU保护机制。当CPU接收的正常业务报文或恶意攻击报文数量较多时,本机防攻击功能确保CPU能够正常运行,从而保证业务的正常运行。本机防攻击功能包括CPU防攻击、端口防攻击、用户级限速、攻击溯源和攻击防范。
本机防攻击是如何工作的
本机防攻击通过多级安全机制,实现对设备的分级保护。具体功能包括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值。
过滤器功能
过滤器功能是指通过定义ACL来设置过滤器,设备通过ACL把符合特征的用户纳入到过滤器中,被纳入过滤器的用户所发的报文到达设备后均根据ACL规则进行处理。如果ACL规则中的动作为deny,设备会直接丢弃该报文;如果ACL规则中的动作为permit,设备会提高报文优先级。
端口防攻击
端口防攻击是针对DoS攻击的一种防御方式。它基于端口维度进行防御,当单位时间上送CPU的报文数量超过了端口防攻击检查阈值时,就认为该端口存在攻击,此时设备会将该端口收到的未超出协议限速值的报文移入低优先级队列后,再上送CPU处理,超出限速值的报文直接丢弃。此外,端口防攻击还提供了白名单功能、老化探测功能和端口防攻击事件上报功能。
白名单功能
将合法用户加入到白名单中,设备不对白名单内的用户报文进行端口防攻击处理,从而保证合法用户的报文能够正常上送CPU处理。白名单可以通过ACL或端口灵活设置。
老化探测功能
设备一旦检测到存在攻击的端口,就会在老化探测周期内(假设为T秒)对该端口的攻击报文持续进行移入低优先级队列的处理。达到T秒之后,设备会再次计算该端口收到协议报文的速率,如果该值超过了检查阈值(即存在攻击),则继续对其进行移入低优先级队列的处理;反之,则正常上送。
端口防攻击事件上报功能
当端口存在攻击时,设备以事件上报的方式提醒管理员,以便管理员采取一定的措施来保护设备。
用户级限速
用户侧主机遭受病毒攻击时向网络中发送大量的协议报文,导致设备的CPU占用率过高,性能下降,从而影响正常的业务。此时,管理员可以配置用户级限速功能。用户级限速功能是指基于用户MAC地址识别用户,对用户的特定报文进行限速,使得单个用户发起攻击时只对该用户进行限速,而不影响其他用户。与CPCAR基于设备对协议报文进行限速相比,基于用户MAC地址进行限速能够精确到每个用户,对正常用户的影响更小。其处理流程如下:
- 设备对收到的用户协议报文的源MAC地址进行哈希计算,将收到的不同源MAC地址的报文放到不同的限速桶中。
当单位时间内限速桶内的报文超过了限速值时,该限速桶会丢弃收到的报文。并且每隔一定时间对2. 限速桶内的丢包数目进行统计,如果限速桶丢弃的报文数目超过限速值,设备会发送该限速桶的丢包日志。
攻击溯源
攻击溯源针对设备CPU的DOS攻击进行防御。通过对上送报文进行统计分析,将超过了配置阈值的报文视为用户攻击报文,并据报文信息找到攻击源用户、攻击源端口,并发送日志、告警告知管理员或直接进行惩罚。
其具体过程如下:
- 报文解析:从IP地址、MAC地址以及端口三个维度对上送CPU的报文进行报文解析,其中端口通过“物理端口+VLAN”标识。
- 流量分析:根据IP地址、MAC地址或者端口信息统计接收到的协议报文数量。
- 攻击源识别:当单位时间上送CPU的报文数量超过了阈值时,则认为是攻击。
- 识别后处理:当检测到攻击后,会发送日志、告警通知管理员或者直接实施惩罚,如丢弃攻击报文。

攻击溯源原理
此外,攻击溯源还提供了白名单功能。将合法用户加入到通过白名单中,设备不对白名单内的用户报文进行溯源和攻击惩罚处理,从而保证合法用户的报文能够正常上送CPU处理。白名单可以通过ACL或端口灵活设置。
攻击防范
攻击防范是在进行所有报文统一限速之前,通过分析经过设备的报文的内容和行为,判断报文是否具有攻击特征,并根据配置对具有攻击特征的报文执行一定的防范措施。攻击防范主要包含畸形报文攻击防范、分片报文攻击防范、TCP SYN泛洪攻击防范、UDP泛洪攻击防范和ICMP泛洪攻击防范。
本机防攻击可防御哪些报文攻击
畸形报文攻击
畸形报文攻击是通过向目标设备发送有缺陷的IP报文,使得目标设备在处理这样的IP报文时出错和崩溃,影响目标设备承载的业务正常运行。畸形报文攻击防范是指设备实时检测出畸形报文并予以丢弃,实现对设备的保护。畸形报文种类如下表所示。
表1-1 畸形报文攻击类型

分片报文攻击
分片报文攻击是通过向目标设备发送分片出错的报文,使得目标设备在处理分片错误的报文时崩溃、重启或消耗大量的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报文数量超过限速值就启动丢弃动作,保证设备受到攻击时资源不被耗尽。

5905

被折叠的 条评论
为什么被折叠?



