防火墙CPU被ARP报文打满查不到源头?华为攻击溯源自动揪出攻击源

网关设备 CPU 使用率突然飙高,一看是大量 ARP 报文涌向上送 CPU 的通道,可内网几百个终端到底是谁在狂发?靠抓包一个个排除太慢,等找到源头业务已经断了一片。华为防火墙的本机防攻击里有一项"攻击溯源":对上送 CPU 的报文按源做采样分析,超过检查阈值的判定为攻击报文,自动通过日志、告警报出攻击源的用户或接口,还能配上惩罚措施直接丢弃攻击源的报文;固定合法的网段放进白名单,不受这套机制牵连。华为官方文档有一套完整的配置举例——配置攻击溯源,本篇按这套示例从防攻击策略一路配到全局应用,命令逐段给出。

本文的组网需求、配置思路与命令步骤,整理自华为官方发布的典型配置案例,参数可直接参考使用。

组网需求

位于不同网段的用户通过DeviceA访问Internet。由于接入的用户数量多,DeviceA经常因为处理大量的ARP报文导致CPU使用率高,影响正确业务。

管理员希望设备能够对上送CPU的ARP报文进行分析,将超过阈值的报文判定为攻击报文,并找出攻击源用户或者源接口,通过日志、告警的方式通知管理员,以便管理员采取一定的安全措施来保护CPU。此外,Net2网段的用户为固定合法用户,需要确保该网段用户的ARP报文能够正常上送CPU。

本例中interface1,interface2,interface3和interface4分别代表GE0/0/1,GE0/0/2,GE0/0/3和GE0/0/4。

配置思路

整套配置分三段:

  • 建一个防攻击策略 test1,在里面把攻击溯源的各项参数定下来——开溯源、定检查阈值、定采样比、定防范的报文类型(ARP)、定溯源模式(源 MAC 加源 IP)、开事件上报、配惩罚措施。
  • 为固定合法的 Net2 网段配 ACL 并挂进攻击溯源白名单,保证它的 ARP 报文正常上送 CPU。
  • 把防攻击策略全局应用,再完成接口加入安全区域和安全策略的基本配置。

操作步骤

第一步,配置防攻击策略。

创建防攻击策略:

<HUAWEI> system-view
[HUAWEI] sysname DeviceA
[DeviceA] cpu-defend policy test1

开启攻击溯源功能:

[DeviceA-cpu-defend-policy-test1] auto-defend enable

配置攻击溯源检查阈值为100pps:

[DeviceA-cpu-defend-policy-test1] auto-defend threshold 100

配置攻击溯源的采样比为7,即每7个报文采样1个报文:

[DeviceA-cpu-defend-policy-test1] auto-defend attack-packet sample 7

配置攻击溯源防范的报文类型为ARP报文:

[DeviceA-cpu-defend-policy-test1] auto-defend protocol arp

配置攻击溯源的溯源模式为基于源MAC地址和源IP地址:

[DeviceA-cpu-defend-policy-test1] auto-defend trace-type source-mac source-ip

开启攻击溯源事件上报功能:

[DeviceA-cpu-defend-policy-test1] auto-defend alarm enable

配置攻击溯源惩罚措施,设备受到攻击时丢弃报文,持续时长为360s。在配置攻击溯源惩罚措施之前,请确保设备受到了非法攻击,避免因误丢弃大量正常协议报文而影响正常业务:

[DeviceA-cpu-defend-policy-test1] auto-defend action deny timeout 360
[DeviceA-cpu-defend-policy-test1] quit

配置攻击溯源白名单:

[DeviceA] acl number 2001
[DeviceA-acl-basic-2001] rule permit source 10.2.2.0 0.0.0.255
[DeviceA-acl-basic-2001] quit
[DeviceA] cpu-defend policy test1
[DeviceA-cpu-defend-policy-test1] auto-defend whitelist 1 acl 2001
[DeviceA-cpu-defend-policy-test1] quit

第二步,应用防攻击策略:

[DeviceA] cpu-defend-policy test1

第三步,将接口加入安全区域并配置安全策略:

[DeviceA] firewall zone trust
[DeviceA-zone-trust] add interface ge 0/0/1
[DeviceA-zone-trust] add interface ge 0/0/2
[DeviceA-zone-trust] add interface ge 0/0/3
[DeviceA-zone-trust] quit
[DeviceA] firewall zone untrust
[DeviceA-zone-untrust] add interface ge 0/0/4
[DeviceA-zone-untrust] quit
[DeviceA] security-policy
[DeviceA-policy-security] rule name sec_policy1
[DeviceA-policy-security-rule-sec_policy1] source-zone trust
[DeviceA-policy-security-rule-sec_policy1] destination-zone untrust
[DeviceA-policy-security-rule-sec_policy1] action permit
[DeviceA-policy-security-rule-sec_policy1] quit
[DeviceA-policy-security] quit

检查配置结果

查看攻击溯源的配置信息:

[DeviceA] display auto-defend configuration cpu-defend policy test1                                                                 
-----------------------------------------------------------------------                                                             
 Name  : test1                                                                                                                      
 Related slot : ***                                                                                                          
 auto-defend                      : enable                                                                                          
 auto-defend threshold            : 100 (pps)                                                                                       
 auto-defend attack-packet sample : 7 (pps)                                                                                         
 auto-defend alarm                : enable                                                                                          
 auto-defend alarm threshold      : 128 (pps)                                                                                       
 auto-defend action               : deny timer: 360 (second)                                                                        
 auto-defend trace-type           : source-mac source-ip                                                                            
 auto-defend protocol             : arp                                                                                             
 auto-defend whitelist 1          : acl number 2001                                                                                 
-----------------------------------------------------------------------     

判读要点:输出里的 auto-defend 各行把策略参数逐项回显——阈值 100pps、采样比 7、惩罚丢弃 360 秒、溯源模式 source-mac source-ip、白名单挂的是 ACL 2001,与配置一一对应就说明策略已经完整生效。

配置脚本

#
sysname DeviceA
#
cpu-defend policy test1                                                                                                             
 auto-defend enable
 auto-defend threshold 100  
 auto-defend attack-packet sample 7 
 auto-defend protocol arp
 auto-defend trace-type source-mac source-ip
 auto-defend alarm enable                                                                                                           
 auto-defend action deny timeout 360                                                                                              
 auto-defend whitelist 1 acl 2001
#
cpu-defend-policy test1
#
acl number 2001
 rule 5 permit source 10.2.2.0 0.0.0.255
# 
firewall zone trust
 set priority 5
 add interface GE0/0/1
 add interface GE0/0/2
 add interface GE0/0/3
firewall zone untrust
 set priority 50
 add interface GE0/0/4
#  
security-policy   
  rule name sec_policy1  
    source-zone trust 
    destination-zone untrust 
    action permit 
# 
return 

脚本结构三块看得很清楚:cpu-defend policy test1 一段是攻击溯源本体,cpu-defend-policy test1 一行把它应用到全局,剩下的 ACL、安全区域和安全策略是让组网跑起来的基础配置。

注意事项

  • 惩罚措施要慎开:auto-defend action deny timeout 360 会让设备在判定受到攻击时丢弃攻击源报文并持续 360 秒,配置前先确认设备确实受到非法攻击,避免误丢大量正常协议报文影响业务。
  • 白名单是保底:固定合法网段(本例 Net2 的 10.2.2.0/24,通过 ACL 2001 匹配)一定要挂进白名单,高用量的合法用户才不会被误判成攻击源。
  • 阈值与采样比按示例给出:检查阈值 100pps、采样比 7(每 7 个报文采 1 个)是本例取值,实际部署结合设备 CPU 承受能力调整。
  • 溯源模式选了双源:trace-type source-mac source-ip 同时按源 MAC 和源 IP 溯源,报出来的攻击源信息更全,也方便区分是单机中招还是整个网段异常。

上线后头两周多看几眼告警和日志,把被误伤的合法业务及时补进白名单,需要有人接着深挖攻击来源时,诚鑫致达科技可以接手继续查。各厂商设备的命令与默认参数存在差异,本文步骤与命令均出自华为官方文档,操作前请核对你的设备型号与软件版本。

源:华为USG防火墙6000F-S官方文档