1 引言
WW.W_PLCJS_COM-PLC-技.术_网
——可——编——程——控-制-器-技——术——门——户
随着一系列网络技术应用的蓬勃发展,Internet正在越来越多地离开原来单纯的学术研究环境,融入到社会的诸多方面。一方面,网络用户成分越来越多样化,出于各种目的的网络入侵和攻击越来越频繁;另一方面,网络应用越来越深地渗透到金融、商务、国防等等关键要害领域。换言之,Internet网的安全,包括其上的信息数据安全和网络设备服务的运行安全,日益成为与国家、政府、企业、个人的利益休戚相关的“大事情”。安全保障能力是新世纪一个国家综合国力、经济竞争实力和生存能力的重要组成部分。确保网络的安全,首先透彻理解各种网络攻击原理,才能找到合适的应对方式,以达到防御的目的,要保证网络外部的安全的同时,同样要保证网络内部的安全,在一个局域网络,各种信息是以广播的方式传播,如何防止内部的攻击,就提出来了,其中,ARP Spoof就是网络攻击的一种方式,也是网络安全一个容易忽略重要方面。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
2 ARP协议及缺陷
WWW_PLC※JS_COM-PmLC-技.术_网
——可——编——程——控-制-器-技——术——门——户
ARP(Address Resolution Protocol)地址解析协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)。ARP协议是属于数据链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核必须知道目的端的硬件地址才能发送数据,除非使用点对点的连接是不需要ARP协议。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
在实现TCP/IP协议的网络环境下,当一个IP数据包在不同的网段上路由时,到哪个地方需要依靠路由器的路由表来决定。但是,当IP数据包到达该网络后,由哪台计算机响应这个IP数据包是依靠该IP数据包中所包含的硬件MAC地址来识别。或者说,只有计算机的硬件MAC地址和该IP数据包中的硬件MAC地址相同的机器才会应答这个IP数据包,因为在网络中,每一台主机都会有发送IP数据包的时候,所以,在每台主机的内存中,都有一个ARP高速缓存存储着IP和硬件MAC的映射表。通常是动态的映射表(该ARP表可以手工添加静态条目)。也就是说,该映射表不断被主机在一定的时间间隔后刷新。这个时间间隔就是ARP高速缓存的超时时间,大多数定义一个比较适合的时间。WW.W_PLCJS_COM-PLC-技.术_网
与大多数协议不同,ARP分组中的数据没有固定格式的首部,以太网上的ARP报文格式如附图所示。WWcW_PLCJS_COM-PLC-技.术_网
plcjs.技.术_网
附图 以太网上ARP报文格式plcjs.技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
硬件类型字段指明了发送方想知道的硬件接口类型;协议类型字段指明了发送方提供的高层协议地址类型;硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;操作字段指明请求类型,ARP请求(1)、ARP响应(2)、RARP请求(3)或RARP响应(4)。WWW_P※LCJS_COM-PLC-)技.术_网
ARP协议的工作:ARP协议并不因为发送了ARP请求才接收ARP应答,而是当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。故ARP工作时,首先查询本地ARP缓存,如果有IP与MAC地址映射,就使用它,否则就送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP地址和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信,因此使用ARP的计算机维护着一个高速缓存,存放最近获取的IP地址映射物理地址的关系。ARP协议为了适应软状态,需要使用一个计时器,当计时器超时间后则删除状态信息。这个在ARP协议中软状态可能成为网络安全的缺陷,可以利用它实施ARP Spoof攻击。plcjs.技.术_网
3 基于ARP协议的攻击
WWW_PLCJS@_COM%-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
通过对上面对ARP协议格式及工作方式的分析,明白了ARP弱点所在:当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址映射存储在ARP缓存中,同时,ARP高速缓存具有超时,从而更新缓存。如果有一个不被信任的节点对本地网络具有写访问许可权,那么就会存在某种更大风险。这样一台机器可以发布虚假的ARP报文并将所有通信都转向它自己,然后它就可以扮演某些机器,或者顺便对数据流进行简单的修改。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户