ARP协议缺陷与欺骗攻击的防范

ZDNet软件频道 时间:2009-11-04 作者: | 比特网 我要评论()
本文关键词:arp病毒 ARP攻击 ARP欺骗 Windows
在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。

  一、ARP协议工作原理

  在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。

  TCP/IP协议栈维护着一个ARP cache表,在构造网络数据包时,首先从ARP表中找目标IP对应的MAC地址,如果找不到,就发一个ARP request广播包,请求具有该IP地址的主机报告它的MAC地址,当收到目标IP所有者的ARP reply后,更新ARP cache.ARP cache有老化机制。

  二、ARP协议的缺陷

  ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。

  三、常见ARP欺骗形式

  1、假冒ARP reply包(单播)

  XXX,I have IP YYY and my MAC is ZZZ!

  2、假冒ARP reply包(广播)

  Hello everyone! I have IP YYY and my MAC is ZZZ!

  向所有人散布虚假的IP/MAC

  3、假冒ARP request(广播)

  I have IP XXX and my MAC is YYY.

  Who has IP ZZZ? tell me please!

  表面为找IP ZZZ的MAC,实际是广播虚假的IP、MAC映射(XXX,YYY)

  4、假冒ARP request(单播)

  已知IP ZZZ的MAC

  Hello IP ZZZ! I have IP XXX and my MAC is YYY.

  5、假冒中间人

  欺骗主机(MAC为MMM)上启用包转发

  向主机AAA发假冒ARP Reply:

  AAA,I have IP BBB and my MAC is MMM,

  向主机BBB发假冒ARP Reply:

  BBB,I have IP AAA and my MAC is MMM

  由于ARP Cache的老化机制,有时还需要做周期性连续欺骗。

  四、ARP欺骗的防范

  1、运营商可采用Super VLAN或PVLAN技术

  所谓Super VLAN也叫VLAN聚合,这种技术在同一个子网中化出多个Sub VLAN,而将整个IP子网指定为一个VLAN聚合(Super VLAN),所有的Sub VLAN都使用Super VLAN的默认网关IP地址,不同的Sub VLAN仍保留各自独立的广播域。子网中的所有主机只能与自己的默认网关通信。如果将交换机或IP DSLAM设备的每个端口化为一个Sub VLAN,则实现了所有端口的隔离,也就避免了ARP欺骗

  PVLAN即私有VLAN(Private VLAN) ,PVLAN采用两层VLAN隔离技术,只有上层VLAN全局可见,下层VLAN相互隔离。如果将交换机或IP DSLAM设备的每个端口化为一个(下层)VLAN,则实现了所有端口的隔离。

  PVLAN和SuperVLAN技术都可以实现端口隔离,但实现方式、出发点不同。PVLAN是为了节省VLAN,而SuperVlan的初衷是节省IP地址。

  2、单位局域网可采用IP与MAC绑定

  在PC上IP+MAC绑,网络设备上IP+MAC+端口绑。但不幸的是Win 98/me、未打arp补丁的win 2000/xp sp1(现在大多都已经打过了)等系统 使用arp -s所设置的静态ARP项还是会被ARP欺骗所改变。

  如果网络设备上只做IP+MAC绑定,其实也是不安全的,假如同一二层下的某台机器发伪造的arp reply(源ip和源mac都填欲攻击的那台机子的)给网关,还是会造成网关把流量送到欺骗者所连的那个(物理)端口从而造成网络不通。

  对于采用了大量傻瓜交换机的局域网,用户自己可以采取支持arp过滤的防火墙等方法。推荐Look ‘n’Stop防火墙,支持arp协议规则自定义。

  最后就是使用ARPGuard啦(才拉到正题上),但它只是保护主机和网关间的通讯。

  五、ARPGuard的原理

  ARPGuard可以保护主机和网关的通讯不受ARP欺骗的影响。

  1、第一次运行(或检测到网关IP改变)时获取网关对应的MAC地址,将网卡信息、网关IP、网关MAC等信息保存到配置文件中,其他时候直接使用配置文件。

  2、移去原默认路由(当前网卡的)

  3、产生一个随机IP,将它添加成默认网关。

  4、默认网关IP 和网关的MAC绑定(使用DeleteIpNetEntry和CreateIpNetEntry修改ARP Cache表项)

  5、周期性检测ARP Cache中原默认网关(不是随机IP那个) 网关的MAC在ARP Cache的值是否被改写,若被改写就报警。

  6、针对有些攻击程序只给网关设备(如路由器或三层交换机)发欺骗包的情况。由于此时本机ARP Cache中网关MAC并未被改变,因此只有主动防护,即默认每秒发10个ARP reply包来维持网关设备的ARP Cache(可选)

  7、程序结束时恢复默认网关和路由。

  值得说明的是程序中限定了发包间隔不低于100ms,主要是怕过量的包对网络设备造成负担。如果你遭受的攻击太猛烈,你也可以去掉这个限制,设定一个更小的数值,保证你的通讯正常。

用户评论
用户名
评论内容
发表时间
ZDNet网友
2011-03-18 14:57:01
ZDNet网友
2010-05-21 00:49:14
ZDNet网友
2010-05-21 00:48:00
ZDNet网友
微软应该对自己的用户负责,如果用户完全使用xp升级微软win7,为什么要付出这样麻烦的代价?都是微软出品软件,且都是利用该软件获取信息以及处理文字、多媒体功能,微软应该尽可能方便用户!虽然有时候这样的请求也许跟不上时代技术发展的脚步,但是微软不要以此为借口,认为一切都理所应当,就不可以方便用户。还是要尽力,所谓拿人手短吃人嘴软,商业不正是讲求有商道吗!至少做人需诚实守信,尽可能帮助用户顺利、安全转换操作系统、各种必须软件功能尽可能兼容以及信息尽可能的少丢失!虽然这很大程度仅仅取决于微软等计算机专家、工程师的自我自律约束,我们普通用户恐怕很难知道微软究竟仅了多大力量为用户考虑,但是我相信真相会有被发现的一天,无论多久远。 微软从某种意义上来说,就是一个类似“掌握魔方”操作特别出神入化的公司。几乎奠定了电脑主要的“规则”,但是,我却相信不久将来我们会发现,电脑依然是非常有限的一个小系统而已!随着我们新的关键材料认知突破,电脑系统会真正被另一个革命性新电脑系统所取代,不要以为我这样的说法是无稽之谈不可实现,我却认为很有可能,只看这样的情况发生究竟是快还是慢,是早还是迟!变成历史的小玩具之后的电脑系统,微软会留下良好的历史声名吗?我们拭目以待! 网友::我爱佛祖
2010-02-03 13:52:55
- 发表评论 -
匿名
注册用户

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134