防火墙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官方文档