admin管理员组

文章数量:1532501

2024年1月13日发(作者:)

ARP攻击和防范

1.前言

很多文章针对ARP协议的原理和缺点进行了描述。但是并没有全面提出ARP的攻击,防护策略。本文就网络针对性解决方法作一些阐述。内容包括:

ARP Flooding的攻击与防范

中间人欺骗的攻击与防范

ARP Spoofing(ARP病毒)的攻击与防范

2.ARP协议的原理和缺点。

在以太网中传输的数据包是以太包,而以太包的寻址是依据其首部的物理地址(MAC 地址)。仅仅知道某主机的逻辑地址(IP 地址)并不能让内核发送一帧数据给此主机,内核必须知道目的主机的物理地址才能发送数据。

ARP 协议的作用就是在于把逻辑地址变换成物理地址,也既是把32bit 的IP

地址变换成48bit 的以太地址。每一个主机都有一个ARP 高速缓存,此缓存中记录了最近一段时间内其它IP 地址与其MAC 地址的对应关系。如果本机想与某台主机通信,则首先在ARP 高速缓存中查找此台主机的IP 和MAC 信息,如果存在,则直接利用此MAC 地址构造以太包;如果不存在,则向本网络上每一个主机广播一个ARP 请求包,其意义是"如果你有此IP 地址,请告诉我你的MAC 地址",目的主机收到此请求包后,发送一个ARP 响应包,本机收到此响应包后,把相关信息记录在ARP 高速缓存中,以下的步骤同上。

可以看出,ARP 协议是有缺点的,第三方主机可以构造一个ARP 欺骗包,而源主机却无法分辨真假。

按照RFC 的规定,PC 在发ARP 响应时,不需要一定要先收到ARP 请求报文,局域网中任何一台PC 都可以向网络内其它PC 通告:自己就是PC A 和MAC

A 的对应关系,这就给攻击者带来可乘人之危的漏洞,如下图所示:

1

下面就以下三种常见的网络攻击逐一进行介绍。

ARP Flooding的攻击与防范

中间人欺骗的攻击与防范

ARP Spoofing(ARP病毒)的攻击与防范。。

3.1 ARP Flooding的攻击与防范

ARP Flooding又叫MAC Flooding,即我们所说的MAC地址泛洪。

a) 攻击原理

交换机能够主动学习客户端的 MAC 地址,并建立和维护端口和 MAC 地址的对应表以此建立交换路径,这个表就是通常我们所说的MAC地址表。 MAC地址表的大小是固定的,不同的交换机的 MAC地址表大小不同。 MAC Flooding攻击是指利用工具产生欺骗 MAC ,快速填满MAC地址表,交换机MAC地址表被填满后,交换机以广播方式处理通过交换机的报文,这时攻击者可以利用各种嗅探攻击获取网络信息。MAC地址表满了后,流量以洪泛方式发送到所有接口,也就代表 TRUNK 接口上的流量也会发给所有接口和邻接交换机,会造成交换机负载过大,网络缓慢和丢包甚至瘫痪。

b) 典型的病毒攻击案例

曾经对网络照成非常大威胁的 SQL 蠕虫病毒就利用组播目标地址,构造假目标 MAC 来填满交换机 CAM 表。其特征如下图所示:

2

c) 防范原理

利用交换机端口与MAC 地址绑定的功能,同时利用限制端口学习MAC 地址的数量来达到防范的目的。

d) 网络防范措施介绍

利用端口安全这个特性,你可以通过限制允许访问交换机上某个端口的MAC地址以及IP(可选)来实现严格控制对该端口的输入。当你为安全端口(打开了端口安全功能的端口)配置了一些安全地址后,则除了源地址为这些安全地址的包外,这个端口将不转发其它任何包。此外,你还可以限制一个端口上能包含的安全地址最大个数,如果你将最大个数设置为1,并且为该端口配置一个安全地址,则连接到这个口的工作站(其地址为配置的安全M地址)将独享该端口的全部带宽。

为了增强安全性,你可以将地址和地址绑定起来作为安全地址。当然你也可以只指定MAC地址而不绑定IP地址。如果一个端口被配置为一个安全端口,当其安全地址的数目已经达到允许的最大个数后,如果该端口收到一个源地址不属于端口上的安全地址的包时,一个安全违例将产生。当安全违例将产生时,你可以选择多 3

种方式来处理违例,比如丢弃接收到的报,发送违例通知或关闭相应端口等。当你设置了安全端口上安全地址的最大个数后,你可以使用下面几种方式加满端口上的安全地址:

你可以使用接口配置模式下的命令:

switchport port-security mac-address mac-address[ip-addressip-address]来手工配置端口的所有安全地址。

你也可以让该端口自动学习地址,这些自动学习到的地址将变成该端口上的安全地址,直到达到最大个数。你也可以手工配置一部分安全地址,剩下的部分让交换机自己学习。

当违例产生时,你可以设置下面几种针对违例的处理模式:

protect:当安全地址个数满后,安全端口将丢弃未知名地址(不是该端口的安全地址中的任何一个)的包

restrict:当违例产生时,将发送一个Trap通知

shutdown:当违例产生时,将关闭端口并发送一个Trap通知。

3.2 ARP欺骗/ MITM(Man-In-The-Middle)攻击与防范

a) 攻击原理

按照 ARP 协议的设计,为了减少网络上过多的 ARP 数据通信,一个主机,即使收到的 ARP 应答并非自己请求得到的,它也会将其插入到自己的 ARP 缓存表中,这样,就造成了“ ARP 欺骗”的可能。如果黑客想探听同一网络中两台主机之间的通信(即使是通过交换机相连),他会分别给这两台主机发送一个 ARP 应答包,让两台主机都“误”认为对方的 MAC 地址是第三方的黑客所在的主机,这样,双方看似“直接”的通信连接,实际上都是通过黑客所在的主机间接进行的。黑客一方面得到了想要的通信内容,另一方面,只需要更改数据包中的一些信息,成功地做好转发工作即可。在这种嗅探方式中,黑客所在主机是不需要设置网卡的混杂模式的,因为通信双方的数据包在物理上都是发送给黑客所在的中转主机的。

b) 典型的攻击案例

4

目前利用 ARP原理编制的工具十分简单易用,这些工具可以直接嗅探和分析FTP、POP3、SMB、SMTP、HTTP/HTTPS、SSH、MSN等超过30种应用的密码和传输内容。 下面是测试时利用工具捕获的 TELNET 过程,捕获内容包含了

TELNET 密码和全部所传的内容 :

不仅仅是以上特定应用的数据,利用中间人攻击者可将监控到数据直接发给

SNIFFER等嗅探器,这样就可以监控所有被欺骗用户的数据。

还有些人利用 ARP原理 开发出网管工具,随时切断指定用户的连接。这些工具流传到捣乱者手里极易使网络变得不稳定,通常这些故障很难排查。

c) 防范原理

为了应对中间人欺骗,就需要交换机除了能够开启端口安全,对IP与MAC进行绑定之外,还需要有相关机制对ARP报文进行深入的检查。这对交换机设备厂商来说是一种挑战。

d) 网络防范措施

利用交换机端口ARP 检查安全功能:打开ARP 报文检查ARP 报文中的源IP

和源MAC 是否和绑定的一致,可有效防止安全端口上欺骗ARP,防止非法信息点冒充网络关键设备的IP( 如服务器), 造成网络通讯混乱。需要注意该功能是否在802.1x端口下也支持。

缺省情况下,安全地址只会检查IP报文,有时管理员还需要检查ARP报文的 5

合法性,那么可以通过全局配置模式下的port-security arp-check [cpu]来打开对ARP报文的检查。

3.3 ARP欺骗/ MITM(Man-In-The-Middle)攻击与防范

a) 攻击原理

与前面中间人欺骗的原理类似,只是这里攻击者欺骗的不是两台主机,而是欺骗了主机与网关之间的通信。

目前ARP病毒种类较多。有进行欺骗但是进行转发的;有进行欺骗但不进行转发的。前者将造成客户PC与网关之间的通讯信息被攻击者所截获,后者将造成网络的瘫痪。形式上主要分为一种是欺骗路由器/交换机等关键IP设备,或者欺骗客户端PC,另一种就是两者都进行欺骗。

但是ARP病毒的原理基本上一致,就是发送伪造的ARP应答包来更新ARP缓存达到欺骗的目的。

b) ARP病毒分析

下面拿出网吧中的实际案例进行分析。

当局域网内某台主机运行ARP欺骗的木马程序时(这个木马可能是被植入了主机所运行的游戏外挂中),会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。

由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。

在路由器的“系统历史记录”中看到大量如下的信息:

MAC Chged 10.128.103.124

MAC Old 00:01:6c:36:d1:7f

6

MAC New 00:05:5d:60:c7:18

这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC

New地址都一致为病毒主机的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。

如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。

c) 防范方法

不管是何种ARP病毒,其危害是显而易见的。那么如何进行有效防范呢?

i. 临时处理对策:

步骤一. 在能上网时,进入MS-DOS窗口,输入命令:arp –a 查看网关IP对应的正确MAC地址,将其记录下来。

注:如果已经不能上网,则先运行一次命令arp –d将arp缓存中的内容删空,计算机可暂时恢复上网(攻击如果不停止的话),一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行arp –a。

步骤二. 如果已经有网关的正确MAC地址,在不能上网时,手工将网关IP和正确MAC绑定,可确保计算机不再被攻击影响。手工绑定可在MS-DOS窗口下运行以下命令: arp –s 网关IP 网关MAC

ii. 在网关/交换机上进行ARP病毒防范(依赖于各厂商设备)

d) 网络防范措施

利用交换机端口ARP 检查安全功能:打开ARP 报文检查ARP 报文中的源IP

和源MAC 是否和绑定的一致,可有效防止安全端口上欺骗ARP,防止非法信息点冒充网关设备的IP。

针对目前ARP欺骗基本上是网关欺骗,网络进行了专门的研究,提出了Anti

ARP-Spoofing。针对ARP欺骗的手段,我们可以通过这个命令设置交换机的防ARP欺骗功能来防止网关被欺骗。具体的做法就是,在用户端口上通过防ARP欺骗命令 7

设置要防止欺骗的IP,阻止以该设置IP为源IP地址的ARP通过交换机,这样可以保证交换机下联端口的主机无法进行网关ARP欺骗。

同时,为了防止病毒主机模仿受害主机的地址,造成受害主机的ARP信息学习到错误的端口。建议通过配置静态ARP信息的方法解决该问题。也可以通过在端口上绑定MAC和IP地址信息(端口安全),同时打开ARP-Check功能的方法。

8

本文标签: 地址端口欺骗交换机网络