arp欺骗攻击与防范技术总结和分析

         ~~~~~~~~         因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。 ​​​​
                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                 ————玛丽亚·杜埃尼亚斯

前言

随着人类社会的进步和发展,人们对网络的需求将会越来越大,然而在这样一个条件下,internet与网络服务,网络应用等其他组件就面临着安全性的挑战。根据tcp/ip协议原理可以知晓,tcp/ip网络内的每台主机都必须具有一个合法的ip地址才能进行相互通信,而在互联网高速发展的现在,ip地址日益匮乏,大多数企事业单位采用nat等技术来组建自己的局域网这种方式解决这一问题,在一定程度上增强了网路内部的交互安全。然而实现简单、运行高效的tcp/ip协议,它所提供的信息和资源共享是建立在网络内部各节点之间相互信任基础之上的,这使得tcp/ip协议的完全开放性具有诸多的安全隐患。

arp简介

ARP(Address Resolution Protocol)即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。arp协议是tcp/ip协议集的数据链路层协议,主要用于在局域网环境下,ip地址到网络设备的物理地址(mac)的转换。作为tcp/ip协议栈中的一个重要成员,其设计同样是建立在局域网内各计算机相互信任的基础之上的。由于种种原因,arp协议在设计之初,仅处于对传输效率的考虑,而缺乏必要的身份认证和鉴别机制,导致其具有相当脆弱的安全性能。arp攻击时一种典型的欺骗类型,其实质就是利用了arp协议本身的安全缺陷和漏洞来进行攻击的。

arp工作原理

arp是非常常用的tcp/ip底层协议,用来实现ip地址和mac地址之间的映射。以太网中的arp报文格式如图所示:
在这里插入图片描述
在一个TCP/IP 网络中, 从一台主机 A 发送数据给另一台主机 B时, 必须把信息分割、封装成包, 并附上目的主机 B 的 IP 地址与 MAC 地址。然而, 当这两台主机第一次通信时, 源主机 A 不一定知道目的主机 B 的 MAC 地址, 根据 ARP 协议,A 就要发送一个 ARP 请求, 以寻找 IP 地址到实际 MAC 地址的映射。而 B 在收到这个包含其 IP 地址的请求后, 就会返回A一 个 ARP 响应, 告知 A 其 MAC 地址。最后, 协议栈将 IP 包封装到以太网帧中进行传送。
为了避免不必要的 ARP 报文查询, 每台主机的操作系统 都维护着一个 ARP 高速缓存 ARP Cache, 记录着同一链路上 其它主机的 IP 地址到 MAC 地址的映射关系。 ARP 高速缓存通常是动态的, 由系统在一定的时间间隔后进行刷新, 并可以手工添加静态条目。为节省 ARP 缓冲区的内存, 被解析过的 ARP 条目的寿命都是有限的, 如果一段时间内该条目没有被引用 过, 则条目被自动删除。一般, 在工作站 PC 的 Windows 环境 中,ARP 条目的寿命是 2 分钟; 在大部分 Cisco 交换机中, 该值是5分钟。

请求过程
在这里插入图片描述
如图上图所示:
当主机A要和主机B通信时。主机A首先会检查其arp缓存中是否有主机B的mac地址。
如果没有,主机A会发送一个arp请求报文,以广播的方式在以太网中传输,报文中包含了A的ip地址mac地址和B的ip地址。
当B收到请求报文,发现ip为本机ip,则以单播方式将自己的mac地址以arp响应包传送给主机A,并更新自己的arp缓存表。
主机A在得到主机B的mac地址后,就可以与B通信了。同时也将主机B的ip/mac地址映射添加到自己的arp缓存表中。
而主机C收到arp请求包发现不是请求的自己,将会丢弃这个请求包。

arp欺骗原理

在基于以太网技术的局域网中,arp协议是建立在主机之间相互信任的基础上的,arp协议虽然是一个高效的数据链路层协议,但同时也是一个“无状态”协议,并且存在以下可以利用的缺陷:

  1. arp高速缓存表根据所接收到的arp协议包随时进行动态更新
  2. arp协议没有连接的概念,即任意主机即使在没有arp请求的时候也可以进行作答
  3. arp协议没有认证机制,只要接收到的协议包格式是正确的,主机就会毫无条件地根据协议包内容刷新本机arp缓存,并不检查该协议包的合法性。

那么根据arp协议的这些缺陷,用来进行arp欺骗的的发包形式主要有两种:
a. 假冒arp reply(单播)
b. 假冒arp request(广播)
由于arp欺骗在中间人攻击中会导致ip地址冲突,并且是广播包,容易暴露攻击行为,所以在实际的基于arp欺骗的中间人攻击中极少使用,一般都是针对特定的主机。
arp欺骗攻击的核心思想就是向目标主机发送伪造的arp应答,用伪造的ip-mac地址之间的映射更新目标主机的arp缓存。

arp欺骗原理图解
在这里插入图片描述
现假设网络中有三台主机A,B,C。主机A,B为合法主机,C为攻击者。攻击分为三个步骤:

  1. 攻击者利用arp欺骗,将自己插入到两台合法主机的通信路径中间。主机A,B间通讯变为A<——>C<——>B
  2. 截获两台合法主机间通信的数据,根据自己情况过滤或者修改
  3. 为了保证A,B两台主机的通信,转发被捕获的数据

具体步骤:

  1. 插入路径
    主机C利用arp欺骗技术,分别给主机A,B发送伪造的arp响应报文,迫使主机A,B更新其arp缓存。发送给主机A的arp响应报文为(主机B的ip-主机C的mac),发往主机B的arp响应报文为(主机A的ip-主机C的mac)。这样主机A便会将主机C的mac地址当做主机B的mac地址,而主机B也会将主机C的mac地址当做主机A的mac地址。当A,B之间通信时,数据帧都会发往主机C。由于arp缓存又是动态更新的,我们发送的伪造的arp响应会在一段时间内失效,所以我们需要定时的向主机A,B发送伪造的arp响应。那么通过以上的手段,攻击者C就插入到了主机A,B之间的通信中。
  2. 截获数据
    主机C在成功插入到主机A,B通信中时,需要将其网卡设置为混杂模式来截获这些数据,并且根据自己的需要来决定是要过滤筛选,还是要对其进行修改。
  3. 转发数据
    为了保证主机A,B之间通信的连续性,主机C必须转发被截获和修改了的数据帧,并且必须修改这些数据帧的目的mac地址为主机A或者B的真实的mac地址。

arp欺骗常见攻击手段

  1. 中间人攻击(MITM)
    上文有提到,中间人攻击就是攻击者在目标主机与另一方主机(可以是网关或服务器)进行正常通信的过程中,进行拦截、插入、伪造、中断数据包,达到截获对方敏感数据,伪造身份等目的。
  2. 拒绝服务攻击(Dos)
    拒绝服务攻击以阻塞正常网络带宽、耗尽服务器内存资源、干扰及破坏正常通信为主。在传统的网络中,Dos攻击已成为攻击者进行恶意破坏大型网站通信、破坏公司网络等极具威胁性的途径。
  3. mac泛洪
    交换机依靠对CAM表的查询来确定正确的转发端口。攻击者通过伪造大量的arp应答报文,使CAM表被这些伪造的mac地址占据,真实的mac地址却无法进入CAM表,当CAM表记录的mac地址达到上限后,新的条目将不会添加到CAM表中。此时,任何一个经过交换机的正常单播数据帧,都会以广播帧的形式类处理,导致网络带宽资源被大量的数据包占用。

遭受arp欺骗攻击现象

受攻击机性能影响,网速时快时慢且极其不稳定,局域网内频繁性区域或整体掉线,重启计算机或网络设备后恢复正常;网上银行、游戏及QQ账号的频繁丢失;使用arp -a命令查看的网关mac地址与真实的网关mac地址不同;使用嗅探软件发现局域网内存在大量arp应答包。

arp欺骗攻击相关检测方法

手动检测方法

使用arp-a命令,查看主机的arp缓存表状态。在正常情况下,除了网关信息之外不会有其他记录。然后查看网关的mac地址是否和正常时一样,如果不同,在网关没有更换网卡的情况下,则表明主机受到了arp攻击。如果没有记录或者有太多的arp记录,则也有可能是受到了攻击。

主机级检测方法

被动检查
当系统接收到来自局域网上的arp请求时,系统检查该请求的发送端地址是否与自身地址相同。如果相同,则可能发生arp欺骗,也有可能是其他主机地址配置与自己相同。因为还有一种情况是,每当系统启动时或更改主机ip地址时,arp协议自动向本地网络发送一个广播请求包,通告自己的ip地址并检测是否有ip冲突现象。
主动探测
当接收到arp应答报文时,为了证实它的真实性,从响应报文中提取mac地址再构造一个rarp(反向地址解析协议)请求报文,查询到这mac对应的ip。比较这两个应答报文的ip,如果不同,则说明有人伪造了响应报文。还有一种方法就是主机定期的向所在局域网发送查询自己地址的arp报文。如果能够收到另一arp响应报文,则说明该网络上另有一台主机与自己有相同的mac。

网络级探测方法

  1. 通过对主机进行配置,定期向网管中心报告其arp缓存,网管中心程序查找两台主机报告信息的不一致以及同一台主机前后报告内容的变化。这些信息在一定程度上反映了潜在的安全问题,通过分析可以初步的判断谁是攻击者,谁是被攻击者。但是需要考虑的问题在于:各台主机向网管中心报告数据的时间间隔问题。如果太短则占用网络流量,太长了可能超过一次攻击时间,则失去了意义。
  2. 通过网管中心主机检查匹配网络的ip-mac映射表,检测arp欺骗。两种获取映射表方式:a由管理员根据实际情况手工配置维护 b在网络正常时通过arp扫描获取网内主机的ip-mac映射表。

缓存超时检测方法

正常模式下,主机只有在发送arp请求后,才会收到应答。根据arp缓存超时机制,相应的缓存表项要过一段时间才会失效。但是对于攻击者来说,攻击者为了持续有效的截获目标主机间的通信信息,防止目标主机与其他主机通信时发出arp请求包干扰,必须周期性的维持对目标机的arp缓存的欺骗,并且这个周期必须小于目标机的缓存表项超时时限。因此如果在缓存表项超时时间内,主机收到了相同应答内容的应答包不止一个,那么就肯定发生了arp欺骗。缓存超时时限内收到的相同内容应答包越多,则被欺骗的越深,达到了一定数量就认为发生了中间人攻击。那么通过这种方法,主机就可以在没有本地局域网ip-mac映射表的情况下对中间人攻击进行一个有效的检测。对于这个方法有效性的关键就在于arp缓存的超时时限的确定。

arp欺骗防御措施分析

arp攻击伴随arp协议的诞生就一直困扰着人们。目前,为了解决arp欺骗给局域网安全带来的严重问题,前辈们已经做了很多具有实践意义的工作。长期以来,许多反病毒专家和学者对arp欺骗的侦测和防御问题进行了长时间艰苦的探索,虽然这些研究均存在一定的局限性,但某些方案在特定网络环境下的防御效果十分显著,这些方案也给后面的研究者们给了一个很好的思路。现就这些防御方案进行一个分析。

1. 设置静态的arp缓存

在计算机上使用arp-s命令添加静态arp缓存记录。若攻击者向主机发送arp应答报文,目标机接收报文后并不会刷新arp缓存表。从而避免了arp欺骗的发生。这种方法在一定程度上限制了数据包的捕获以及冒充网关的欺骗攻击行为,但存在着以下局限性:
a:需要网络管理员手动设定静态arp缓存,这无疑增加了网管员的工作量,而且不够灵活较为刻板。当主机自动获取到另一个ip地址或者更换新的网卡后,网络管理员不得不重新设定ip-mac绑定
b:攻击者可以对arp病毒进行优化,通过相应的代码,破幻网络管理员在各种终端设备上所做的ip-mac绑定
c:arp静态缓存的主要作用是使相关的主机与路由对于有关的arp数据包不予理会,但攻击者仍然可以通过泛洪的方式发出数据包,这样就会造成内网拥塞,影响数据的正常传输。

2. 使用arp服务器

在arp服务器中保存局域网服务器中各主机的ip地址和mac地址的映射信息,同时禁用各主机的arp应答,保留服务器对arp请求的应答。它的致命缺点就是一定要保证arp服务器的安全,不然arp服务器一旦被攻陷,后果不堪设想。

3. 划分虚拟局域网(vlan)和端口绑定

根据arp欺骗不会发生跨网段攻击的特点,可以将网络划分为多个网段。优点就是能缩小arp欺骗的攻击范围,缺点是不够灵活,不能避免网关遭受攻击。如果网关沦陷,同样会造成大面积的掉线和网络瘫痪。这种方法也会大幅度增加网络设备的成本。

4. 删除windows系统中的npptools.dll动态连接库。

主要原因是因为它容易受到arp欺骗病毒的攻击。方法是在安全模式下,删除windows\system32\npptools.dll文件。然后新建一个零字节的文件,保存模式为只读模式,以免被覆盖。

5. 采用arp防火墙

现在很多杀毒软件制造商都设计出了个人arp防火墙模块,该模块也是通过绑定主机和网关等其他方式,来避免遭受攻击者所冒充的家网关攻击。在一定程度上可以防御arp欺骗攻击。

6. 对数据包进行加密处理

在arp攻击中,攻击者可以截获两台主机之间的数据包,里面可能包含了我们的用户名密码等一些隐私的信息。那么我们可以通过对这些数据进行加密处理,这样即便是攻击者拿到数据,也难以阅读,修改其内容。

7. 中间件技术

tripunitara等人提出了一种利用中间件(middleware)技术来检测和抵御arp欺骗的方法。其主要思想是在系统内核中增加一个checker模块,它位于网卡驱动和上层驱动之间,主要负责对流入流出的arp报文进行监测并进行处理。其模块处理过程:a 、在发送arp请求报文时,checker将该请求添加到arp请求报文列表 b、 在接收arp应答报文时,checker首先检查请求报文列表中是否存在对应的arp请求。若存在则进行转发并将之添加到arp应答报文列表;若不存在则再检查arp应答报文列表中是否有对应的arp应答记录,若有则进行换发,否则丢弃。
中间件技术的优点是修改了系统内核的主机可以有效的监测和防御arp欺骗,并与局域网中其他内核未作改变的主机相兼容;缺点是需要修改系统的内核,而且没有考虑到本机对其他主机发起的arp欺骗。 一种改进的方法是修改系统内核发 送arp报文的处理策略。 在系统内核发送arp请求或应答报文时,checker首先检查arp报文的合法性,如果arp报文的源地址为本机,则进行转发,否则丢弃。

总结

arp欺骗攻击已经严重的影响到了人们进行安全的信息通讯,通过对前辈的资料整理分析,不难发现,虽然人们对arp欺骗的欺骗原理有着足够清晰的认识,但是对于当前多种多样的关于arp攻击的防御方案的研究却是任重而道远。那么在未来,研究和改进arp协议,需要综合考虑一下因素,在防御arp欺骗攻击的条件下取得一个比较理想的应用效果:

  1. 兼容性。arp协议作为tcp/ip协议栈的一员,已经得到了广泛的应用部署,对arp协议的改变就意味着需要对成千上万台主机和网络设备进行修改。所以,改进arp协议首先要保证兼容arp协议,无须修改现有主机和网络设备最佳。
  2. 透明性。改进的arp协议需保留用户原有的操作习惯,做到对用户透明,无须用户多余的参与。
  3. 系统和网络开销。通过改进的arp协议对主机性能没有影响或影响很小,并且在交互过程中不会产生很大的网络流量。改进后的arp协议对主机性能等方面的需求要小,要尽可能的减少系统和网络开销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值