江西有色金属  2007, Vol. 21 Issue (2): 45-47
文章快速检索     高级检索
基于ARP协议的欺骗及其预防[PDF全文]
傅军 , 孙谦 , 黄家林     
中南大学 网络中心, 湖南 长沙 410083
摘要:针对目前校园网内ARP病毒的频繁发作, 分析了ARP病毒的攻击原理, 讨论了ARP欺骗行为的判定, 提出了对ARP欺骗的解决方案。
关键词ARP    ARP病毒    攻击    
Attacks of ARP and Protecting Methods
FU Jun , SUN Qian , HUANG Jia-Lin     
Network Center, Central South University, Changsha 410083, China
Abstract: This article analyzed the reasons that ARP virus spreads and attacks principle based on its frequent outbreak on campus network, discussed the definition for ARP cheat behavior, and put forward solution to ARP cheating problem.
Key words: ARP    ARP virus    attack    
0 引言

近来, 校园网用户反映网络经常断线, 网络链接速度变慢, 甚至无法上网。我们通过MRTG流量分析和网络协议分析发现是一种ARP欺骗程序的攻击所致。运行了ARP欺骗程序的计算机冒充网络网关, 截取其他用户的通讯, 导致这些用户的计算机无法正常连接到网关, 严重地影响了用户的正常上网和信息安全。

1 ARP协议及欺骗原理

ARP是地址解析协议(Address Resolution Protocol)的缩写。在局域网中, 网络中实际传输的是“帧”, 帧里面需要主机网卡的MAC地址。一个主机要和另一个主机进行直接通信, 必须要知道目标主机的MAC地址, 而机主是通过ARP协议获得目标主机的MAC地址。所谓“地址解析”就是主机在发送“帧”之前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址, 查询目标设备的MAC地址, 以保证通信的顺利进行。

每台安装有TCP/IP协议的计算机主机里都有一个ARP缓存表, 表中的IP地址与MAC地址是一一对应的, 如表 1所示。

表 1 ARP缓存表
点击放大

现以主机B(192.168.16.2)向主机C(192.168.16.3)发送数据(如表 1所示)为例来说明。当发送数据时, 表 1 ARP缓存表主机B会在自己的ARP缓存表中寻找是否有目标主机C的IP地址。如果找到了, 也就知道了目标主机C的MAC地址, 则直接把目标主机C的MAC地址写入帧里面发送就可以了; 如果在ARP缓存表中没有找到相对应的IP地址, 主机B就会在网络上发送一个广播, 即目标MAC地址是“FF.FF.FF.FF.FF. FF”的广播包, 并向同一网段内的所有主机发出这样的询问:“192.168.16.2的MAC地址是什么?”网络上其他主机并不响应ARP询问, 只有IP地址为“192.168.16.3”的主机C接收到这个帧时, 才会向主机B做出这样的回应:“192.168.16.3的MAC地址是0013.d322.a2bf”。这样, 主机B就知道了目标主机C的MAC地址, 因此就可以向主机C发送信息了。同时它还更新自己的ARP缓存表, 使得下次再向主机C发送信息时, 可直接从ARP缓存表里查找。ARP缓存表采用了老化机制, 如果表中的某一行记录在约定的时间内没有使用, 就会被删除, 这样可以减少ARP缓存表的长度, 加快查询速度。

在局域网中, 是通过ARP协议来完成第三层网络IP地址到第二层物理地址(即MAC地址)转换的, 从MAC地址到IP地址的转换则是通过RARP协议进行的。ARP协议对网络安全具有重要的意义, ARP协议的基础就是信任局域网内所有的人。但别有用心的人则利用这种信任, 通过伪造IP地址和MAC地址实现ARP欺骗。

图 1所示, 假设主机B进行ARP欺骗的时候, 会在局域网内发广播包, 声称网关A的MAC地址是0013.d3bd.a7b0, 同时声称IP地址为192.168.16.3和192.168.16.4的主机的MAC地址为0013.d3bd.a7b0, 于是主机C和D与外部网络之间的通信数据都先发送到主机B, 由B对数据包修改后再进行转发, 使得通信的双方都察觉不到B的存在; 而此时的主机B则可以对通信的内容进行监听, 从而盗取用户名、密码等有用的信息, 并可以随时切断与被欺骗主机的连接。当局域网中的主机数量很多, 主机B要冒充大量主机时, 将持续发送大量伪造的ARP包, 从而造成局域网内主机的ARP缓存混乱, 使得局域网内主机上网不稳定, 容易出现掉线的现象。图 2是校园网中的一个的典型的ARP欺骗攻击的实际案例。

图 1 ARP欺骗原理

图 2 ARP 欺骗实例

图 2可知, IP地址为202.197.59.123的主机在局域网内滥发ARP包, 冒充网关202.197.59.254和其他主机。

2 ARP欺骗行为的判定

如果用户发现突然不能上网, 可以通过以下步骤进行ARP欺骗行为的判定。

2.1 检查计算机ARP缓存列表

点击“开始”菜单, 选择“运行”, 然后输入“cmd”, 点击“确定”按钮, 在命令提示符窗口中输入“arp –d”命令清除本机的ARP缓存表, 然后重新尝试上网, 如果能恢复正常, 则说明此次掉线可能是受ARP欺骗攻击所致。“arp –d”命令能清除ARP缓存表, 系统会自动重建新的ARP缓存表, “arp –d”命令并不能抵御ARP欺骗攻击, 执行“arp –d”命令后仍有可能再次遭受ARP病毒攻击。

2.2 检查计算机是否有“ARP欺骗攻击”木马进程

同时按住键盘上的“CTRL”和“ALT”键再按“DEL”键, 选择“任务管理器”, 点选“进程”标签。察看其中是否有一个名为“MIR0.dat”的进程。如果有, 则说明已经中毒(多数ARP欺骗木马的名称都是这个, 但也有一些其他的, 请仔细辨别)。

3 ARP欺骗的解决方案

由于在实际的网络运行当中, 有很多用户根本不知道自己的计算机已经中了木马病毒, 是在不知情的情况下对别的计算机发起攻击或进行ARP欺骗的。因此, 不单要从技术上对病毒发作的计算机进行防范, 更要从管理上进行防范, 要在第一时间通知存在ARP欺骗的计算机的使用者, 告之其处理方法, 尽快解决中毒计算机的问题, 以恢复网络的正常使用。在技术上应做到以下几点。

(1) 对所管理的计算机定期进行系统升级, 确保所用的计算机都安装了最新的系统补丁, 杀毒软件的病毒特征库都升级到最新版本。

(2) 不要把你的网络安全信任关系建立在IP或MAC基础上, 应该建立在IP+MAC基础上, 即IP和MAC的绑定, RARP协议同样存在欺骗的问题。

(3) 设置静态的MAC→IP对应表, 不要让主机刷新你设定好的转换表。

(4) 管理员定期轮询, 检查主机上的ARP缓存, 检查ARP响应的真实性。

4 结语

中南大学通过以上的相应措施, 在一定程度上保证了校园网络的安全、正常运行。但由于ARP欺骗病毒是发生在局域网内部, 很容易被系统管理人员或用户误判为网络主干设备工作不稳定, 而且必须通过协议分析才能定位进行ARP欺骗攻击的计算机, 这些, 都极大地增加了系统管理员的工作量。因此, 如何自动地发现、定位在进行ARP欺骗攻击的计算机, 并通知有关人员处理这些有害的计算机, 减轻系统管理员的负担是下一步需要重点解决的问题。