基于局域网的ARP攻击原理及其防御算法
摘要:为了更有效的防御ARP攻击,本文分析了局域网中ARP协议的工作过程以及欺骗原理,给出了一种有效的充分考虑局域网安全性的防御算法,通过分析,可以认为这一算法是一个可以在网络安全防范中充分应用的,值得大力推广。
关键词:ARP攻击;ARP协议;ARP防御
中图分类号:TP393.08 文献标识码:A 文章编号:1674-7712 (2012) 10-0131-01
一、ARP协议概述
ARP,也叫做地址解析协议,其功能是实现用IP地址经过一系列的转换形成物理地址。在常用的以太网环境下,为了能够向目标主机传送正确的报文,我们要把目的主机的32位IP地址通过一定的方式转换成为48位以太网的地址。要实现这一功能,需要有一组服务能够实现将IP地址转换为物理地址,这组协议称为ARP协议。
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
二、ARP攻击原理
ARP欺骗分为二种,第一种ARP欺骗是截获网关数据。它通过向路由器发送一系列错误的内网MAC地址,并按照一定的频率不断进行发送,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常终端无法收到信息。
第二种ARP欺骗的原理是——伪造网关。它的原理是通过建立伪造的网关,让被它欺骗的PC机向伪造的网关发数据,而不是通过正常的路由器途径上网。
三、ARP攻击防御算法
主机在接收到ARP请求报文,和接收到相对滞后的ARP应答报文,都有可能发生ARP欺骗。因此,我们基于以下三点来设计防御算法:
1.当主机接收到一个ARP 请求情况的时候,向发送方回复一个应答报文,但是不更新ARP缓冲区,并再向源主机发送一个ARP请求,发送请求报文后的过程按第3点来处理。2.对于所有的未发送过ARP请求,而主机接收到的ARP 应答报文采取丢弃操作。3.主机在先发送了ARP 请求的情况下,接受到目标IP 回复的ARP 应答,判断是否是目标主机发送的第一个应答报文,如果是,则更新缓冲区,如果不是,与之前接收的应答包对比,判断是否要丢弃该包。
为了实现这一算法,我们在程序中建立两个链表:一个是request,用来存储的是发送过请求报文的目标主机的IP地址;另一个是response,用来存放那些收到了ARP应答的IP地址与MAC地址的映射对。我们将两个线性表设置为动态更新模式,在算法中编写一个固定时间段的代码,超过编写的时间段的记录会被自动删除。这样我们便可以很方便的实现线性表的动态更新模式。算法的具体模块如下:
void rec_ARP_req() //接收ARP请求处理模块
{
接收ARP请求报文;
if(目标IP=本机IP)
{
回复ARP请求;
sen_ARP_req(); //调用发送ARP请求函数发送请求
}
else
丢弃该请求包;
}
void sen_ARP_req() //发送ARP请求函数
{
if(目标IP不在request表中)
添加目标IP到request表中;
发送ARP请求;
}
void rec_ARP_rep() //接收ARP应答处理模块
{
接收ARP应答;
添加IP-MAC映射信息到response表中;
删除request表中对应项;
更新ARP缓冲区;
if(源IP不在request中)
丢弃该ARP应答包;
else
{
if(源MAC地址=对应项MAC地址)
更新ARP缓冲区;
else
丢弃该ARP应答包;
}
}
在程序中,通过引入链表等数据结构,执行速度也许会比原来的执行速度慢。特别是在接受ARP应答处理模块当中,每收到一次ARP应答,就要更新一次ARP缓冲区,更改后的协议要对该应答进行复杂的处理,判断是否发生过ARP欺骗攻击。但是,本文的算法在安全性能上改善了以往的算法中对于ARP报文不进行检验操作的不足,增强了主机对ARP攻击的防御,同时,程序也具有较强的灵活性,这也是传统的算法所不能比的。
四、结论
本文提出的算法,充分考虑了ARP协议自身的不足,从网络安全性的角度出发,对收到的ARP请求或应答先进行检验,虽然可能会降低程序运行速度,但是却可以使ARP协议的安全性能得到大大提升,能够有效防止ARP欺骗与攻击的发生,具有广泛的可应用性。
参考文献:
[1]RICHARD STEVENS W1 TCP/ IP 详解(卷1:协议)[M].北京:机械工业出版社,20001
[2]唐涛.ARP欺骗攻击分析及一种新防御算法[J].科技风,2008:33-34
[3]郑文兵,李成忠.ARP欺骗原理及一种防范算法[J].江南大学学报(自然科学版),2003:574-577
上一篇:浅析局域网的信息安全
下一篇:谈学校局域网的安全防护