由于ARP攻击导致接口板CPU利用率超高

发布时间:  2014-09-20 浏览次数:  362 下载次数:  0
问题描述
某局点用户反馈防火墙2槽位接口板CPU利用率到达99%,其中socket进程达到80%,存在ping不通防火墙接口地址的情况,所有用户业务都受到影响。
[USG9000-diagnose] display cpu-usage slot 2
09:32:56  2014/05/10
CPU Usage Stat. Cycle: 60 (Second)
CPU Usage            : 99% Max: 99%
CPU Usage Stat. Time : 2014-05-10  09:32:56 
CPU utilization for five seconds: 99%: one minute: 99%: five minutes: 99%.
 
TaskName        CPU  Runtime(CPU Tick High/Tick Low)  Task Explanation
BOX              0%         0/       0       BOX Output                    
DelPtTask        0%         0/       0                                     
CrtPtTask        0%         0/       0                                     
VCLK             0%         0/  112a40    
TRAF             0%         0/   1c966       TRAFTraffic Statistics        
CDM              0%         0/       0       CDM                           
SOCK            80%         0/bf518c25       SOCKPacket schedule and process
VTRU             0%         0/       0       VTRUNK    
处理过程
Shutdown接口GE2/1/9后,接口板的socket进程利用率下降到正常水平。
根因
1. 通过查看设备状态,发现设备状态正常,且无告警和异常。
2. 通过查看会话信息,发现会话量并不大,且业务板上CPU利用率也不高。
3. 因为故障现象中2槽位接口板socket进程利用率很高,说明存在很多通过接口板上送或下发处理的报文,这类报文主要有组播协议报文或arp报文。可以通过执行]display pe-counter 2 0 cause verbose clear命令查看cause的统计信息,其中2表示“槽位2”;0表示LPUN板(可以通过display version命令查看)。
[USG9000-diagnose] display pe-counter 2 0 cause verbose clear
09:32:03  2014/05/10
Cause 0X08 =           1C19C3H(CAUSE_CPU_ARP)//大量的arp报文
Cause 0X13 =               28H(CAUSE_DROP_L2_DISABLE)
Cause 0X16 =                2H(CAUSE_CPU_ISIS)
Cause 0X33 =                1H(CAUSE_CPU_DIPV4_224)
Cause 0X44 =               13H(CAUSE_DROP_IPV4MC_DISABLE)
Cause 0X59 =             A609H(CAUSE_DROP_AIB_FAKE )
Cause 0X5D =           11A095H(CAUSE_DROP_ECAR_RED)//存在大量上送,且被Car的报文计数
Cause 0X64 =              843H(CAUSE_CPU_ARP_MISS)
Cause 0X70 =                AH(CAUSE_DROP_CIB_INVALID)

从显示信息中可以看出,存在大量的ARP报文,同时有大量上送且被Car报文的计数。
4. 通过执行display cpu-defend  car protocol arp statistics slot 2命令,查看接口板上ARP丢包的情况。
[USG9000-diagnose] display cpu-defend  car protocol arp statistics slot 2
10:16:35  2014/05/10
Slot               : 2
Application switch : Open
Default Action     : Min-to-cp
--------------------------------------------
IPV4 ARP packet 
Protocol switch: N/A
Packet information:
  Passed packet(s)  : 19158490             
  Dropped packet(s) : 985382873 //丢了9亿多的报文           
Configuration information:
  Configged CIR : 2000    kbps       Actual CIR in NP : 2000    kbps
  Configged CBS : 20000   bytes      Actual CBS in NP : 20000   bytes
  Priority : The index on this board can not be shown . Please see the NP Priority.
  Min-packet-length : NA

从显示信息中可以看到ARP存在大量丢弃计数,达到9亿之多,这是不正常的,大量ARP报文会占用上送带宽2000K,使得正常ARP报文无法得到正常处理,此时会出现2种情况:
a. 设备无法及时学到ARP,接受的ARP报文因带宽不足被丢弃。
b. 设备一直处理发送ARP回应报文的状态,导致socket进程利用率很高。
到此基本可以确认是存在ARP攻击导致业务不通。
5. 通过查看设备接口收发报文情况,发现GE2/1/9接口存在异常。
[USG9000-diagnose]dis inter g2/1/9
10:02:11  2014/05/10
    Input:
      Unicast: 809723711211 packets, Multicast: 14651208 packets
      Broadcast: 1463277516 packets, JumboOctets: 352 packets

[USG9000-diagnose]dis inter g2/1/9
10:02:19  2014/05/10
    Input:
      Unicast: 809723711211 packets, Multicast: 14651216 packets
      Broadcast: 1466161798 packets, JumboOctets: 352 packets

从上面的显示信息可以看出,GE2/1/9接口8s内收到300+W的广播报文,正常的广播报文是很少的,说明接口存在ARP攻击。且该接口为连接外网的接口,说明攻击源来自上游设备,需要向上排查攻击源。
建议与总结
本案例是想让大家了解接口板出现socket进程利用率高时,如何进行问题分析。并且了解如下两条命令的用途:
 display cpu-defend,查看各种协议的丢包情况。
 display cpu-defend all statistics,查看所以协议的统计情况。
此外,针对ARP攻击,目前还没有很好的检测办法,单可以通过如下办法规避:
 关闭接口
 配置静态ARP,两端都需要配置,且配置量可能比较大。

END