什么是ARP病毒?
的有关信息介绍如下:磁碟机病毒的泛滥让很多普通用户熟悉了一个词汇——arp病毒。那么什么是“arp病毒”呢?首先,arp病毒并不是某一种病毒的名称,而是对利用arp协议的漏洞进行传播的一类病毒的总称。arp协议是TCP/IP协议组的一个协议,用于进行把网络地址翻译成物理地址(又称MAC地址)。arp攻击或者arp欺骗并不新鲜,但是把arp欺骗用于传播病毒,的确是近来的事情,而磁碟机病毒把这种手段的应用推向了一个新的高峰。那么,什么是arp欺骗呢?这需要我们仔细了解一下我们在上网的时候发生的一些细节:当我们在网上浏览网页或者收发电子邮件的时候,我们知道我们是在跟IP地址通信,因为浏览器会通过dns协议,把我们输入的域名,比如www.microsoft.com,翻译成IP地址,比如207.46.19.190。这个翻译过程仅仅是为了便于记忆。因此,当你浏览http://www.microsoft.com/的时候,你的计算机在不断地与www.microsoft.com这台服务器,也就是207.46.19.190这个IP地址的服务器,在进行通信。如下图所示:而在现实中,作为用户,我们自己的计算机跟服务器的距离通常非常遥远,不再一个“局域网”之内。打比方来说,正如你跟外地的女朋友要通信一样,你不能直接把信件直接交给她,而只能通过邮局寄出去。在IP网络中,同样地,你也需要借助邮局才能跟遥远的服务器进行通信,这个邮局就是你的网关。你可能也猜到了,跟现实中一样,在IP网络中也存在一个邮政网络,其中的邮局称为路由器(Router)。由此我们可以把上图的图景再细化一下:IP通信和邮政通信的模式是如此地类似,我们不妨再来复习一遍:在逻辑层次上,用户计算机和服务器直接通信,你的你的女朋友直接通信;在实际实现中,你通过邮局来收发你的信件,用户计算机则通过路由收发数据。但是,IP通信和邮政通信也存在一些微小而重要的差别。在邮政通信中,如果你要跟远方的女朋友通信,你不仅需要知道她的名字,还需要知道她的实际位置。你在信封上写上她的地址和名字。而在IP通信中,你要给远方的服务器通信,你的数据包的“收件人”会写上服务器的“名字”,就是服务器的IP地址。但是,“收件人地址”,却不是服务器的物理地址,而是网关的物理地址。你可能会感到惊讶,但是它就是这么工作的。而且这种方式自有其优点,你可以想象一下,你的女朋友正在周游世界,而你只需要信封上写上她的名字,邮局就可以想办法把信件送到她的手中!现在你知道,你的网关就是你的邮局,你与局域网以外的所有通信都必须经过它。如果你曾经更改过你的网络设置,你应该见国下面这个对话框,其中红色框住的部分就是网关的IP地址。然而,这还不够,你怎么知道邮局的实际位置呢?在现实中,你通过查阅地图,或者询问他人得到邮局的实际位置。在IP网络中,如果你的局域网规模比较小,你的网关可能就放在你的桌子上;如果你是ADSL用户,在输入帐号和密码建立ADSL连接后,你的网关就是电信运营商那里的一台服务器。但是,你的计算机如何知道这一切呢?他怎么知道该把信件交给谁呢?类似于购买地图,在IP网络中,找到网关的位置,或者局域网内部其他计算机的物理地址,需要要用到地址解析协议(Address Resolution Protocol,arp协议)。不幸的是,由于arp协议的漏洞,你的计算机可能被欺骗,而得到错误的网关物理地址——它将得到一张被恶意修改过的地图!arp协议的工作流程是这样设计的:需要的计算机会在网络中发送一个广播请求:谁是我设置的网关(比如192.168.1.1),请把你的物理地址报上来! 普通的计算机会忽略这个请求,而网关192.168.1.1则会根据请求把自己的物理地址告知请求的计算机。 得到回答之后的计算机会把这个地址缓存起来,在后续的通信中使用——它要经常跟邮局打交道,可不能每次都买地图。 然而,在第二步中存在一个关键的问题:计算机对于arp回应是不加鉴别的,一个恶意的计算机完全可以发送虚假的回复信息让其他计算机以为它是网关,从而获得偷窥甚至修改它们人通信的机会!你可能觉得买到假地图的机会其实不多,你错了。根据arp协议,计算机不仅在启动后第一次需要的时候发送arp请求,还定期发送arp请求,更新arp缓存,以确保自己得到的物理地址列表(它可能还需要知道局域网中其他计算机的物理地址)是最新的。在默认情况下,操作系统会每个两分钟更新一次arp缓存。你的计算机几乎每时每刻都可能上当受骗!现在你应该明白arp欺骗的原理了,它通过欺骗你的计算机,伪装成网关,成为你和网关之间的中间人,然后从你的邮件中偷偷地搜集你的个人信息,或者往你的邮包中塞入广告甚至病毒!下次你在迪吉凯尔的网页看到QQ的广告,你就应该意识到,这不是网站的问题。要么是你自己中病毒了,要么是你的网络中存在arp病毒。那么,该如何防范这种arp攻击呢?显然,要点在于确保arp缓存中的网关物理地址是真实可靠的。有两种方式可以确保可靠:一种方式是对arp应答信息进行鉴别。由于操作系统本身并未提供这样的选项,你需要另外一种称为arp防火墙的软件,它会对arp应答信息进行鉴别,现在有不少杀毒软件开始集成这种防火墙,只需要开启这种功能即可。第二种方式要麻烦一些,但是不需要另外安装软件。因为操作系统实际上提供了手动查看和修改arp缓存的途径。在命令行窗口中输入arp -a即可查看当前arp缓存的内容。在我的计算机上,情况是这样的:如果你的计算机被arp病毒欺骗了,那么其中显示的Physical Address就是发起arp欺骗的主机的物理地址。此时,你就需要运行另外一条命令:arp -d。这样就可以清空当前的arp缓存。然后你就可以再使用arp -s命令,静态地绑定真实的网关物理IP。注意,这种静态绑定只保持到计算机重启。也就是说,如果计算机重新启动了,你静态绑定的结果就会丢失。因此,你可能有必要制作一个批处理,在计算机每次启动的时候应用,内容格式如下:arp -darp -s arp -s <网关IP> <真实的网关物理地址>从哪里得知真实的网关物理地址呢?现在没有其他办法,要么,你在网络正常的时候记下来过;要么,你能够接触到你的网关,上面会有相应的描述;最后,请咨询你的网络管理员。通过这种方式,也可以有效防止病毒对您的计算机进行arp欺骗