定义
在网络中,存在着大量针对CPU(Central Processing Unit)的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的中断甚至系统的中断;大量正常的报文也会导致CPU占用率过高,性能下降,从而影响正常的业务。
为了保护CPU,保证CPU对正常业务的处理和响应,设备提供了本机防攻击功能。本机防攻击针对的是上送CPU的报文,主要用于保护设备自身安全,保证已有业务在发生攻击时的正常运转,避免设备遭受攻击时各业务的相互影响。
功能简介
本机防攻击包括CPU防攻击、攻击溯源、端口防攻击和用户级限速四部分功能。各个功能从不同维度,通过不同方式实现对CPU的保护,如表1所示。
CPU防攻击
CPU防攻击的核心部分是CPCAR(Control Plane Committed Access Rate)功能。此外,CPU防攻击还提供了动态链路保护功能、黑名单功能。
-
CPCAR
CPCAR通过对上送控制平面的不同业务的协议报文分别进行限速,来保护控制平面的安全。报文限速主要分为如下几类:基于每个协议的限速、基于队列的调度和限速和所有报文统一限速。如图1所示。
- 基于协议报文的限速:是指CPCAR中可以针对每种协议单独设置承诺信息速率CIR(Committed Information Rate)和承诺突发尺寸CBS(Committed Burst Size),对于超过该速率值的协议报文,设备直接予以丢弃,从而可以保证每种协议对应的业务能够得到正常处理,同时可以保证协议之间不会相互影响,避免因为某种协议的流量过大导致其它协议报文得不到处理的情况发生。
- 基于队列的调度和限速:协议限速之后,设备可对一类协议再分配一个队列,比如Telnet、SSH等管理类协议分为一个队列,路由协议分为一个队列,各个队列之间按照权重或优先级方式调度,保证各类业务的优先级,优先级高的业务被CPU调度的几率更大,在有冲突的情况下保证高优先级业务优先处理。同时,可以针对每个队列进行限速,限制各个队列向CPU上送报文的最大速率。对于超过最大速率的协议报文,设备会直接丢弃。
- 所有报文统一限速:所有报文统一限速是为了限制CPU处理的报文总数,保证CPU在其正常处理能力范围内尽可能多的处理报文,而不会造成CPU异常,保证了设备CPU的正常运行。
- 当三种限速方式同时生效时,设备以最小限速值进行限速。
- 以上所有CPU防攻击功能对设备的管理网口不起作用。针对设备管理网口下的网络存在的攻击,一旦攻击较为严重,可能会导致用户无法从管理网口登录并管理设备,此时建议用户对该网络上的PC(Personal Computer)进行杀毒或者重新规划组网。
- 多协议并行时,上送CPU的协议报文可能会由于超出CIR/CBS、队列上送CPU报文的最大速率、或者CPU处理的报文总数被丢弃,出现协议震荡。
为了解决固定的默认CPCAR值无法满足实际应用中协议报文上送速度的动态需求,设备还提供了根据业务规模、报文的丢包行为以及CPU占用率自动调整协议报文的默认CPCAR值的功能。
-
动态链路保护功能
动态链路保护功能,是指设备针对基于会话的应用层数据的保护,例如FTP Session数据、BGP Session数据和OSPF Session数据等,它可以保证已有业务受到攻击时仍能够正常运行。当协议连接建立后,基于协议的限速就不再起作用,设备以动态链路保护功能设定的限速值对匹配相应Session的报文进行限速,由此保证此Session相关业务运行的可靠性和稳定性。
-
黑名单功能
CPU防攻击提供的黑名单功能,是指通过定义ACL来设置黑名单,设备会将后续匹配黑名单特征的报文全部丢弃,因此可以将已确定为攻击者的非法用户设置到黑名单中。
-
用户自定义流功能
CPU防攻击提供的用户自定义流功能,是指通过定义ACL来设置用户自定义流,限制匹配符合用户自定义流特征的报文上送CPU。由于ACL规则中可以灵活指明攻击流数据的特征,因此用户自定义流能够应用于网络中出现不明攻击的场景。
攻击溯源
如图2所示,攻击溯源包括报文解析、流量分析、攻击源识别和发送日志告警通知管理员以及实施惩罚四个过程。
- 从IP地址、MAC地址以及端口三个维度进行报文解析,其中端口通过“物理端口+VLAN”标识。
- 根据IP地址、MAC地址或者端口信息统计接收到的满足攻击溯源防范报文类型的协议报文数量。
- 当单位时间上送CPU的报文数量超过了阈值时,就认为是攻击。
- 当检测到攻击后,会发送日志、告警通知管理员或者直接实施惩罚,如丢弃攻击报文。
此外,攻击溯源还提供了白名单功能。通过定义ACL或者直接将端口设置为攻击溯源白名单,使设备不对白名单用户的报文进行溯源,从而可以保证确定为合法用户的报文能够正常上送CPU处理。因此可以将已确定的合法用户或者端口设置到白名单中。
端口防攻击
端口防攻击的处理流程如下:
- 基于端口维度进行报文解析,并统计收到的端口防攻击所防范的协议报文的数量。
- 当单位时间上送CPU的报文数量超过了端口防攻击检查阈值时,就认为该端口存在攻击。
-
检测到攻击后,设备会发送日志,并将产生攻击端口的未超出协议限速值数量的报文移入低优先级队列后再上送CPU处理,其中,S5735S-H、S5736-S、S5720I-SI不支持将未超出协议限速值数量的报文移入低优先级队列,保持原队列上送CPU处理。超出限速值数量的报文,则直接丢弃。关于“协议限速”和“优先级队列”的概念,请参见“CPU防攻击”中的说明。
端口防攻击的限速处理方式,相比较攻击溯源的惩罚措施,对设备正常业务造成的影响更小。
此外,端口防攻击还提供了白名单功能。通过定义ACL或者直接将端口设置为端口防攻击白名单,使设备不对白名单用户的报文进行溯源和限速处理,从而可以保证确定为合法用户的报文能够正常上送CPU处理。因此可以将已确定的合法用户或者端口设置到白名单中。
用户级限速
用户级限速的处理流程如下:
- 设备对收到的用户的特定协议报文的源MAC地址进行哈希计算,将收到的不同源MAC地址的报文放到不同的限速桶中。
- 当单位时间限速桶内的报文超过了限速值时,该限速桶会丢弃收到的报文,并且每隔10分钟对限速桶内的丢包数目进行统计。如果10分钟内限速桶丢弃的报文数目超过2000个,设备会发送该限速桶的丢包日志。如果同时存在多个限速桶丢包数目超过2000个,设备只发送丢包数目最多的10个限速桶的丢包日志。