ARP病毒分析

关于ARP病毒

ARP,是Address Resolve Protocol 的缩写。本文在介绍ARP基本原理的基础上,分析ARP病毒的运行机理,提出防治ARP病毒的思路。

1ARP基础

我们知道,无论是局域网还是Internet,计算机节点之间的通信是通过IP地址来进行的。然而IP地址是逻辑上的地址,并不能直接由物理电路实现。因此,网卡之间实际进行选址时用的不是IP而是与IP对应的MAC

当网卡接受数据的时候,会根据网卡接口电平的变化来与自身的MAC地址进行比较,如果不匹配则不进行任何操作(假设工作在正常状态下,如果网卡工作在混杂模式下,则接受发往任何MAC的数据);如果匹配,则接受此祯数据。

当网卡发送数据时,一个物理祯的祯头必须包含目标网卡的MAC地址,因为其他网卡要据此判断是否接受数据。然而发送计算机只知道目标计算机

网卡的IP地址,那么如何据此来获得目标计算机网卡的MAC地址呢。这就是著名的ARP协议。

在网卡发送数据前,计算机会根据目标计算机的IP来决定目标计算机的MAC。而这依据的就是ARP表。ARP表存在于计算机缓存中,因此可以快速查询,表结构如下:

 

1 ARP表结构

IP地址

MAC地址

19216811

00-e0-fc-4b-9b-e7

19216812

00-30-48-35-8b-a8

 

 

 

 

 

那么,这个ARP表示如何建立的,何时建立的呢?下面以如下网络结构为例介绍。

192.168.1.2

MAC_B

集线器

192.168.1.1

MAC_A

A

B

C

D

E

F

192.168.1.3

MAC_C

192.168.1.4

MAC_D

192.168.1.5

MAC_E

192.168.1.6

MAC_F

假设A要向B发送数据,在发送前,A查找其ARP表中,是否有BIP192.168.1.2)的对应表项。如果没有,则A向该网络广播“我的IP192.168.1.1,我的MACMAC_A,请问谁是192.168.7.2”。由于是广播,所以所有该网内的计算机都能收到这个祯,此时,CDEF收到后,发现在自己的IP不是192.168.7.2,所以不做回答。而B发现自己的IP正是A想要得,所以根据A发送的信息中的AMACA发送回答,回答内容是“我的IP192.168.1.2,我的MACMAC_B”。A收到B的回答后,根据B的回答内容建立ARP表项(192.168.1.2--------MAC_B)。

之后A就可以据此表项向B发送数据了。那么此表项存活时间是多少呢?因为网络中的计算机可能随时更换,假设计算机B被另一台计算机B’替换了,但是仍然使用192.168.1.2这个IP,那么此时A再向192.168.1.2这个发送数据时,仍旧使用原来的表项(192.168.1.2—MAC_B),那么发送时向MAC_B发送。而此时,MAC_B已经不在网络了,所以会发生传送错误。

所以,A要定期刷新ARP表,也就是定时重新发送“我的IP192.168.1.1,我的MACMAC_A,请问谁是192.168.7.2”,此时,B’会回答“我的IP192.168.1.2,我的MACMAC_B”,于是A据此更新表项192.168.1.2---MAC_B192.168.1.2---MAC_B’。之后,A192.168.1.2发送数据时,将会发送到MAC_B’也就是B’计算机。

2ARP病毒原理

上面分析了ARP的基本原理,可见ARP在网络中占据着极其重要的地位。然而这其中存在着一个危险的假设:所有的计算机都严格遵守ARP协议,不私自发送ARP报。不幸的是,这个假设往往被黑客利用。考虑如下情况:

计算机F被黑客植入了木马程序,该程序不断地向网内所有计算机发送“我的IP192.168.1.2,我的MACMAC_F”,这样网内计算机就会在ARP表中加入192.168.1.2---MAC_F,这样本来想发往192.168.1.2(计算机B)的数据,却被发送到了计算机F。考虑更为严重的情况,计算机B为网关,网内所有计算机发往因特网的数据都要先发送到B,然后由于F的扰乱,这些数据被发送到了FF上的黑客程序又可以把这些数据发往Internet远端的黑客,此时的黑客相当于控制了F所在的整个网络内的计算机。这种病毒叫做网关欺骗。

3.防治ARP病毒思路

3.1 查找ARP病源所在计算机

分析收到的ARP包,如果本机没有发送ARP请求包,而不断地收到ARP回答包,则分析此包的源MAC,从而确定病源计算机。

3.2 抵挡策略

发现之后,如果再收到病源MAC发来的ARP包,则丢弃。从而就避免了病源的干扰。如流行的360ARP防火墙就是实现类似的功能。

如果知道实际网关的MAC,则可以建立永久ARP表项,不再更新网关的ARP表项,从而避免了网关欺骗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值