定义在网络中,存在着大量针对CPU(Central Processing Unit)的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的中断甚至系统的中断;大量正常的报文也会导致CPU占用率过高,性能下降,从而影响正常的业务。
为了保护CPU,保证CPU对正常业务的处理和响应,设备提供了本机防攻击功能。本机防攻击针对的是上送CPU的报文,主要用于保护设备自身安全,保证已有业务在发生攻击时的正常运转,避免设备遭受攻击时各业务的相互影响。
功能简介本机防攻击包括CPU防攻击、攻击溯源、端口防攻击和用户级限速四部分功能。各个功能从不同维度,通过不同方式实现对CPU的保护,如表4-1所示。
表4-1 本机防攻击功能简介
功能名称 | |
CPU防攻击 | CPU防攻击可以针对上送CPU的报文进行限制和约束,使单位时间内上送CPU报文的数量限制在一定的范围之内,从而保证CPU对业务的正常处理。 |
攻击溯源 | 攻击溯源能够防御DoS(Denial of Service)攻击。设备通过对上送CPU的报文进行统计分析,然后对统计的报文设置一定的阈值,将超过阈值的报文判定为攻击报文,再根据攻击报文信息找出攻击源用户或者攻击源接口,最后通过日志、告警等方式提醒管理员,以便管理员采用一定的措施来保护设备,或者直接丢弃攻击报文以对攻击源进行惩罚。 |
端口防攻击 | 端口防攻击是针对DoS攻击的另一种防御方式。它基于端口维度进行防御,可以避免攻击端口的协议报文挤占带宽,其他端口的协议报文无法正常上送CPU处理而造成业务中断。 |
用户级限速 | 用户级限速指的是基于用户MAC地址识别用户,然后对用户的特定协议报文(ARP/ND/DHCP Request等)进行限速,使得单个用户发起攻击时只对该用户进行限速,从而不影响其他用户。 |
CPU防攻击CPU防攻击的核心部分是CPCAR(Control Plane Committed Access Rate)功能。此外,CPU防攻击还提供了动态链路保护功能、黑名单功能、白名单功能以及用户自定义流功能。CPCAR
CPCAR通过对上送控制平面的不同业务的协议报文分别进行限速,来保护控制平面的安全。报文限速主要分为如下几类:基于每个协议的限速、基于队列的调度和限速和所有报文统一限速。如图4-1所示。
图4-1 上送CPU的报文限速分类
- 基于协议报文的限速:是指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来设置用户自定义流,限制匹配符合用户自定义流特征的报文上送CPU。由于ACL规则中可以灵活指明攻击流数据的特征,因此用户自定义流能够应用于网络中出现不明攻击的场景。
CPU防攻击特性对上送CPU报文的处理流程
首先设备根据每类协议报文的缺省CPCAR值对上送CPU的报文进行CAR限速,然后判断报文是否匹配黑名单:如果匹配,则设备直接丢弃该报文;
- 如果不匹配,则判断报文是否匹配白名单:
攻击溯源如图4-2所示,攻击溯源包括报文解析、流量分析、攻击源识别和发送日志告警通知管理员以及实施惩罚四个过程。- 从IP地址、MAC地址以及端口三个维度进行报文解析,其中端口通过“物理端口+VLAN”标识。
- 根据IP地址、MAC地址或者端口信息统计接收到的满足攻击溯源防范报文类型的协议报文数量。
- 当单位时间上送CPU的报文数量超过了阈值时,就认为是攻击。
- 当检测到攻击后,会发送日志、告警通知管理员或者直接实施惩罚,如丢弃攻击报文。
图4-2 攻击溯源原理
此外,攻击溯源还提供了白名单功能。通过定义ACL或者直接将端口设置为攻击溯源白名单,使设备不对白名单用户的报文进行溯源,从而可以保证确定为合法用户的报文能够正常上送CPU处理。因此可以将已确定的合法用户或者端口设置到白名单中。
端口防攻击端口防攻击的处理流程如下:
此外,端口防攻击还提供了白名单功能。通过定义ACL或者直接将端口设置为端口防攻击白名单,使设备不对白名单用户的报文进行溯源和限速处理,从而可以保证确定为合法用户的报文能够正常上送CPU处理。因此可以将已确定的合法用户或者端口设置到白名单中。
CPU防攻击的白名单与攻击溯源白名单、端口防攻击白名单的概念有所不同,前者的意义在于设备优先处理白名单用户的报文,后两者的意义在于无论白名单用户是否存在攻击都不对其进行相应处理。
用户级限速用户级限速的处理流程如下:- 设备对收到的用户的特定协议报文的源MAC地址进行哈希计算,将收到的不同源MAC地址的报文放到不同的限速桶中。
- 当单位时间限速桶内的报文超过了限速值时,该限速桶会丢弃收到的报文,并且每隔10分钟对限速桶内的丢包数目进行统计。如果10分钟内限速桶丢弃的报文数目超过2000个,设备会发送该限速桶的丢包日志。如果同时存在多个限速桶丢包数目超过2000个,设备只发送丢包数目最多的10个限速桶的丢包日志。