ARP欺骗和防御手段.docx
- 文档编号:11888022
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:11
- 大小:138.26KB
ARP欺骗和防御手段.docx
《ARP欺骗和防御手段.docx》由会员分享,可在线阅读,更多相关《ARP欺骗和防御手段.docx(11页珍藏版)》请在冰豆网上搜索。
ARP欺骗和防御手段
ARP欺骗与防御手段
神州数码网络公司
1.
ARP欺骗
在与用户的沟通过程中,感觉到用户的网络管理人员最头痛也是频繁出现的问题就是ARP的病毒攻击问题。
在一个没有防御的网络当中暴发的ARP病毒带来的影响是非常严重的,会造成网络丢包、不能访问网关、IP地址冲突等等。
多台设备短时间内发送大量ARP报文还会引起设备的CPU利用率上升,严重时可能会引起核心设备的宕机。
如何解决ARP攻击的问题呢?
首先要从ARP攻击的原理开始分析。
1.1.ARP协议工作原理
在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。
而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。
因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。
TCP/IP协议栈维护着一个ARPcache表,在构造网络数据包时,首先从ARP表中找目标IP对应的MAC地址,如果找不到,就发一个ARPrequest广播包,请求具有该IP地址的主机报告它的MAC地址,当收到目标IP所有者的ARPreply后,更新ARPcache。
ARPcache有老化机制。
1.2.ARP协议的缺陷
ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。
它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARPreply包或arp广播包(包括ARPrequest和ARPreply),都会接受并缓存。
这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。
1.3.ARP协议报文格式
6
6
2
2
2
目地MAC地址
源MAC地址
帧类型
硬件类型
协议类型
1
1
2
6
4
硬件地址长度
协议地址长度
类型
发送端MAC地址
发送端IP地址
6
4
接收端MAC地址
接收端IP地址
报文的前两个字段分别为目地MAC地址和源MAC地址,长度共12个字节。
当报文中,目地MAC地址为全1(FF:
FF:
FF:
FF:
FF:
FF)时候,代表为二层广播报文。
同一个广播域的主机均会收到。
第三个字段是帧类型,长度2个字节。
对于ARP报文,这个字段的值为“0806”。
接下来两个2字节的字段表示硬件地址类型和对应映射的协议类型。
硬件地址类型值为“0001”代表以太网地址。
协议类型值为“0800”代表IP地址。
后跟两个1字节的字段表示硬件地址长度和协议地址长度。
这两个字段具体数值分别为“6”和“4”代表硬件地址长度使用6字节表示和协议地址长度使用4字节表示。
类型字段,长度2个字节。
这个字段的值表示出ARP报文属于那种操作。
ARP请求(值为“01”,ARP应答(值为“02”),RARP请求(值为“03”)和RARP应答(值为“04”)。
最后四个字段为发送端MAC地址、发送端IP地址、接收端MAC地址、接收端IP地址。
(其中,发送端MAC地址与字段2的源MAC地址重复。
)
1.4.
ARP攻击的种类
针对ARP攻击的不同目地,可以把ARP攻击分为网关欺骗、主机欺骗、MAC地址扫描几类。
下面分析一下每种ARP攻击使用的方法和报文格式。
1.4.1.ARP网关欺骗
在ARP的攻击中,网关欺骗是一种比较常见的攻击方法。
通过伪装的ARPRequest报文或Reply报文到修改PC机网关的MAC-IP对照表的目地。
造成PC机不能访问网关,将本应发向网关的数据报文发往被修改的MAC地址。
网关欺骗的报文格式:
主要参数:
DestinationAddress:
00:
0B:
CD:
61:
C1:
26(被欺骗主机的MAC地址)
SourceAddress:
00:
01:
01:
01:
01:
01(网关更改的虚假MAC地址)
Type:
1(ARP的请求报文)
SourcePhysics:
00:
01:
01:
01:
01:
01
SourceIP:
211.68.199.1
DestinationPhysics:
00:
0B:
CD:
61:
C1:
26
DestinationIP:
211.68.99.101
按上面的格式制作的数据包会对MAC地址为00:
0B:
CD:
61:
C1:
26的主机发起网关欺骗,将这台PC机的网关211.68.199.1对应的MAC地址修改为00:
01:
01:
01:
01:
01这个伪装的MAC地址。
可以看到,上面这个网关欺骗的报文为单播ARP请求报文(Reply类同,在此不做详细介绍)。
直接针对目地主机。
对于这样的报文,唯有将它在进入端口的时候丢弃,才能保证网络当中的PC机不会受到这样的攻击。
1.4.2.ARP主机欺骗
ARP主机欺骗的最终目地是修改PC机或交换机设备的MAC表项。
将原本正确的表项修改为错误的MAC地址。
最终导致PC机不能访问网络。
ARP主机欺骗可以使用单播报文实现也可以使用广播报文实现。
使用单播报文:
主要参数:
DestinationAddress:
00:
10:
C6:
DD:
A6:
28(被欺骗主机的MAC地址)
SourceAddress:
00:
01:
01:
01:
01:
01(101更改的虚假MAC地址)
Type:
2(ARP的应答报文)
SourcePhysics:
00:
01:
01:
01:
01:
01
SourceIP:
211.68.199.101
DestinationPhysics:
00:
10:
C6:
DD:
A6:
28
DestinationIP:
211.68.99.103
这个单播报文会导致211.68.199.103这台PC机将本机MAC表中的211.68.199.101对应的MAC地址更改为00:
01:
01:
01:
01:
01这个错误的IP地址。
导致103发往101的数据包发到一个错误的地址。
广播报文:
主要参数:
DestinationAddress:
FF:
FF:
FF:
FF:
FF:
FF(全FF的广播地址)
SourceAddress:
00:
01:
01:
01:
01:
01(广播的虚假MAC地址)
Type:
1(ARP的请求报文)
SourcePhysics:
00:
01:
01:
01:
01:
01
SourceIP:
211.68.199.101
DestinationPhysics:
00:
00:
00:
00:
00:
00
DestinationIP:
211.68.99.103
这个数据包表面上类似于正常的ARP请求报文,目地地址为全F的广播,接收端的MAC地址为全0的未知地址。
意义为IP为101的PC机寻找IP为103的PC机的MAC地址。
但当把报文中的两个源MAC地址修改为一个错误的MAC地址之后。
这种报文就会引起全网PC机及交换机将211.68.199.101这台PC机的MAC地址修改为00:
01:
01:
01:
01:
01这个错误的IP地址。
针对主机欺骗的防护,一方面需要保护交换机的MAC表项。
确保交换机拥有正确的MAC表。
另一方面,针对PC机的MAC表的保护就只能使这种不合法的数据包不进入到交换机中才能完全防御ARP的主机欺骗。
1.4.3.网段扫描
有很多的工具可以实现MAC地址扫描的工作。
MAC扫描的报文格式也非常简单,就是一个IP地址对多个或整个网段的ARP请求报文。
严格的来说,正确的网段扫描本身对网络不会产生不利的影响。
但因为网段扫描时使用的是广播报文,多台PC同时进行大量的扫描的时候会在网络中产生拥塞。
更重要的一点,很多的ARP攻击病毒在发起攻击之前都需要获取到网段内IP和MAC地址的对照关系。
就会利用到网段扫描。
数据包的格式:
主要参数:
DestinationAddress:
FF:
FF:
FF:
FF:
FF:
FF(全F的目地址为二层的广播)
SourceAddress:
00:
10:
C6:
DD:
A6:
28(发起ARP扫描PC的MAC地址)
Type:
1(ARP的请求报文)
SourcePhysics:
00:
10:
C6:
DD:
A6:
28
SourceIP:
211.68.199.201(发起ARP扫描PC的IP地址)
DestinationPhysics:
00:
00:
00:
00:
00:
00(需寻找的IP对应的MAC地址未知)
DestinationIP:
211.68.99.2(需寻找的IP地址)
将这个报文复制多份,并将DestinationIP的地址改为多个不重复的IP地址即可对多个IP或网段进行扫描。
另外,在ARP请求报文中含有的两个源MAC地址修改为错误的MAC地址后,这个报文就变成了主机欺骗的报文。
针对网段扫描的防护首先着眼于单个端口单位时间内进入的ARP报文数量入手。
PC机在正常的没有任何操作的时候是不会对网络当中发送大量的ARP请求的。
当端口进入的ARP包超过一个限值时判断受到了网段扫描的攻击。
就对端口进行关闭,防止大量数据包进入。
2.
DCN对ARP攻击防御的几种手段
ARP攻击的几种攻击方式在前面已经进行过分析。
结合ARP攻击的不同形式,我们有多种方法来进行防御。
在下面的命令和配置取自3950-52CT和3950-26S,具体其他型号设备在配置命令或下面提到的几种技术支持能力的方面,请及时查看具体型号设备的用户手册和版本更新通知。
2.1.网关欺骗防御ARP-GUARD
针对网关欺骗采用的报文中必需要含有网关的IP条目,我们可以使用Arp-Guard来保护网关不会被修改。
应用的时候,在接口模式下“Arp-guardip网关IP地址”。
接口上启用后,这个接口对于进入的数据包中携带有网关IP地址的ARP报文将会丢弃而不进行转发。
对于上行端口,绝不要设置Arp-Guard以免出现网络中断。
配置命令:
Switch>enable
Switch#configterminal
Switch(config)#interfaceEthernet0/0/1
Switch(Config-Ethernet0/0/1)#arp-guardip211.68.199.1
2.2.主机欺骗防御
主机欺骗的防御针对主机欺骗的两个方向来考虑。
一、欺骗交换机表项
1、采用静态MAC与IP绑定的作法,实现手工绑定。
2、结合DHCP做DhcpSnooping的BindingArp方式,实现自动静态绑定。
二、欺骗主机及交换机表项
3、结合DHCP做DhcpSnooping的端口user-control方式,控制端口进入的数据包的源IP和MAC地址与DhcpSnooping下发表一致的报文通过。
4、MACACL,使端口接收数据包的时候检查数据包的源地址与设定的地址相同。
2.2.1.MAC-IP静态绑定
switch>enable
switch#configterminal
switch(Config)#interfacevlan1
switch(Config-If-Vlan1)#arp211.68.199.10100-0B-CD-61-C1-26
配置完成后,通过showarp来检查ARP表项是否已修改为静态表项。
2.2.2.DHCPSnooping
DHCPSnooping的BindingArp功能和手工绑定有相似的地方。
都是将动态的ARP表项转为静态的ARP表项。
不同的是手工绑定需要手工去配置,工作量较大并且比较繁琐,DHCPSnooping在有DHCP的环境下,绑定是自动完成的。
另外,DHCPSnooping在端口下配置ipdhcpsnoopingbindinguser-control。
配置之后非信任端口只转发源MAC和IP与下发表项条目相同的数据包。
可以阻止网关及主机ARP欺骗。
在没有DHCP服务器的时候,可以用DHCPSnooping手工绑定方式实现。
I.DhcpSnooping的BindingArp方式
switch>enable
switch#configterminal
switch(Config)#ipdhcpsnoopingenable
switch(Config)#ipdhcpsnoopingbindingenable
switch(Config)#ipdhcpsnoopingbindingarp
switch(Config)#interfaceethernet0/0/1
switch(Config-Ethernet0/0/1)#ipdhcpsnoopingtrust(DHCP服务器连接端口需设置Trust)
switch(Config-Ethernet0/0/2)#exit
II.DhcpSnooping的端口User-control方式
switch>enable
switch#configterminal
switch(Config)#ipdhcpsnoopingenable
switch(Config)#ipdhcpsnoopingbindingenable
switch(Config)#interfaceethernet0/0/1
switch(Config-Ethernet0/0/1)#ipdhcpsnoopingtrust(DHCP服务器连接端口需设置Trust)
switch(Config-Ethernet0/0/1)#interfaceethernet0/0/2
switch(Config-Ethernet0/0/2)#ipdhcpsnoopingbindinguser-control
switch(Config-Ethernet0/0/2)#exit
III.DhcpSnooping的手工绑定方式
switch>enable
switch#configterminal
switch(Config)#ipdhcpsnoopingenable
switch(Config)#ipdhcpsnoopingbindingenable
switch(Config)#ipdhcpsnoopingbindinguser00-0B-CD-61-C1-28address211.68.199.104255.255.255.0vlan1interfaceethernet0/0/15
显示示例:
switch#showipdhcpsnoopinginterfaceethernet0/0/15
interfaceEthernet0/0/15userconfig:
trustattribute:
untrust
action:
none
bindingdot1x:
disabled
bindinguser:
disabled
recoveryinterval:
0(s)
Alarminfo:
0
Bindinginfo:
1
--------------------------------------------------------
DHCPSnoopingBindingbuiltatMONJAN0101:
37:
012001
TimeStamp:
978313021
RefCount:
1
Vlan:
1,Port:
Ethernet0/0/15
ClientMAC:
000B.CD61.C128
ClientIP:
211.68.199.104255.255.255.0
Gateway:
0.0.0.0
Lease:
4294967295(s)
Flag:
2
ExpiredBinding:
0
RequestBinding:
0
2.2.3.MACACL(目前3950-X系列交换机不支持该方式)
配置MACACL
Switch(config)#access-list1101denyanyanyuntagged-eth212208062020002284D344C765
命令解释
1101――编号为1100-1199的列表为MAC-IPACL。
也叫ACL-X
Untagged-eth2――未打标的以太网帧
122――数据包的第12个字节开始,向后偏移2个字节。
(也就是帧类型字段)
0806――帧类型字段的值。
代表ARP。
202――ARP数据包中的“类型”字段。
0002――类型字段的值,代表ARP的应答报文。
284――发送端的IP地址字段。
D344C765――211.68.199.101的16进制地址表示。
应用ACL
Switch(config)#firewallenable
Switch(config)#interfacee0/0/15
Switch(config-ethernet0/0/15)#macaccess-group1101intraffic-statistic
配置应用后,可以使ACL去匹配数据包中特定字段的数值。
在交换机支持DHCPSnooping的时候建议使用DHCPSnooping,MAC-ACL方式还需要计算IP地址的十六进制的表示方法。
2.3.
防网段扫描Anti-ArpScan
switch(Config)#anti-arpscanenable
//使能Anti-arpscan
switch(Config)#anti-arpscanport-basedthreshold10
//设置每个端口每秒的ARP报文上限
switch(Config)#anti-arpscanip-basedthreshold10
//设置每个IP每秒的ARP报文上限
switch(Config)#anti-arpscanrecoveryenable
//开启防网段扫描自动恢复功能
switch(Config)#anti-arpscanrecoverytime90
//设置自动恢复的时间
switch(Config)#interfaceethernet0/0/1
switch(Config-Ethernet0/0/1)#anti-arpscantrustport
//设置端口为信任端口,另有一个为Supertrust。
区别是trust端口不受端口门限值的限定,而Supertrust则端口和IP限制均无效。
switch(Config-Ethernet0/0/1)#
switch#
switch#
switch#showanti-arpscanprohibitedport
Noprohibitedport.
//按端口方式显示被Down掉的端口
switch#showanti-arpscanprohibitedip
NoprohibitedIP.
//按IP方式显示被Down掉的端口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARP 欺骗 防御 手段
![提示](https://static.bdocx.com/images/bang_tan.gif)