浅析ARP协议

1. ARP协议

ARP(地址解析协议:Address Resolution Protocol)是根据IP地址获取物理地址MAC的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

2. ARP协议工作原理

1.每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
2.主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与Mac地址的映射关系广播给其他主机。
3.网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。
4.某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,
  如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
5.当本网络的所有主机收到该 ARP 数据包时:
(A)首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。
(B)如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。
(C) 然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
6.源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

3.ARP缓存

ARP高速缓存(即ARP表)是 ARP地址解析协议能够高效运行的关键, (如果有多次ARP响应时,以最后一次响应为准)
ARP给IP地址和MAC地址中间做了动态映射,也就是说缓存了一个ARP表,将得到的IP地址和MAC地址对应起来,
如果在表中没有查到IP地址对应的MAC地址,就会发广播去找。随着用户的使用,ARP表如果不做任何措施,
就会变得越来越臃肿缓慢,就降低了网络传输数据的效率,所以ARP缓存中每一项被设置了生存时间,
一般是20分钟,从被创建时开始计算,到时则清除,如果在计时期间又被使用了,计时会重置。我们可以通过arp命令查看arp表。

在这里插入图片描述

ARP表中记录了一些IP地址与物理地址的映射,在arp表中,我们可以看到一个Flags字段,
该字段有C、M、P三种取值: 
C: 表明arp条目为通过ARP请求动态获取,(一般存活时间为20min) 
M: 表明arp条目为手动设置。 
P: 表示Publish,表示该ARP条目可以用于恢复其他主机的ARP请求。(用于ARP proxy)

4. ARP欺骗

ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网上上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。
此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上上特定计算机或所有计算机无法正常连线
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,
攻击者只要持续不断的发出伪造的ARP响应包,就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

5. ARP 欺骗原理

ARP欺骗的核心思想就是向目标主机发送伪造的ARP应答,并使目标主机接收应答中伪造的IP地址与MAC地址之间的映射对,以此更新目标主机ARP缓存。
下面就在理论上说明实施ARP欺骗的过程: S代表源主机,也就是将要被欺骗的目标主机; D代表目的主机,源主机本来是向它发送数据; A代表攻击者,进行ARP欺骗。

在这里插入图片描述

当S想要向D发送数据时,假设目前他的ARP缓存中没有关于D的记录,那么他首先在局域网中广播包含D的IP地址的ARP请求。
但此时A具有与D相同的IP地址,于是分别来自A与D的ARP响应报文将相继到达S。如果A控制自己的ARP响应晚于D的ARP响应到达S,
S就会伪造映射: D的IP地址 → A的MAC地址  保存在自己的ARP缓存中。在这个记录过期之前,凡是S 发送给D的数据实际上都将发送给A。 而S却毫不察觉。
或者A在上述过程中,利用其它方法直接抑制来自D的ARP应答将是一个更有效的方法而不用依赖于不同操作系统的处理机制。
进一步, A可不依赖于上述过程,直接在底层伪造ARP响应报文来达到同样的目的。从影响网络连接通畅的方式来看。

ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。
一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线;如果是被中间人攻击,截取Internet与这个目标主机的之间的全部通信,
则会导致信息泄露,在主机看来访问外部服务的响应变慢;或者对于服务器而言,上层应用忙于处理这种异常而无法响应外来请求。

6. ARP欺骗的防范

1.主机级被动检测
当系统接收到来自局域网上的ARP请求时,系统检查该请求发送端的IP地址是否与自己的IP地址相同。
如果相同,则说明该网络上另有一台机器与自己具有相同的IP地址。

2.主机级主动检测
主机定期向所在局域网发送查询自己IP地址的ARP请求报文。如果能够收到另一ARP响应报文,
则说明该网络上另有一台机器与自己具有相同的IP地址。

3.服务器级检测
当服务器收到ARP响应时,为了证实它的真实性,根据反向地址解析协议(RARP)就用从响应报文中给出的MAC地址再生成一个RARP请求,
它询问这样一个问题:“如果你是这个MAC地址的拥有者,请回答你的IP地址”。这样就会查询到这个MAC地址对应的IP地址,
比较这两个IP地址,如果不同,则说明对方伪造了ARP响应报文。

4.网络级检测
配置主机定期向中心管理主机报告其ARP缓存的内容。这样中心管理主机上的程序就会查找出两台主机报告信息的不一致,以及同一台主机前后报告内容的变化。
这些情况反映了潜在的安全问题。或者利用网络嗅探工具连续监测网络内主机硬件地址与IP地址对应关系的变化。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值