欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 科技知识

arp协议的缺点介绍及防范

科普小知识2021-11-20 01:58:03
...

地址解析协议,即ARP(Address ResoluTIon Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

一、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协议规则自定义。