网络安全-Arp攻击相关

1 Arp协议

    Arp: 地址解析协议,用于IP地址到以太网MAC地址的解析。

1.1 同网段报文交互过程

     假设本机PC1 IP为192.168.1.100,网关地址为192.168.1.1,对方电脑PC2为192.168.1.200,PC1使用Ping命令ping 192.168.1.200流程如下:
     1 命令行行上键入ping 192.168.1.200。进入步骤2
     2 系统会去判断是否为相同网段,如果是本网段,去查找arp缓存表,找到192.168.1.200的mac地址,进入步骤6;查找失败进入步骤3。
     3 PC1发送一个arp request广播报文,target ip为192.168.1.200,该Arp报文会在vlan内广播,同一vlan内的主机都能收到。
     4 PC2收到arp request报文以后,发现target ip为192.168.1.200,和本机一致,则PC2回复Arp Reply单播报文给PC1,并将PC1的ARP信息加入到arp缓存表中。Arp Reply为单播报文,通告了PC2的Mac地址和IP地址。
     5 PC1收到arp reply报文以后,将arp信息加入到arp缓存表中
     6 PC1 构造ICMP Echo报文,目的Mac地址为PC2的Mac,目的IP为PC2的IP;源Mac为PC1的Mac,源IP为PC1的IP。PC1将ICMP报文从网卡发送。
     7 ICMP报文是单播报文,经过交换机转发至PC2,PC2收到以后,由操作系统处理,向PC1回复一个ICMP Reply报文。ICMP的目的IP为192.168.1.100
     8 PC2去查找ARP缓存,查找192.168.1.100对应的MAC地址。如果找到,填充目的MAC地址,从网卡发送ICMP报文;否则需要通过类似步骤3到步骤5的交互过程获取P1的Mac地址,再从网卡发送报文。
     9 PC1收到从PC2发送来的ICMP Reply报文

在这里插入图片描述
     注意
     1 同网段的PC间通信,没有和网关之间有通信,这也说明,网关是网段的出口,跨网段通信时会用到网关
     2 Arp报文只会在二层转发,也就是说只会在同一vlan内转发,不会跨vlan或者跨网段转发。就这个特点来说,ARP报文毫无疑问是二层报文。
     3 中间连接的设备可以是二层交换机或者L3交换机的同一VLAN的两个端口

1.2 跨网段报文交互过程

     假设本机PC1 IP为192.168.1.100,网关地址为192.168.1.1,对方电脑PC2为192.168.7.100,PC1使用Ping命令ping 192.168.7.200流程如下:
     1 命令行行上键入ping 192.168.7.100。进入步骤2
     2 系统会去判断是否为相同网段,如果是本网段,去查找arp缓存表,走1.1的流程 ;如果不是本网段,将会把ICMP报文发送给网关。即将发送的CMP报文的目的IP为192.168.7.100,目的Mac为网关Mac。
     3 为了将ICMP报文发送至网关,需要去查找arp缓存表,找到网关192.168.1.1的对应的mac地址,找到192.168.1.1的对应的mac地址,加入步骤7;查找失败进入步骤4.

     4 PC1发送一个arp request广播报文,target ip为192.168.1.1(网关地址),该Arp报文会在vlan内广播,同一vlan内的主机都能收到,当然网关也会收到。
     5 网关收到arp request报文以后,发现target ip为192.168.1.1,和本机一致,则网关回复Arp Reply单播报文给PC1,并将PC1的ARP信息加入到arp缓存表中。Arp Reply为单播报文,通告了网关的Mac地址和IP地址。
     6 PC1收到arp reply报文以后,将arp信息加入到arp缓存表中
     7 PC1 构造ICMP Echo报文,目的Mac地址为网关的Mac,目的IP为PC2的IP;源Mac为PC1的Mac,源IP为PC1的IP。PC1将ICMP报文从网卡发送至网关
     8 网关收到ICMP报文以后,发现目的网段为192.168.7.x,属于直连的网段,就会查找arp表,查询192.168.7.100对应的mac地址,如果找到,走步骤12。如果查找失败,走步骤9
     9 网关发送一个arp request广播报文,target ip为192.168.7.100,该Arp报文会在vlan内广播,同一vlan内的主机都能收到,当然PC2也会收到。
     10 PC2收到arp request报文以后,发现target ip为192.168.7.100,和本机一致,则PC2回复Arp Reply单播报文给网关192.168.7.1,并将网关的ARP信息加入到arp缓存表中。Arp Reply为单播报文,通告了PC2的Mac地址和IP地址。
     11 网关192.168.7.1收到arp reply报文以后,将arp信息加入到arp缓存表中。
     12 将报文的目的Mac改为PC2的mac地址,源Mac地址改为交换机的Mac地址,发送给PC2。

在这里插入图片描述
     注意
     1 中间连接的设备可以是路由器,每个端口接不同的网段;可以是L3交换机的,端口使用不同的VLAN,接不同的网段。
     在步骤8种,如果目的网段不是直连的,意味着需要转发至其它的路由器或L3交换机,而它们之间建立的转发表成为路由表,路由表是根据路由协议建立,如RIP、OSPF、BGP等路由协议。

2 Arp欺骗

    ARP欺骗:攻击者伪造网关的Arp Reply报文,回复给Arp请求者
    被欺骗者,将报文发送到虚假的Mac地址。攻击者可以截获这些报文。
     从第1章节的内容来看,Arp协议用于通告Mac地址。当有欺骗者冒充网关回复Arp Reply时,本应发往网关的报文发送给欺骗者;当有欺骗者冒充PC1回复Arp Reply时,本应发往PC1的报文发送给欺骗者

2.1 Arp本地代理

    某种实际的应用环境中,为了防止ARP的欺骗,要求汇聚层的交换机实现local arp proxy功能,限制ARP报文在同一vlan内的转发,从而引导数据流量通过交换机进行L3转发。
    Arp本地代理的目的是让可以走二层的流量通过三层转发,通信双方在同一个Vlan内,但是通信的目的mac地址都为交换的vlan mac。

在这里插入图片描述
    例如上图,PC1要向PC2发送一个IP报文,整个的流程大致如下(省略了一些非ARP的细节):
    

  1. 由于PC1没有PC2的ARP,因此PC发送ARP REQUEST并广播出去。
  2. 交换机硬件收到ARP报文,依据新的ARP处理规则,芯片不会硬件转发该报文,只是把ARP REQUEST送CPU。
  3. 在启动local arp proxy的情况下,交换机向PC1发送arp reply报文(填充自己的mac地址)。
  4. PC1收到该arp reply之后,创建ARP,发送ip报文,封装的以太网头的目的MAC为交换机的MAC。
  5. 当交换机收到该ip报文之后,交换机查询路由表(创建路由缓存),并下发硬件表项。(第一个IP报文以目的不可达的方式送上CPU,触发交换机去学习PC2的ARP表项并建立硬件表项)
  6. 当交换机有PC2的ARP的情况下,直接封装以太网头部并发送报文(目的MAC为PC2)。
  7. 如果交换机没有PC2的ARP,那么会请求PC2的ARP,然后发送ip报文。

    该功能通常需要和其他的安全功能配合使用,例如在汇聚交换机上配置local arp proxy,而在下连的二层交换机上配置端口隔离功能,这样将会引导所有的ip流量通过汇聚交换机上进行三层转发,而由于端口隔离,ARP报文不会在vlan内转发,其他PC也不会收到。

2.2 Arp Guard

    ARP协议的设计存在严重的安全漏洞,任何网络设备都可以发送ARP报文通告IP地址和MAC地址的映射关系。这就为ARP欺骗提供了可乘之机,攻击者发送ARP REQUEST报文或者ARP REPLY报文通告错误的IP地址和MAC地址映射关系,导致网络通讯故障。
    ARP欺骗的危害主要表项为两种形式:
    1、PC4发送ARP报文通告PC2的IP地址映射为自己的MAC地址,将导致本应该发送给PC2的IP报文全部发送到了PC4,这样PC4就可以监听、截获PC2的报文;
    2、PC4发送ARP报文通告PC2的IP地址映射为非法的MAC地址,将导致PC2无法接收到本应该发送给自己的报文。特别是如果攻击者假冒网关进行ARP欺骗,将导致整个网络瘫痪。

在这里插入图片描述
    我们利用交换机的过滤表项保护重要网络设备的ARP表项不能被其它设备假冒。基本原理就是利用交换机的过滤表项,检测从端口输入的所有ARP报文,如果ARP报文的源IP地址是受到保护的IP地址,就直接丢弃报文,不再转发。
    ARP GUARD功能常用于保护网关不被攻击,如果要保护网络内的所有接入PC不受ARP欺骗攻击,需要在端口配置大量受保护的ARP GUARD地址,这将占用大量芯片FFP表项资源,可能会因此影响到其它应用功能,并不适合。

3 ARP扫描与防扫描

    ARP扫描是一种常见的网络攻击方式。为了探测网段内的所有活动主机,攻击源将会产生大量的ARP报文在网段内广播,这些广播报文极大的消耗了网络的带宽资源;攻击源甚至有可能通过伪造的ARP报文而在网络内实施大流量攻击,使网络带宽消耗殆尽而瘫痪。而且ARP扫描通常是其他更加严重的攻击方式的前奏,如病毒自动感染,或者继而进行端口扫描、漏洞扫描以实施如信息窃取、畸形报文攻击,拒绝服务攻击等。
    由于ARP扫描给网络的安全和稳定带来了极大的威胁,所以防ARP扫描功能将具有重大意义。交换机防ARP扫描的整体思路是若发现网段内存在具有ARP扫描特征的主机或端口,将切断攻击源头,保障网络的安全。
    有两种方式来防ARP扫描:基于端口和基于IP。基于端口的ARP扫描会计算一段时间内从某个端口接收到的ARP报文的数量,若超过了预先设定的阈值,则会down掉此端口。基于IP的ARP扫描则计算一段时间内从网段内某IP收到的ARP报文的数量,若超过了预先设置的阈值,则禁止来自此IP的任何流量,而不是down与此IP相连的端口。此两种防ARP扫描功能可以同时启用。端口或IP被禁掉后,可以通过自动恢复功能自动恢复其状态。
    为了提高交换机的效率,可以配置受信任的端口和IP,交换机不检测来自受信任的端口或IP的ARP报文,这样可以有效地减少交换机的负担。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值