论文部分内容阅读
[摘 要]本文介绍了局域网中应用广泛的ARP协议的主要内容和利用ARP协议进行网络供给的原理和办法,在此基础上如何和进行防御攻击的发生和一些应对办法。最后介绍了利用ARP协议探查网络中被动攻击的办法。
[关键词]ARP协议、Sniffer
中图分类号:TP393.08 文献标识码:A 文章编号:1009-914X(2017)24-0388-01
随着科技的发展,企业的日常生产和工作越来越依赖计算机网络,然而面向网络的攻击却日益严重。其中ARP协议是局域网中应用广泛的协议,利用ARP协议的攻击成为威胁网络安全的一个重要威胁。下面就介绍一下ARP协议的内容及攻击原理和防御方法。
ARP数据包格式:
硬件类型:表示硬件地址的类型。它的值为1表示以太网地址;
协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址;
硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
操作类型(OP):1表示ARP请求,2表示ARP应答;
發送端MAC地址:发送方设备的硬件地址;
发送端IP地址:发送方设备的IP地址;
目标MAC地址:接收方设备的硬件地址。
目标IP地址:接收方设备的IP地址。
ARP工作过程
当主机通过路由选择确定了在数据连路层应该将数据包交给谁后,主机使用的ARP解析过程来确定目标主机的MAC地址。ARP程序首先在本地主机的缓存中寻找,如果找到地址,以便让此包转换成相应的格式,传送到目的主机。如果未找到,ARP程序就在网上广播一个特殊格式的消息,看哪个机器知道与这个IP地址相关的MAC地址。与这个IP地址相符的主机首先更新本地主机的缓存然后发送ARP响应包回应其MAC地址。
ARP缓存
ARP请求是一种广播包,为了提高网络的效率,在每个主机中通常缓存着本网络IP地址和MAC地址的映射表,即ARP缓存。
ARP协议的攻击应用
ARP缓存的污染
发送错误的发送者MAC地址的ARP请求和发送错误发送者MAC地址的ARP应答,这两种行为都将使接受到的ARP包的主机自动更新其ARP缓存,记录错误的MAC-IP地址映射。事实上,ARP欺骗就是基于这种原理来实现的。
三台主机位于一个交换网络的环境中,其中A是网关:
A:IP地址192.168.0.1 硬件地址AA:AA:AA:AA:AA:AA
B:IP地址192.168.0.2 硬件地址BB:BB:BB:BB:BB:BB
C:IP地址192.168.0.3 硬件地址CC:CC:CC:CC:CC:CC
在局域网中192.168.0.2和192.168.0.3都是通过网关192.168.0.1上网的,假定攻击者的系统为192.168.0.2,他希望听到192.168.0.3的通信,那么我们就可以利用ARP欺骗实现。
主机A是通过局域网中的网关,局域网中的每一个节点的外向的通信都要通过它。主机B想要听主机C的通信,它需要先使用ARP欺骗,让主机C认为它就是主机A,这个时候他发现一个IP地址为192.168.0.1,为例地址为BB:BB:BB:BB:BB:BB的ARP响应包给主机C,这样主机C会把发往主机A的包发往主机B。同理,还要让网关A相信它 就是主机C,向网关A发送一个IP地址为192.168.0.3,物理地址为BB:BB:BB:BB:BB:BB的包。
但是在这种情况下 主机C挥发现自己无法上网。这就是需要同时在主机B上即要转发从主机A到主机C的包,又要转发从主机C到主机A的包。这样主机C就能正常工作,但收发的数据包却被"透明“的主机B 一览无余了。
ARP欺骗的危害
ARP欺骗的危害包括:ARP欺骗将用错误的MAC-IP地址映射污染主机的ARP缓存;使主机丧失与某IP主机的通信能力。另外,处于底层的ARP欺骗也是协议高层实现其他形式的欺骗的基础。
ARP欺骗的防范:
知道了ARP欺骗的方法和危害,我们给出一些初步的防御方法:
1、不要把网络安全信任关系建立在IP地址的基础上或硬件MAC地质基础上(RARP同样存在欺骗问题),理想的关系应该建立在IP+MAC基础上
2、设置静态的MAC-IP对应表,不要让主机刷新你设定好的对应表;
3、除非很有必要,否则停止使用ARP,将MAC-IP映射作为永久条目保存在对应表中,在LINUX下用IFCONFIG-ARP可以使网卡驱动程序停止使用ARP;
4、使用代理网关发出外出的通讯。
防御应用
用ARP探测网络中的Sniffer
嗅探器(Sniffer)一直以来都是一种让人恼火的静态攻击软件,它就像一个监视器,你的“一举一动”都在它的监视之下。所以,想个办法出来检查网络中是否存在Sniffer,这是非常必要的。
Sniffer原理
要了解探测Sniffer的方法,就先得了解Sniffer的原理。首先,让我们来看一看局域网中是怎样传输数据的。当一个数据包的目的地是局域网内的某台计算机时,此数据包将以广播的形式被发送到网内每一台计算机上。而每台计算机的网卡将分析数据包中的目的Mac地址(即以太网地址),如果此地址为本计算机Mac地址或为广播地址(FF-FF-FF-FF-FF-FF),那么,数据包将被接收,而如果不是,网卡将直接将其丢弃。但是,这里有一个前提,就是接收端计算机的网卡是在正常模式下工作的。而如果网卡被设置为混杂模式,那么它就可以接收所有经过的数据包了(当然也包括目的地不是本机的数据包)。就是说,只要是发送到局域网内的数据包,都会被设置成混杂模式的网卡所接收!这也就是Sniffer的基本原理。
探测局域网中的Sniffer
鉴于Sniffer的原理是设置网卡为混杂模式,那么,我们就可以想办法探测网络中被设置为混杂模式的网卡,以此来判断是否存在Sniffer。
这里,让我们再来看看计算机接收数据包的规则。前面已经讲过,在正常模式下,首先,由网卡判断数据包的目的Mac地址,如果为本机Mac地址或为广播地址,那么数据包将被接收进入系统核心,否则将被丢弃。而如果网卡被设置为混杂模式,那么所有的数据包都将直接进入系统核心。数据包到达系统核心后,系统还将进一步对数据包进行筛选:系统只会对目的Mac地址为本机Mac地址或广播地址的数据包做出响应――如果接收到的是ARP请求报文,那么系统将回馈一个ARP应答报文。但是,不同的是,系统核心和网卡对广播地址的判断有些不一样:以Windows系统为例,网卡会判断Mac地址的所有六位,而系统核心只判断Mac地址的前两位(Win98甚至只判断前一位),也就是说,对于系统核心而言,正确的广播地址FF-FF-FF-FF-FF-FF和错误的广播地址FF-FF-FF-FF-FF-FE是一样的,都被认为是广播地址,甚至FF-FF-00-00-00-00也会被系统核心认为是广播地址!
如果我们构造一个目的Mac地址为FF-FF-FF-FF-FF-FE的ARP请求报文,那么,对于在正常工作模式下的网卡,数据包将被丢弃,当然也就不会回馈任何报文;而对于在混杂模式下网卡,數据包将被接收进入系统核心。而系统核心会认为这个Mac地址是广播地址,因此就会回馈一个ARP应答报文。这样,我们就可以判断出这台机器上存在Sniffer。
[关键词]ARP协议、Sniffer
中图分类号:TP393.08 文献标识码:A 文章编号:1009-914X(2017)24-0388-01
随着科技的发展,企业的日常生产和工作越来越依赖计算机网络,然而面向网络的攻击却日益严重。其中ARP协议是局域网中应用广泛的协议,利用ARP协议的攻击成为威胁网络安全的一个重要威胁。下面就介绍一下ARP协议的内容及攻击原理和防御方法。
ARP数据包格式:
硬件类型:表示硬件地址的类型。它的值为1表示以太网地址;
协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址;
硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
操作类型(OP):1表示ARP请求,2表示ARP应答;
發送端MAC地址:发送方设备的硬件地址;
发送端IP地址:发送方设备的IP地址;
目标MAC地址:接收方设备的硬件地址。
目标IP地址:接收方设备的IP地址。
ARP工作过程
当主机通过路由选择确定了在数据连路层应该将数据包交给谁后,主机使用的ARP解析过程来确定目标主机的MAC地址。ARP程序首先在本地主机的缓存中寻找,如果找到地址,以便让此包转换成相应的格式,传送到目的主机。如果未找到,ARP程序就在网上广播一个特殊格式的消息,看哪个机器知道与这个IP地址相关的MAC地址。与这个IP地址相符的主机首先更新本地主机的缓存然后发送ARP响应包回应其MAC地址。
ARP缓存
ARP请求是一种广播包,为了提高网络的效率,在每个主机中通常缓存着本网络IP地址和MAC地址的映射表,即ARP缓存。
ARP协议的攻击应用
ARP缓存的污染
发送错误的发送者MAC地址的ARP请求和发送错误发送者MAC地址的ARP应答,这两种行为都将使接受到的ARP包的主机自动更新其ARP缓存,记录错误的MAC-IP地址映射。事实上,ARP欺骗就是基于这种原理来实现的。
三台主机位于一个交换网络的环境中,其中A是网关:
A:IP地址192.168.0.1 硬件地址AA:AA:AA:AA:AA:AA
B:IP地址192.168.0.2 硬件地址BB:BB:BB:BB:BB:BB
C:IP地址192.168.0.3 硬件地址CC:CC:CC:CC:CC:CC
在局域网中192.168.0.2和192.168.0.3都是通过网关192.168.0.1上网的,假定攻击者的系统为192.168.0.2,他希望听到192.168.0.3的通信,那么我们就可以利用ARP欺骗实现。
主机A是通过局域网中的网关,局域网中的每一个节点的外向的通信都要通过它。主机B想要听主机C的通信,它需要先使用ARP欺骗,让主机C认为它就是主机A,这个时候他发现一个IP地址为192.168.0.1,为例地址为BB:BB:BB:BB:BB:BB的ARP响应包给主机C,这样主机C会把发往主机A的包发往主机B。同理,还要让网关A相信它 就是主机C,向网关A发送一个IP地址为192.168.0.3,物理地址为BB:BB:BB:BB:BB:BB的包。
但是在这种情况下 主机C挥发现自己无法上网。这就是需要同时在主机B上即要转发从主机A到主机C的包,又要转发从主机C到主机A的包。这样主机C就能正常工作,但收发的数据包却被"透明“的主机B 一览无余了。
ARP欺骗的危害
ARP欺骗的危害包括:ARP欺骗将用错误的MAC-IP地址映射污染主机的ARP缓存;使主机丧失与某IP主机的通信能力。另外,处于底层的ARP欺骗也是协议高层实现其他形式的欺骗的基础。
ARP欺骗的防范:
知道了ARP欺骗的方法和危害,我们给出一些初步的防御方法:
1、不要把网络安全信任关系建立在IP地址的基础上或硬件MAC地质基础上(RARP同样存在欺骗问题),理想的关系应该建立在IP+MAC基础上
2、设置静态的MAC-IP对应表,不要让主机刷新你设定好的对应表;
3、除非很有必要,否则停止使用ARP,将MAC-IP映射作为永久条目保存在对应表中,在LINUX下用IFCONFIG-ARP可以使网卡驱动程序停止使用ARP;
4、使用代理网关发出外出的通讯。
防御应用
用ARP探测网络中的Sniffer
嗅探器(Sniffer)一直以来都是一种让人恼火的静态攻击软件,它就像一个监视器,你的“一举一动”都在它的监视之下。所以,想个办法出来检查网络中是否存在Sniffer,这是非常必要的。
Sniffer原理
要了解探测Sniffer的方法,就先得了解Sniffer的原理。首先,让我们来看一看局域网中是怎样传输数据的。当一个数据包的目的地是局域网内的某台计算机时,此数据包将以广播的形式被发送到网内每一台计算机上。而每台计算机的网卡将分析数据包中的目的Mac地址(即以太网地址),如果此地址为本计算机Mac地址或为广播地址(FF-FF-FF-FF-FF-FF),那么,数据包将被接收,而如果不是,网卡将直接将其丢弃。但是,这里有一个前提,就是接收端计算机的网卡是在正常模式下工作的。而如果网卡被设置为混杂模式,那么它就可以接收所有经过的数据包了(当然也包括目的地不是本机的数据包)。就是说,只要是发送到局域网内的数据包,都会被设置成混杂模式的网卡所接收!这也就是Sniffer的基本原理。
探测局域网中的Sniffer
鉴于Sniffer的原理是设置网卡为混杂模式,那么,我们就可以想办法探测网络中被设置为混杂模式的网卡,以此来判断是否存在Sniffer。
这里,让我们再来看看计算机接收数据包的规则。前面已经讲过,在正常模式下,首先,由网卡判断数据包的目的Mac地址,如果为本机Mac地址或为广播地址,那么数据包将被接收进入系统核心,否则将被丢弃。而如果网卡被设置为混杂模式,那么所有的数据包都将直接进入系统核心。数据包到达系统核心后,系统还将进一步对数据包进行筛选:系统只会对目的Mac地址为本机Mac地址或广播地址的数据包做出响应――如果接收到的是ARP请求报文,那么系统将回馈一个ARP应答报文。但是,不同的是,系统核心和网卡对广播地址的判断有些不一样:以Windows系统为例,网卡会判断Mac地址的所有六位,而系统核心只判断Mac地址的前两位(Win98甚至只判断前一位),也就是说,对于系统核心而言,正确的广播地址FF-FF-FF-FF-FF-FF和错误的广播地址FF-FF-FF-FF-FF-FE是一样的,都被认为是广播地址,甚至FF-FF-00-00-00-00也会被系统核心认为是广播地址!
如果我们构造一个目的Mac地址为FF-FF-FF-FF-FF-FE的ARP请求报文,那么,对于在正常工作模式下的网卡,数据包将被丢弃,当然也就不会回馈任何报文;而对于在混杂模式下网卡,數据包将被接收进入系统核心。而系统核心会认为这个Mac地址是广播地址,因此就会回馈一个ARP应答报文。这样,我们就可以判断出这台机器上存在Sniffer。