局域网arp攻击原理及防护

 一、arp攻击时的现象

 网络时断时续,但网络连接正常,部分PC机不能上网,或者所有电脑不能上网,无法打开网页或打开网页缓慢,有些时候可能表现为某些软件无法连接网络或某些功能不可用,如果可以排除非硬件设备故障,很有可能就是arp病毒或某些arp攻击软件在捣乱。

二、arp攻击的原理

    1、网络模型的概念。

 我们首先来了解一下常用的网络数模型的概念。

 按照OSI (Open Systems Interconnection Reference Model 开放系统互联参考模型) 的规定,将网络系统划分为7层结构,每一个层次上运行着不同的协议和服务,并且能够接受下层提供的数据,也能为上层发送需求的数据,从而完成网络数据交换的功能,如图1:

osi net model

图1 

 OSI模型是一个参考标准,并不是严格的网络应用模型,就现阶段,实际中应用最广泛的是TCP/IP体系模型,在此模型上,将网络划分为四层,每一个层次上也运行着不同的协议和服务,上下层之间互相配合,完成网络数据交换的功能,如图2:

图2

 在TCP/IP模型上,每一层运行着不同的协议,我们今天讨论的arp协议就工作在网络层上,详细如下表1:

 

网络模型层

工作协议

应用层

Http,Ftp,Smtp,Telnet…..

传输层

Tcp,Udp…..

网络层

IP,ICMP,IGMP,ARP……

网络接口层

 

表1 

    2、arp协议简介

 ARP全称为Address Resolution Protocol,即:地址解析协议。所谓“地址解析”就是主机在发送数据包前将目标主机IP地址转换成目标主机MAC地址的过程。


 大家都知道IP地址是两台计算机通迅的“门牌号”,主机必须知道目标主机的IP地址才能和它通信 ,但最终在网卡是要靠物理地址即MAC地址来识别目标的,MAC地址是48位的,通常表示为 12个16进制数,每2个16进制数之间用“-”或者冒号隔开,如:00-0B-2F-13-1A-11就是一个MAC地址。每一块网卡都有其全球唯一的MAC地址,这是由硬件厂商在出厂时控制的,网卡之间发送数据,只能根据对方网卡的MAC地址进行发送,这时就需要一个将高层数据包中的IP地址转换成低层MAC地址的协议,而ARP协议就是来完成这一任务的。
 ARP协议的基本功能就是 通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 arp协议在工作时,会维持一个缓存在本地的IP地址/MAC地址 映射表,这个表也叫ARP缓存表,在局域网的任何一台主机中,都有一个ARP缓存表,该表中保存这网络中各个电脑的IP地址和MAC地址的对照关系。 当这台主机向同局域网中另外的主机发送数据的时候,会根据ARP缓存表里的对应关系进行发送。这个表可以是静态的也可以是动态的,静态的不会随着接收的广播包来改变其内容,后者却反之,它是随着接收的广播包来改变内容的。


   3、arp工作过程

 假设局域网里有三台主机,它们是A、B、C,各主机对应的IP地址为:A--192.168.0.2; B--192.168.0.8; C--192.168.0.9;网格拓扑图如图3:


 现在,A电脑要给B电脑发送数据了,在A电脑内部,arp工作的网络层的数据包已经准备传送到低层的网络接口层,但这时只知道目的主机B电脑的IP地址,不知道B主机的MAC地址。这时候,A电脑要先查询自身的arp缓存表,查看里 面是否有192.168.0.8这台电脑的MAC地址,如果有,就将封装在数据包的外面。直接发送即可。如果没有,这时S电脑要向全网络发送一个ARP广播包,大声喊道:“我的IP是192.168.0.2,硬件地址 是MAC_A,我想知道IP地址为192.168.0.8的主机的硬件地址是多少?” 这时,全网络的电脑都收到该ARP广播包了,包括B电脑和C电脑。C电脑一看其要查询的IP地址不是自己的,就将该数据包丢弃不予理会。而B电脑一看IP 地址是自己的,则回答A电脑:“我的IP地址是192.168.0.8,我的硬件地址是MAC_B”,这条信息会单独向A电脑发送的,并非刚才的广播。现在A电脑已经知道目的电脑B的MAC地址了,它可以将要发送的数据包上贴上目的地址MAC_B,发送出去了。同时它还会 动态更新自身的ARP缓存表,将192.168.0.8-MAC_B这一条记录添加进去,这样,等A电脑下次再给B电脑发送数据的时候,就不用发送ARP广播包了。这就是正常情况下的数据包发送过程。

 

 看上去以上过程很完美,但这一切都是建立在对局域网中电脑全部信任的基础上的,也就是说,电脑不对arp包经行验证,都认为它是正确的,正是这个先天的不足,才有了arp攻击的横行,局域网中一旦有非法者(指主动攻击或感染arp病毒,或者是被远程控制的电脑)的存在,如在上述数据发送中,当A电脑向全网询问“我想知道IP地址为 192.168.0.8的主机的硬件地址是多少?”后,C电脑也回应了,它也向A电服发送:“我的IP地址是192.168.0.8,我的硬件地址是MAC_C” ,注意,此时它是冒充自己是B电脑的IP地址,而MAC地址竟然写成自己的!由于C电脑不停地发送这样的应答数据包,本来A电脑的ARP缓存表中已经保存了正确的记录:192.168.0.8-MAC_B,但是由于C电脑的不停应答,这时A电脑并不知道C电脑发送的数据包是伪造的,导致A电脑又重新动态更新自身的ARP缓存表,这回记录成:192.168.0.8-MAC_C,很显然,这是一个错误的记录,这样就导致以后凡是A脑要发送给B电脑,也就是IP地址为192.168.0.8这台主机的数据,都将会发送给MAC地址为MAC_C的主机,这样,C电脑暗中就会劫持了由A电脑发送给B电脑的数据!这就是ARP欺骗的过程。

 

 当然,如果C电脑发送冒充网关的广播包,这样,C电脑就将会监听整个局域网发送给互联网的数据包!然后C电脑就会采用破解,分析数据包来获得包中的敏感信息。使用户的信息安全得到威胁。另外,C电脑还可以替真的网关“分忧”,代替网关执行一些行为,比如,返回一个http请求的回应,当然,这个回应是再加工过的,它可以给这个回应植入一段“木马程序”,使接收这个回应的主机不知不觉中被感染木马病毒。


三、arp攻击的防治

    1、arp攻击源的定位

 当发生arp攻击时,面对着局域网中成百台电脑,一个一个地检测显然不是好办法。其实我们只要利用ARP 病毒的基本原理:频繁发送伪造的ARP欺骗广播,中毒电脑自身伪装成网关的等特性,就可以快速锁定中毒电脑。首先,我们在设计网络时,要保留一份正常时的IP/MAC地址对应信息表单,在出现问题时利用它迅速找到攻击源,下需提供几种检查攻击源的方法:

 1、命令行法
  
 这个方法是最便捷的方法,利用系统自带的arp命令,查看arp缓存表,然后跟据正确的ip/mac映射表来确定攻击源,查询命令为 arp -a

 2、软件工具法
 利用第三方软件,比如一些arp防火墙以及一些专杀工具,可以有效的查出攻击源并进行有效防护,比如金山的arp防火墙等。
 
 3、包嗅探法

 利用抓包工具查看有异常包发送的主机来定位攻击源


    2、arp攻击源的防护

 由于arp攻击源于网络协议的先天不足,所以,完全杜绝攻击源短时期不是一个现实的问题,但我们可以采用加强自身来进行有效的防护,一般常

用的有以下几种。
 
 1、双向绑定法
 就是在路由器或网关以及主机两边建立静态的IP-MAC映射关系,在路由器里设置IP-MAC映射,在客户机方面利用arp命令建立静态arp缓存,命令

如下所示:
 arp -d
 arp -s 192.168.0.1  00-e0-4c-8c-9a-47
 因为每次开机,会重建arp缓存表,所以,可以将此命令作为批处理文件,放入启动让其自己运行

 

2、arp软件防火墙

 在局域网里通一布署相应的软件,比如 金山arp防火墙,带arp防护功能的相关杀毒软件,都能有效防护此类攻击,确保本机通信的安全。

 

3、采用带arp防护的硬件产品

 很多交换机和路由器厂商也推出了各自的防御ARP病毒的软硬产品,如:华为的H3C AR 18-6X 系列全千兆以太网路由器就可以实现局域网中的ARP病毒免疫,该路由器提供MAC和IP地址绑定功能,可以根据用户的配置,在特定的IP地址和MAC地址 之间形成关联关系。对于声称从这个IP地址发送的报文,如果其MAC地址不是指定关系对中的地址,路由器将予以丢弃,是避免IP地址假冒攻击的一种方式。

 

 

19:02:252009-09-26

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值