鸿鹄论坛

 找回密码
 论坛注册

QQ登录

只需一步,快速开始

查看: 971|回复: 55

[分享] 交换机攻防见招拆招(上)

[复制链接]
 成长值: 29025
发表于 2017-8-25 09:37:17 | 显示全部楼层 |阅读模式
1 S系列交换机攻击处理
1.1 如何确定攻击类型
当设备遭受攻击时,通常伴随着如下现象:
l   用户无法获取ARP。
l   用户上线成功率较低。
l  用户无法访问网络。
当大量用户或固定某个端口下的所有用户出现上述现象时,可以先通过如下定位手段分析是否为攻击问题。
                           步骤 1     执行命令display cpu-usage查看设备CPU占用率的统计信息,CPU Usage表示的是CPU占用率,TaskName表示的是设备当前正在运行的任务名称。

如果CPU利用率持续较高,并且bcmRXFTSSOCK或者VPR任务过高(通常协议报文攻击会导致这些任务过高),则较大可能是收到的报文过多,接下来需要执行步骤2继续判断设备收到的报文类型。
一般情况下,交换机长时间运行时CPU占用率不超过80%,短时间内CPU占用率不超过95%,可认为交换机状态是正常的。
                           步骤 2     执行命令display cpu-defend statistics all查看相关协议是否有CPCAR丢包、丢包是否多,并确认现网设备是否放大相关协议的CPCAR值。如果CPCAR存在大量丢包,就基本可以确认现网存在攻击,根据丢包的协议,采用相关防攻击措施。具体有哪些常见的丢包协议,请参见表1-1。

表1-1 丢包协议以及相应的防攻击部署手段
Packet Type
可以参考的攻击类型

arp-reply、arp-request
1.2.1 ARP攻击、1.2.8 TC攻击

arp-miss
1.2.2 ARP-Miss攻击

dhcp-client、dhcp-server、dhcpv6-reply、dhcpv6-request
1.2.3 DHCP攻击

icmp
1.2.4 ICMP攻击

ttl-expired
1.2.5 TTL攻击

tcp
1.2.6 TCP攻击

ospf
1.2.7 OSPF攻击

ssh、telnet
1.2.9 SSH/Telnet攻击

vrrp
1.2.10 VRRP攻击

igmp
1.2.11 IGMP攻击

pim
1.2.12 PIM攻击

V200R003版本以及之后版本支持端口防攻击功能,对于V200R003版本以及之后版本,有可能存在这样的情况:即使Drop计数不再增长,也是有可能存在攻击的。所以对于V200R003版本以及之后版本,还需要继续执行步骤3进一步确认丢包协议。
                           步骤 3     可以通过如下两种方式确认。
方法一:在诊断视图中执行命令display auto-port-defend statistics [ slot slot-id ]查看是否有对应协议的丢包。具体有哪些常见的丢包协议,请参见表1-2。

表1-2 丢包协议以及相应的防攻击部署手段
Protocol
可以参考的攻击类型

arp-reply、arp-request
1.2.1 ARP攻击、1.3.8 TC攻击

arp-miss
1.2.2 ARP-Miss攻击

dhcp-client、dhcp-server、dhcpv6-reply、dhcpv6-request
1.2.3 DHCP攻击

icmp
1.2.4 ICMP攻击

ttl-expired
1.2.5 TTL攻击

tcp
1.2.6 TCP攻击

ospf
1.2.7 OSPF攻击

ssh、telnet
1.2.9 SSH/Telnet攻击

vrrp
1.2.10 VRRP攻击

igmp
1.2.11 IGMP攻击

pim
1.2.12 PIM攻击

方法二:对于历史上曾经触发过端口防攻击也可以通过日志来确定。日志格式如下,其中AttackProtocol表示的是攻击报文的协议类型。
SECE/4/PORT_ATTACK_OCCUR:Auto port-defend started.(SourceAttackInterface=[STRING], AttackProtocol=[STRING])
SECE/6/PORT_ATTACK_END:Auto port-defend stop.(SourceAttackInterface=[STRING], AttackProtocol=[STRING])
----结束
1.2 根据攻击类型部署防攻击手段1.2.1 ARP攻击1.2.1.1 ARP泛洪攻击
攻击简介
如下图所示,局域网中用户通过SwitchA和SwitchB接入连接到Gateway访问Internet。当网络中出现过多的ARP报文时,会导致网关设备CPU负载加重,影响设备正常处理用户的其它业务。另一方面,网络中过多的ARP报文会占用大量的网络带宽,引起网络堵塞,从而影响整个网络通信的正常运行。
现象描述
l   网络设备CPU占有率较高,正常用户不能学习ARP甚至无法上网。
l   Ping不通。
l   网络设备不能管理。
定位思路
定位手段
命令行
适用版本形态

查看ARP临时表项
display arp
V100R006C05版本以及之后版本

查看arp-request的CPCAR计数
display cpu-defend statistics packet-type arp-request all
V100R006C05版本以及之后版本

查看攻击溯源结果
display auto-defend attack-source [ slot slot-id ]
V200R003版本以及之后版本

                           步骤 1     执行命令display arp查看受影响用户的ARP是否学习不到。
如果MAC ADDRESS字段显示为Incomplete,表示有ARP学习不到,有可能设备遭受ARP攻击。

                           步骤 2     由于有未学习到的ARP表项,执行命令display cpu-defend statistics packet-type arp-request all查看上送CPU的ARP-Request报文统计信息,判断设备是否遭受攻击,下述回显发现4号单板上存在大量ARP-Request报文丢包。
         
           
该命令可以查看多次,比如1秒执行一次,查看多次执行的结果。如上显示,如果Drop(Packets)计数增加很快,比如1秒钟Drop上百个,这说明设备正在遭受ARP攻击,上送的ARP报文已经超过了设备配置的CPCAR范围,攻击ARP报文可能已经挤掉了正常ARP报文,则部分ARP可能学习不到。
                           步骤 3     确认攻击源,通过攻击溯源功能识别攻击源。
首先在系统视图下配置防攻击策略:
[HUAWEI] cpu-defend policy policy1
[HUAWEI-cpu-defend-policy-policy1] auto-defend enable
[HUAWEI-cpu-defend-policy-policy1] auto-defend attack-packet sample 5
[HUAWEI-cpu-defend-policy-policy1] auto-defend threshold 30    
[HUAWEI-cpu-defend-policy-policy1] undo auto-defend trace-type source-portvlan   
[HUAWEI-cpu-defend-policy-policy1] undo auto-defend protocol dhcp icmp igmp tcp telnet ttl-expired udp
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
最后通过命令display auto-defend attack-source slot 4查看攻击源的MAC地址。

识别的MAC中可能包含网关的MAC地址或互连网络设备的MAC,需要注意剔除。
----结束
问题根因
1.       由于终端中毒频繁发送大量ARP报文。
2.       下挂网络成环产生大量的ARP报文。
处理步骤
                           步骤 1     在接口下配置ARP表项限制。
设备支持接口下的ARP表项限制,如果接口已经学习到的ARP表项数目超过限制值,系统不再学习新的ARP表项,但不会清除已经学习到的ARP表项,会提示用户删除超出的ARP表项。
配置命令如下:
<HUAWEI> system-view
[HUAWEI] interface gigabitethernet 1/0/1
[HUAWEI-GigabitEthernet1/0/1] arp-limit vlan 10 maximum 20
                           步骤 2     配置针对源IP地址的ARP报文速率抑制的功能。
在一段时间内,如果设备收到某一源IP地址的ARP报文数目超过设定阈值,则不处理超出阈值部分的ARP请求报文。
<HUAWEI> system-view
[HUAWEI] arp speed-limit source-ip 10.0.0.1 maximum 50
缺省情况下,对ARP报文进行时间戳抑制的抑制速率为5pps,即每秒处理5个ARP报文。
                           步骤 3     根据排查出的攻击源MAC配置黑名单过滤掉攻击源发出的ARP报文。
[HUAWEI] acl 4444
[HUAWEI-acl-L2-4444] rule permit l2-protocol arp source-mac 0-0-1 vlan-id 3
[HUAWEI-acl-L2-4444] quit
[HUAWEI] cpu-defend policy policy1
[HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 4444
[HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
                           步骤 4     如果上述配置无法解决,比如源MAC变化或源IP变化的ARP攻击源来自某台接入设备下挂用户,在接入侧交换机上配置流策略限速,不让该接入侧设备下的用户影响整个网络。
[HUAWEI] acl 4445
[HUAWEI-acl-L2-4445] rule permit l2-protocol arp
[HUAWEI-acl-L2-4445] quit
[HUAWEI] traffic classifier policy1
[HUAWEI-classifier-policy1] if-match acl 4445
[HUAWEI-classifier-policy1] quit
[HUAWEI] traffic behavior policy1
[HUAWEI-behavior-policy1] car cir 32
[HUAWEI] traffic policy policy1
[HUAWEI-trafficpolicy-policy1] classifier policy1 behavior policy1
[HUAWEI] interface GigabitEthernet 1/0/1
[HUAWEI-GigabitEthernet1/0/1] traffic-policy policy1 inbound
----结束
1.2.1.2 ARP欺骗攻击
攻击简介
如图1-2所示,局域网中UserA、UserB、UserC等用户通过Switch接入连接到Gateway访问Internet。
图1-1 ARP欺骗攻击组网

正常情况下,UserA、UserB、UserC上线之后,通过相互之间交互ARP报文,UserA、UserB、UserC和Gateway上都会创建相应的ARP表项。此时,如果有攻击者Attacker通过在广播域内发送伪造的ARP报文,篡改Gateway或者UserA、UserB、UserC上的ARP表项,Attacker可以轻而易举地窃取UserA、UserB、UserC的信息或者阻碍UserA、UserB、UserC正常访问网络。
现象描述
局域网内用户时通时断,无法正常上网。网络设备会经常脱管,网关设备会打印大量地址冲突的告警。
定位思路
定位手段
命令行
适用版本形态

查看日志信息
display logbuffer
V100R006C05版本以及之后版本

l   交换机做网关,如果攻击源发送假冒网关的ARP报文经过网关交换机时,报文会上送交换机的CPU处理,交换机在检测到网关冲突的同时记录日志。
执行命令display logbuffer查看日志信息。日志信息如下所示,其中MacAddress代表攻击者的MAC地址。
ARP/4/ARP_DUPLICATE_IPADDR:Received an ARP packet with a duplicate IP address from the interface. (IpAddress=[IPADDR], InterfaceName=[STRING], MacAddress=[STRING])
根据日志信息记录的攻击者的MAC地址查找MAC地址表,从而获取到攻击源所在的端口,通过网络进一步排查,进一步定位出攻击源,查看是否中毒所致。
l   交换机做网关,如果攻击源发送假冒网关的ARP报文不经过网关交换机,直接在交换机的下游转发到用户,则需要在下层网络排查。例如,可以在终端上使用报文解析工具(比如wireshark)解析网关回应的ARP报文,如果解析出来的MAC地址不是网关的MAC地址,则代表终端遭遇攻击,其中解析出来的MAC地址即为攻击者MAC地址。
问题根因
1.       终端中毒。
2.       攻击者将主机地址设为网关地址。
处理步骤
方法
优点
缺点

配置黑名单
基于黑名单丢弃上送CPU的报文
需先查到攻击源

配置黑洞MAC
丢弃该攻击源发的所有报文,包括转发的报文
需先查到攻击源

配置防网关冲突攻击功能
收到具有相同源MAC地址的报文直接丢弃
需本设备做网关

l   方法一:可以在用户允许的情况下,直接在交换机上配置黑名单过滤攻击源的源MAC地址。
[HUAWEI] acl 4444
[HUAWEI-acl-L2-4444] rule permit l2-protocol arp source-mac 1-1-1
[HUAWEI-acl-L2-4444] quit
[HUAWEI] cpu-defend policy policy1
[HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 4444
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
l   方法二:更严厉的惩罚措施可以将攻击者的MAC配置成黑洞MAC,彻底不让该攻击者上网。
[HUAWEI] mac-address blackhole 1-1-1 vlan 3
l   方法三:可以在交换机上配置防网关冲突功能(该功能要求交换机必须做网关),ARP网关冲突防攻击功能使能后,系统生成ARP防攻击表项,在后续一段时间内对收到具有相同源MAC地址的报文直接丢弃,这样可以防止与网关地址冲突的ARP报文在VLAN内广播。
[HUAWEI] arp anti-attack gateway-duplicate enable
1.2.2 ARP-Miss攻击1.2.2.1 网段扫描攻击
攻击简介
当交换机需要转发三层报文时,如果目的地址是和其直连的,且在设备上没有目的地址的ARP表项,就会触发一个ARP Miss消息,由设备发送ARP请求到目的地址,以便学习ARP,当学习到ARP后,报文便可以直接转发到目的地址。
大量的网段扫描报文会产生大量的ARP Miss消息,导致交换机的资源浪费在处理ARP Miss消息上,影响交换机对其他业务的处理,形成扫描攻击。
现象描述
当设备遭受ARP Miss消息攻击时,出现设备CPU占有率较高,有大量的临时ARP表项,CPCAR存在ARP Miss丢包,Ping有时延或Ping不通的现象,业务方面会发生用户掉线、用户上网慢、设备脱管、甚至业务中断等现象。
定位思路
定位手段
命令行
适用版本形态

查看CPU-Defend丢包计数
display cpu-defend statistics packet-type arp-miss { slot slot-id }
V100R006C05版本以及之后版本

查看ARP临时表项
display arp
V100R006C05版本以及之后版本

1.       清除上送CPU的ARP Miss报文统计计数。
<HUAWEI> reset cpu-defend statistics packet-type arp-miss all
2.       等待1分钟后,查看这段时间内上送CPU的ARP Miss数量。
  
              查看通过和丢弃的报文数量,如果丢弃的消息数量大于通过的,则可认为是ARP Miss攻击。
3.       查看设备上是否有大量的ARP临时表项,如果存在大量(大概15个或者15个以上)的MAC ADDRESS字段为Incomplete的临时表项,也可以认为是ARP Miss攻击。
问题根因
设备收到大量的ARP Miss消息常见的原因有两种:
1.       存在网段扫描攻击,可以通过获取报文或者通过display arp anti-attack arpmiss-record-info命令来查看攻击源。
2.       设备收到TC消息,导致ARP表项老化,设备出现大量的ARP Miss消息。对于TC消息导致的ARP Miss攻击,防范手段参考1.3.8 TC攻击。
处理步骤
方法
优点
缺点

降低ARP Miss消息的CPCAR值
可以快速降低报文上送
可能正常的ARP Miss消息被误丢弃。

设置ARP假表老化时间
针对具体目的地址进行抑制,在老化时间内不触发ARP Miss消息
要选择合适的老化时间。

配置ARP Miss源抑制
针对具体源地址进行抑制,在block时间内不上送ARP Miss消息
需要配置白名单,防止网络侧的设备被惩罚。

配置黑名单丢弃指定攻击源
可以基于全局、单板应用,丢弃攻击报文
1.    黑名单无法有效降低CPU占用率。
2.    攻击消除后也无法访问设备。

l   可以通过调整ARP Miss的CPCAR值来缓解CPU过高问题。
<HUAWEI> system-view
[HUAWEI] cpu-defend policy policy1
[HUAWEI-cpu-defend-policy-policy1] car packet-type arp-miss cir 64
[HUAWEI-cpu-defend-policy-policy1] quit
[HUAWEI] cpu-defend-policy policy1 global
此方法只能缓解CPU过高问题,但无法解决用户上线慢等问题。
l   可以通过延长ARP假表老化时间来缓解CPU过高问题。当IP报文触发ARP Miss后,交换机会发送ARP请求进行探测,同时生成临时的ARP表项,将后续发送到此IP的数据报文直接丢弃,以免造成对CPU的冲击。当交换机收到ARP回应后,会将此临时的ARP表项修正,如果在规定的时间内未收到ARP回应,则将该临时表项删除,后续的IP报文即可继续触发上述ARP Miss流程。
<HUAWEI> system-view
[HUAWEI] interface Vlanif 500   
[HUAWEI-Vlanif500] arp-fake expire-time 30  //默认时间为30s
设置过大的假表老化时间,可能会导致ARP学习不实时,进而导致数据流量丢失。
l   配置基于源IP的ARP Miss限速,系统会自动识别超过速率的源IP且会自动下发ACL进行惩罚,默认情况下,所有IP地址的ARP Miss源抑制速率为30pps,默认惩罚时间为5秒。建议对网络侧的地址进行放通,防止被惩罚。
<HUAWEI> system-view
[HUAWEI] arp-miss speed-limit source-ip maximum 10  //一个源IP最多产生arp-miss速率为10pps,缺省为30pps
[HUAWEI] arp-miss speed-limit source-ip 1.1.1.1 maximum 200  //对上行的网络侧地址放行,防止误惩罚
可以通过命令display arp anti-attack arpmiss-record-info查看攻击源。

此命令会自动下发基于源IP的ARP Miss惩罚ACL,若不再需要其上送控制平面,则可以通过cpu-defend policy中配置黑名单功能彻底终结该源的攻击。
1.2.3 DHCP攻击1.2.3.1 DHCP Server仿冒攻击
攻击简介
由于DHCP Server和DHCP Client之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。如果该DHCP服务器为用户分配错误的IP地址和其他网络参数,将会对网络造成非常大的危害。
如图1-3所示,DHCP Discover报文是以广播形式发送,无论是合法的DHCP Server,还是非法的DHCP Server都可以接收到DHCP Client发送的DHCP Discover报文。
图1-2 DHCP Client发送DHCP Discover报文示意图

如果此时DHCP Server仿冒者回应给DHCP Client仿冒信息,如错误的网关地址、错误的DNS(Domain Name System)服务器、错误的IP等信息,如图1-4所示。DHCP Client将无法获取正确的IP地址和相关信息,导致合法客户无法正常访问网络或信息安全受到严重威胁。
图1-3 DHCP Server仿冒者攻击示意图

现象描述
DHCP Client无法获取到正确的IP地址,用户无法正常访问网络。
定位思路
一般在业务部署的时候,防DHCP Server仿冒攻击就应该考虑。很少等到问题发生了才部署防DHCP Server仿冒攻击。如果出现该类问题,一般可以查看客户端DHCP相关信息,来确定问题原因。
问题根因
DHCP申请IP地址的交互流程中,客户端发送的是广播报文。如图1-4所示,仿冒的DHCP服务器可以截获DHCP Client发送的请求报文,为DHCP Client分配地址。
处理步骤
方法
优点
缺点

配置DHCP Snooping
常用方法,配置简单
报文上送CPU,可能导致CPU利用率变高

配置流策略
报文不用上送CPU处理
配置复杂,需要ACL资源支持

方法一:通过DHCP Snooping来控制DHCP请求跟应答报文的交互,防止仿冒的DHCP服务器为DHCP Client分配IP地址以及其他配置信息。
l   全局使能DHCP Snooping业务
<HUAWEI> system-view
[HUAWEI] dhcp enable
[HUAWEI] dhcp snooping enable
l   用户侧端口配置DHCP Snooping功能
[HUAWEI] interface GigabitEthernet 8/0/1   
[HUAWEI-GigabitEthernet8/0/1] dhcp snooping enable
l   连接DHCP服务器的端口配置成信任端口
[HUAWEI] interface GigabitEthernet 8/0/10
[HUAWEI-GigabitEthernet8/0/10] dhcp snooping trusted
方法二:DHCP Snooping是通过控制DHCP报文的转发来防止DHCP Server仿冒攻击。我们可以通过流策略达到同样的效果。只允许DHCP请求报文向信任口转发,只允许DHCP回应报文从信任口收到并转发。
1.       配置ACL匹配DHCP回应报文
[HUAWEI] acl 3001
[HUAWEI-acl-adv-3001] rule permit udp destination-port eq bootpc
配置两个流策略,一个丢弃DHCP回应报文,一个允许DHCP回应报文转发,将丢弃的流策略应用到VLAN,将允许转发的流策略应用到连接DHCP Server方向的端口,利用流策略在端口应用的优先级高于在VLAN中应用,来实现只接收