论文部分内容阅读
摘要:ARP协议主要实现了网络层地址到数据链路层地址的动态映射,并且ARP协议具有无序性、无确认性、动态性、无安全机制等特性。利用这些特性,攻击者可以较容易的实现在局域网内的ARP欺骗攻击,本文详细描述了利用ARP协议的特性进行欺骗攻击的原理和过程,包括主动攻击和被动攻击,表现形式有伪造ARP应答包和克隆主机。最后,提出了针对攻击可以采取的一些策略。
关键词:ARP;网络攻击;网络防御
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31261-01
ARP Attack and Defense Strategies
QIU Duo-li
(Department of Computer Science & Technology of HuaiBei Coal Industry Teachers College,Huaibei 235000,China)
Abstract: ARP protocol mainly implements dynamic mapping from network-layer's address to datalink-layer's address, however it has many characteristics like no sequence, no confirmation, dynamism, no safe mechanism .Therefore, attackers can easily cheat and attack in LAN by using ARP protocol.This text in detail describes the principle and the process of cheating and attacking by using ARP protocol, including active attack and passive attack. Finally, this text puts forward some measures to prevent the above cheat and attack .
Key words:ARP;Network attack;Network defense
1 引言
随着计算机网络的发展,网络安全问题显得越来越重要,各种网络安全问题也层出不穷。现在人们普通采用防火墙和将业务网与互联网隔离的方法来保证局域网的安全,但是对于来自内网的攻击和欺骗以及利用一些局域网协议的漏洞进行的攻击和欺骗则没有很好的对策,也容易被网络管理者忽视。本文针对目前比较常见的ARP欺骗进行了较深入的分析并提出了解决对策。
2 ARP原理
ARP:Address Resolution Protocol,全称是地址解析协议。在TCP/IP协议簇中,运行于网络层,封装在数据链路层协议帧中进行传输,功能是动态地提供IP地址与MAC地址的映射关系,动态是指这种映射关系在主机中有一个存在时间,如果在一段时间内某一条目没有被使用或者更新,则删除此映射,需要在一次访问时重新建立。Windows操作系统的主机上,可以在命令提示符下使用arp –a来查看本机的IP地址和MAC地址映射表,如图1。
ARP协议报文分为两种:请求报文和应答报文,请求报文用于向网络中发送广播请求以得到发送者目前的IP和MAC地址映射表中没有的目的主机的MAC地址。应答报文即工作站收到目的IP地址为自己的请求ARP报文后向请求者回送自己的MAC地址以完成解析过程。ARP协议包封装在Ethernet V2.0中的简要报文格式如图2。
Ethernet帧头部中的目的MAC地址在帧中承载的是ARP请求报文时,为广播地址,全为1,协议类型指明上层是ARP协议。
ARP数据包各字段的含义如下:
操作类型:代表ARP数据包类型。0表示ARP请求报文,1表示ARP应答报文。
源MAC地址:发送端MAC地址。
源IP地址:发送端协议地址,如果在协议类型中设定为0800,即为IP地址。
目的MAC地址:目的端MAC地址,在请求报文中,全为0。
目的IP地址:接收端协议地址,IP地址。
ARP应答协议报文和ARP请求协议报文基本相同,把请求报文的源IP和源MAC地址分别填入目的IP和目的MAC,将自己的IP和MAC地址填入源IP和源MAC。同时,置操作类型1,并由Ethernet帧发送。
当在局域网中一台主机希望与另一台主机(可以是本局域网,也可以是外网中的某一台,这时候就需要填入网关的MAC地址,由网关再进行路由解析发送。当使用网关互联网络的时候,主机中存储的并不是目的IP和MAC的映射条目,而是网关的IP和MAC映射条目。例当访问新浪网的时候,在主机中只会存储网关的IP和MAC映射,而不会存储新浪的IP和MAC映射)进行通信,它首先查找自己的IP/MAC地址映射表,如果表中存在对应地址,则直接填入Ethernet帧目的MAC字段,如果没有,则发送ARP请求,并置Ethernet帧的目的MAC地址为广播地址,置ARP请求报文的目的MAC地址为全0,这时,本网络中的所有主机都会接收到这一请求,上交至网络层,只有网络层为请求报文中目的IP地址的主机才对此进行响应,发送一个应答报文。源主机接收应答报文之后,将对应的目的IP地址和MAC地址作为一个新的条目加入到本主机的ARP高速缓存表中。最后将目的MAC填入Ethernet帧目的MAC中进行发送。
通过以上分析的可知,ARP工作的原理不需要通过双方的验证,也即是建立在双方互相信任的基础上,另外映射关系不是持久的,是有存在时间的,而且不去记忆是否有发送过请求报文。因此ARP协议具有动态性,无序性、无记忆性、无安全管理等特性,这也是ARP攻击的基础。
3 ARP攻击
ARP协议本身的缺陷导致了ARP攻击的可能。在所有的ARP攻击中,主要分为两类:一类是局域网内过行攻击,另外一类是经过有路由的网络进行攻击。其中又以局域网内的攻击为主。
当在局域网内时,可以有主动攻击和被动攻击,攻击的形式为伪造ARP应答和克隆主机攻击,以下图为例:
当C想获取A和B的通信内容,C可以在接收到A和B对对方的ARP请求的时候,延迟时间使用Sniff或者其它软件分别向A和B发送一个伪造的ARP应答包,或者可以主动的持续向A和B发送伪造的ARP应答包,在伪造的ARP应答包中,分别将自己的MAC地址和A以及B的对应条目添加到B和A主机中,同时打开C的IP包转发功能并持续向A和B发送伪造的ARP应答包,这样通信模式就变成了A C B,C可以完全截取A和B的通信数据。
另外一种是克隆主机攻击。与伪造ARP应答不同的是,当C想截获A和B通信的数据时,首先要使B无法与外界联系,这时C即可冒充B与A进行通信。使得B主机无法与外界通信,一是可以使用洪水攻击,二是C可以持续的依次伪造局域网中每个主机的ARP应答包并且在包中应答的MAC地址为不存在向B发送。这样B与外界的通信就完全隔离,无法提供服务。此时C可以修改自己的IP地址为B和IP并向A发送一个ARP应答,告诉A更新192.168.1.2对应的MAC地址为33-33-33-33-33-33,C就伪装成了B。
上面的论述是基于在一个局网内,如果是经过路由分段将无法获得成功,因为即使使用洪水攻击或者伪造包使得B无法提供服务,失去连接,局域网中的主机也只是在局域网中找B而根本就不会与C通信,因为主机路由表到B的路由是直接交付而不是经过网关交付,这时需要再伪造一个ICMP重定向报文广播包,告诉B所在的局域网中的所有主机:到达B的最短路径不是直接交付,而是路由,请重定向。这样所有主机在接收重定向报文后更新自己的路由表,C就可以伪装成B进行通信。
4 防御策略
(1)使用静态缓存,在Windows操作系统中,设置ARP静态映射的命令是arp –s,可以在网络中的所有主机上编辑批处理命令手动添加主机的静态缓存,设置静态ARP 缓存表只能防范ARP 请求欺骗, 无法防范ARP应答欺骗。而且,缺点是当网络中的主机数目较多时工作量大,而且当某一主机拥有的物理地址更换的时候,需要全部重新定义静态缓存。
(2)交换机端口绑定,每个端口和一个固定的MAC地址绑定,优点基本同使用静态缓存,但是只是具有网管功能的交换机才可以,工作量也较大。
(3)使用ARP代理服务器,在服务器上配置所有MAC地址和IP的映射表,同时将其它主机的ARP响应设置为只响应来自ARP代理服务器的应答。
(4)可以使用anti arp等防御ARP攻击的软件,简单易用。
(5)可以通过防火墙和修改系统的IP 策略, 拒收ICMP 重定向报文。
(6)建立虚拟局域网。在交换机上设置虚拟局域网, 在虚拟局域网的端口上设置广播隔离来防止ARP攻击。
(7)采用新的地址解析协议或者对原有的ARP协议进行完善,使之成为一种基于信任关系的地址解析协议。
参考文献:
[1]吴功宜.计算机网络[M].第2版.北京:清华大学出版社,2007.
[2]刘远生.算机网络安全[M].第1版.北京:清华大学出版社,2006.
[3]任侠,吕述望.ARP 协议欺骗原理分析与抵御方法[J].计算机工程,2003,29(9):127-128.
[4]RICHARD STEVENS W1 TCP/IP 详解(卷1:协议)[M].北京:机械工业出版社,20001.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:ARP;网络攻击;网络防御
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31261-01
ARP Attack and Defense Strategies
QIU Duo-li
(Department of Computer Science & Technology of HuaiBei Coal Industry Teachers College,Huaibei 235000,China)
Abstract: ARP protocol mainly implements dynamic mapping from network-layer's address to datalink-layer's address, however it has many characteristics like no sequence, no confirmation, dynamism, no safe mechanism .Therefore, attackers can easily cheat and attack in LAN by using ARP protocol.This text in detail describes the principle and the process of cheating and attacking by using ARP protocol, including active attack and passive attack. Finally, this text puts forward some measures to prevent the above cheat and attack .
Key words:ARP;Network attack;Network defense
1 引言
随着计算机网络的发展,网络安全问题显得越来越重要,各种网络安全问题也层出不穷。现在人们普通采用防火墙和将业务网与互联网隔离的方法来保证局域网的安全,但是对于来自内网的攻击和欺骗以及利用一些局域网协议的漏洞进行的攻击和欺骗则没有很好的对策,也容易被网络管理者忽视。本文针对目前比较常见的ARP欺骗进行了较深入的分析并提出了解决对策。
2 ARP原理
ARP:Address Resolution Protocol,全称是地址解析协议。在TCP/IP协议簇中,运行于网络层,封装在数据链路层协议帧中进行传输,功能是动态地提供IP地址与MAC地址的映射关系,动态是指这种映射关系在主机中有一个存在时间,如果在一段时间内某一条目没有被使用或者更新,则删除此映射,需要在一次访问时重新建立。Windows操作系统的主机上,可以在命令提示符下使用arp –a来查看本机的IP地址和MAC地址映射表,如图1。
ARP协议报文分为两种:请求报文和应答报文,请求报文用于向网络中发送广播请求以得到发送者目前的IP和MAC地址映射表中没有的目的主机的MAC地址。应答报文即工作站收到目的IP地址为自己的请求ARP报文后向请求者回送自己的MAC地址以完成解析过程。ARP协议包封装在Ethernet V2.0中的简要报文格式如图2。
Ethernet帧头部中的目的MAC地址在帧中承载的是ARP请求报文时,为广播地址,全为1,协议类型指明上层是ARP协议。
ARP数据包各字段的含义如下:
操作类型:代表ARP数据包类型。0表示ARP请求报文,1表示ARP应答报文。
源MAC地址:发送端MAC地址。
源IP地址:发送端协议地址,如果在协议类型中设定为0800,即为IP地址。
目的MAC地址:目的端MAC地址,在请求报文中,全为0。
目的IP地址:接收端协议地址,IP地址。
ARP应答协议报文和ARP请求协议报文基本相同,把请求报文的源IP和源MAC地址分别填入目的IP和目的MAC,将自己的IP和MAC地址填入源IP和源MAC。同时,置操作类型1,并由Ethernet帧发送。
当在局域网中一台主机希望与另一台主机(可以是本局域网,也可以是外网中的某一台,这时候就需要填入网关的MAC地址,由网关再进行路由解析发送。当使用网关互联网络的时候,主机中存储的并不是目的IP和MAC的映射条目,而是网关的IP和MAC映射条目。例当访问新浪网的时候,在主机中只会存储网关的IP和MAC映射,而不会存储新浪的IP和MAC映射)进行通信,它首先查找自己的IP/MAC地址映射表,如果表中存在对应地址,则直接填入Ethernet帧目的MAC字段,如果没有,则发送ARP请求,并置Ethernet帧的目的MAC地址为广播地址,置ARP请求报文的目的MAC地址为全0,这时,本网络中的所有主机都会接收到这一请求,上交至网络层,只有网络层为请求报文中目的IP地址的主机才对此进行响应,发送一个应答报文。源主机接收应答报文之后,将对应的目的IP地址和MAC地址作为一个新的条目加入到本主机的ARP高速缓存表中。最后将目的MAC填入Ethernet帧目的MAC中进行发送。
通过以上分析的可知,ARP工作的原理不需要通过双方的验证,也即是建立在双方互相信任的基础上,另外映射关系不是持久的,是有存在时间的,而且不去记忆是否有发送过请求报文。因此ARP协议具有动态性,无序性、无记忆性、无安全管理等特性,这也是ARP攻击的基础。
3 ARP攻击
ARP协议本身的缺陷导致了ARP攻击的可能。在所有的ARP攻击中,主要分为两类:一类是局域网内过行攻击,另外一类是经过有路由的网络进行攻击。其中又以局域网内的攻击为主。
当在局域网内时,可以有主动攻击和被动攻击,攻击的形式为伪造ARP应答和克隆主机攻击,以下图为例:
当C想获取A和B的通信内容,C可以在接收到A和B对对方的ARP请求的时候,延迟时间使用Sniff或者其它软件分别向A和B发送一个伪造的ARP应答包,或者可以主动的持续向A和B发送伪造的ARP应答包,在伪造的ARP应答包中,分别将自己的MAC地址和A以及B的对应条目添加到B和A主机中,同时打开C的IP包转发功能并持续向A和B发送伪造的ARP应答包,这样通信模式就变成了A C B,C可以完全截取A和B的通信数据。
另外一种是克隆主机攻击。与伪造ARP应答不同的是,当C想截获A和B通信的数据时,首先要使B无法与外界联系,这时C即可冒充B与A进行通信。使得B主机无法与外界通信,一是可以使用洪水攻击,二是C可以持续的依次伪造局域网中每个主机的ARP应答包并且在包中应答的MAC地址为不存在向B发送。这样B与外界的通信就完全隔离,无法提供服务。此时C可以修改自己的IP地址为B和IP并向A发送一个ARP应答,告诉A更新192.168.1.2对应的MAC地址为33-33-33-33-33-33,C就伪装成了B。
上面的论述是基于在一个局网内,如果是经过路由分段将无法获得成功,因为即使使用洪水攻击或者伪造包使得B无法提供服务,失去连接,局域网中的主机也只是在局域网中找B而根本就不会与C通信,因为主机路由表到B的路由是直接交付而不是经过网关交付,这时需要再伪造一个ICMP重定向报文广播包,告诉B所在的局域网中的所有主机:到达B的最短路径不是直接交付,而是路由,请重定向。这样所有主机在接收重定向报文后更新自己的路由表,C就可以伪装成B进行通信。
4 防御策略
(1)使用静态缓存,在Windows操作系统中,设置ARP静态映射的命令是arp –s,可以在网络中的所有主机上编辑批处理命令手动添加主机的静态缓存,设置静态ARP 缓存表只能防范ARP 请求欺骗, 无法防范ARP应答欺骗。而且,缺点是当网络中的主机数目较多时工作量大,而且当某一主机拥有的物理地址更换的时候,需要全部重新定义静态缓存。
(2)交换机端口绑定,每个端口和一个固定的MAC地址绑定,优点基本同使用静态缓存,但是只是具有网管功能的交换机才可以,工作量也较大。
(3)使用ARP代理服务器,在服务器上配置所有MAC地址和IP的映射表,同时将其它主机的ARP响应设置为只响应来自ARP代理服务器的应答。
(4)可以使用anti arp等防御ARP攻击的软件,简单易用。
(5)可以通过防火墙和修改系统的IP 策略, 拒收ICMP 重定向报文。
(6)建立虚拟局域网。在交换机上设置虚拟局域网, 在虚拟局域网的端口上设置广播隔离来防止ARP攻击。
(7)采用新的地址解析协议或者对原有的ARP协议进行完善,使之成为一种基于信任关系的地址解析协议。
参考文献:
[1]吴功宜.计算机网络[M].第2版.北京:清华大学出版社,2007.
[2]刘远生.算机网络安全[M].第1版.北京:清华大学出版社,2006.
[3]任侠,吕述望.ARP 协议欺骗原理分析与抵御方法[J].计算机工程,2003,29(9):127-128.
[4]RICHARD STEVENS W1 TCP/IP 详解(卷1:协议)[M].北京:机械工业出版社,20001.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。