ARP防火墙

关键词:

ARP防火墙(精选三篇)

ARP防火墙 篇1

ARP攻击以及非法入侵未设防的无线局域网已经是现在导致联网异常的典型案例了。由于安全设置的疏忽以及后期安全防护的不足, 导致少数具有恶意的黑客对企业的重要信息及保密数据造成了极大的危害。

另一方面, 在我们日常的上网过程中, 我们经常会碰到诸如网络经常无缘无故的掉线, 或者突然提示你IP有冲突, 甚至网速慢得连网页都打不开等网络问题。这些问题的根源就是ARP攻击。ARP攻击已经成为困扰人们日常上网行为的主要黑客攻击。

本文研究的ARP防火墙系统可有效解决以上问题。

1 基于ARP协议的网络攻击的原理

在TCP/IP网络环境下, 一个IP包走到哪里、怎么走是靠路由表定义的。但是, 当IP包到达该网络后, 哪台机器响应这个IP包?则是靠该IP包中所包含的物理地址来识别的。也就是说, 只有机器的物理地址和该IP包中的物理地址相同的机器才会应答这个IP包。因为在网络中, 每一台主机都会有发送IP包的时候, 所以, 在每台主机的内存中都有一个IP地址到物理地址的转换表, 它通常是动态的转换表 (但在路由中, 该ARP表可以被设置成静态) 。

1.1 ARP协议的工作原理

从下面两种情况来探讨ARP的工作原理:

情况一:将本地网络的主机IP地址解析为MAC地址。ARP解析过程分4步进行:1) 当一台主机要与别的主机通信时, 初始化ARP请求。当该IP确定为本地IP时, 源主机在ARP缓存中查找目标主机的硬件地址。2) 若找不到映射, ARP就建立一个请求, 源主机IP地址和硬件地址会被包括在请求中, 该请求通过广播, 使所有本地主机均能接收并处理。3) 本地网上的每个主机都收到广播并寻找相符的IP地址。4) 当目标主机断定请求中的IP地址与自己的IP地址相符时, 直接发送一个ARP答复, 将自己的硬件地址MAC地址传给源主机。以源主机的IP和MAC地址更新它的ARP缓存。源主机收到回答后便建立起了通信关系。

情况二:将远程网络的主机IP地址解析为MAC地址。当不同网络中的主机互相通信时, 因目标IP地址是一个远程网络主机的地址, ARP将广播一个路由器 (源主机的缺省网关) 的地址。ARP解析过程分3步进行:1) 初始化通信请求, 得知目标IP为远程地址。源主机在本地路由表中查找, 若无, 源主机就认为是缺省网关。在ARP缓存中查找符合该网关记录的IP的MAC地址。2) 若没找到该网关的记录, ARP将广播一个包含网关地址而不是目标主机的地址的请求。路由器用自己的硬件地址响应源主机的获取它的硬件地址MAC地址。3) 如果此网关的硬件地址不在ARP缓存中, 通过ARP广播获得。一旦它获得硬件地址, ICMP响应就送到路由器上, 然后传回源主机。

1.2 基于ARP协议的网络攻击过程

从ARP的工作原理可以看出, 当计算机发送ARP请求, 监听ARP回答, 并定期更新ARP高速缓存时, 一个黑客或恶意攻击者完全可能发送一个带有欺骗性的ARP请求和回答, 以至于改变另一个主机的ARP高速缓存中的地址映射 (即IP与MAC的对应关系) , 使得该被攻击的主机在地址解析时发生错误结果, 导致所封装的数据被发往黑客所希望的目的主机, 从而使数据信息被劫取。

可见, 利用ARP欺骗, 一个入侵者可以利用基于IP的安全性不足, 冒用一个合法IP来进入主机, 捕获专用的或者机密的信息;可以用来危害网络邻居的安全, 或者用来获取更高级别的访问权限;分析网络结构, 进行网络渗透。

2 系统结构设计及实现

2.1 系统结构

2.2 实现

2.2.1 原始数据包捕获

原始数据包捕获技术是调用了一个开源包WinPcap包。WinPcap是一个Win32平台的, 用于捕获数据包和进行网络分析的体系结构。它包括了一个内核级的数据包过滤器, 一个低层动态链接库 (packet.dll) , 一个高层的, 依赖于系统的库 (wpcap.dll) 。WinPcap数据包捕获的主要过程:

首先, 抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包 (raw packet) , 这就要求一部分运行在操作系统核心内部, 直接与网络接口驱动交互。这个部分是系统依赖 (system dependent) 的, 在Winpcap的解决方案里它被认为是一个设备驱动, 称作NPF (Netgroup Packet Filter) 。Winpcap开发小组针对Windows95, Windows98, WindowsME, Windows NT 4, Windows2000和WindowsXP提供了不同版本的驱动。这些驱动不仅提供了基本的特性 (例如抓包和injection) , 还有更高级的特性 (例如可编程的过滤器系统和监视引擎) 。前者可以被用来约束一个抓包会话只针对网络通信中的一个子集 (例如, 仅仅捕获特殊主机产生的ftp通信的数据包) , 后者提供了一个强大而简单的统计网络通信量的机制 (例如, 获得网络负载或两个主机间的数据交换量) 。

其次, 抓包系统必须有用户级的程序接口, 通过这些接口, 用户程序可以利用内核驱动提供的高级特性。Winpcap提供了两个不同的库:packet.dll和wpcap.dll。前者提供了一个底层API, 伴随着一个独立于Microsoft操作系统的编程接口, 这些API可以直接用来访问驱动的函数;后者导出了一组更强大的与Libpcap一致的高层抓包函数库 (capture primitives) 。这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。

2.2.2 数据包分析

以ARP数据包为例, 介绍数据包分析的过程。

2.2.3 问题ARP数据包过滤

在原始数据包捕获过程中, 有一个循环缓冲区, 用来保存数据包并且避免丢失。一个保存在缓冲区中的数据包有一个头, 它包含了一些主要的信息, 例如时间戳和数据包的大小, 但它不是协议头。系统针对ARP数据包, 对时间戳进行计算, 判断来自同一计算机的ARP数据包发送是否过于频繁, 进而通过WinPcap的过滤器对ARP数据报进行过滤。实现有效的防止ARP攻击 (ARP欺骗) 。

过滤规则设置:

3 软件简介

以VC++6.0进行编译、运行, 系统软件界面及数据包捕获过程, 具体参数有本地连接、信息中的IP地址和子网掩码、数据包捕获、数据包信息以及数据包数据。

4 总结

本系统主要实现两方面大的功能:

1) 捕获数据包, 分析数据包。这部分功能类似与网络上的协议分析软件, 如Linux系统下TCPDump, Windows下的WinDump, 主要是捕获本地计算机网络接口上的数据包, 对数据报进行协议分析, 判断数据包是何种网络数据。由于本系统是ARP防火墙的设计与开发, 所以ARP数据包是重点分析的对象。

2) 过滤问题ARP数据包。对于网络上广播的ARP数据包, 系统需要即使对数据进行分析, 判断数据包是否为ARP攻击数据包。进而采取相应的过滤规则将数据包过滤。

另外, 本系统功能虽然单一, 但是较有针对性, 因此为较有效使用的软件。

摘要:ARP (Address Resolution Protocol) 基本功能是通过目标设备的IP地址, 查询目标设备的MAC地址, 以保证通信的顺利进行。然而, 一些非法的入侵者和网络监听者, 利用各种技术和手段, 篡改IP地址与MAC地址之间的对应关系, 从而“冒名顶替”他人的MAC地址, 以达到非法监听和获取他人在网络上传输的信息的目的, 这种网络入侵方式为ARP欺骗入侵。它是近年来网络入侵攻击的主要形式之一, 严重威胁着网络信息的安全。针对以上问题, 该文开发了一套ARP防火墙系统, 通过对局域网内ARP数据包的分析, 实现对局域网内所有的主机进行检测和监控, 及时发现局域网内的ARP攻击行为, 将其广播给网关和局域网内所有主机, 并对该攻击进行防御和处理, 从而解决局域网内由于ARP攻击所造成的网络瘫痪问题。

关键词:MAC,ARP攻击,数据包捕获,ARP攻击的检测与防范

参考文献

[1]朱雁辉.Windows防火墙与网络封包截获技术[M].北京:电子工业出版社, 2002.

[2]谢希仁.计算机网络[M].2版.北京:电子工业出版社, 1999.

[3]张曾科.计算机网络[M].北京:清华大学出版社, 2003.

[4]孟晓明.基于ARP的网络欺骗的检测与防范[J].信息技术, 2005, 29 (5) .

奇虎推出免费ARP防火墙 篇2

这个工具虽然功能较为简单,但是够用就行。防止ARP欺骗攻击,追查ARP攻击来源IP这两大功能都有,这就足够了,能够满足大多数人的需求。

另外,做为一个免费防火墙软件,360AntiARP也为广大的站长省了一笔钱,目前同类产品的价格是每服务器199元,奇虎的免费ARP防火墙必定会获得广大人民的喜爱,就如同喜爱360safe一样。

唯一可惜的是这个ARP防火墙没有做成服务的形式,安装在服务器上还要设置自动登录才能每次重启动都自动运行。

按照奇虎公司的介绍,360ARP防火墙具有如下功能:

360ARP防火墙通过在系统内核层拦截ARP攻击数据包,确保网关正确的MAC地址不被篡改,可以保障数据流向正确,不经过第三者,从而保证通讯数据安全、保证网络畅通、保证通讯数据不受第三者控制,完美的解决局域网内ARP攻击问题,

360ARP防火墙特色:

1. 内核层拦截ARP攻击:在系统内核层拦截外部ARP攻击数据包,保障系统不受ARP欺骗、ARP攻击影响,保持网络畅通及通讯安全采用内核拦截技术,本机运行速度不受任何影响

2. 追踪攻击者:发现攻击行为后,自动定位到攻击者IP地址和攻击机器名(有些网络条件下可能获取不成功)

3. ARP缓存保护:防止恶意攻击程序篡改本机ARP缓存

免费的奇虎360ARP防火墙的下载地址是:dl.360safe.com/360AntiArp.exe

ARP防火墙 篇3

本地局域网用ARP(地址解析协议)把IP地址转化成物理地址或者是MAC地址,当ARP缓存被充满或者是ARP缓存中没有这个IP地址时,新的访问将触发ARP协议。但是ARP是无连接的,它能被恶意的攻击者利用来进行ARP欺骗。

A R P欺骗跨越了操作系统的限制,Windows、Linux、Unix无一幸免,研究者把过多的精力都放在了Windows操作系统的防护上,关于Linux操作系统下讨论较少,在本文中先讨论了Linux操作系统下预防ARP欺骗的一些措施,并详细说明了一种基于Linux的ARP防火墙的设计方法。

2 ARP欺骗概述

图1是作者搭建的一个真实实验环境。

由于ARP协议是无连接的,主机X如果没有发送ARP请求的广播,主机Y依然可以回应一个欺骗性的A R P回复,X收到这个回复后会立即升级自己的缓存表,这样X所有发往网关的数据包都会发给Y,一个简单的单向欺骗成功了。主机Y只要运行一个嗅探软件就可以知道X所有发往网关的数据包,但是主机X与网关联系不上了,这就需要主机Y将受害者发过来的数据包转发给网关。同样也可以欺骗网关让网关发给X的数据包也经过Y,这样Y接收到回来的数据时可以在里面加入一些代码再发送给X[1],这就是典型的ARP挂马攻击。

A R P欺骗是一个很重要的问题,可以实施很多种攻击:

1. DoS攻击。

2. 主机欺骗。

3.中间人攻击。

4.ARP挂马传播病毒。

3 Linux下ARP欺骗的基本防护

关于A R P欺骗的防护是很困难的,因为它不是某一个操作系统的漏洞而是协议本身的问题,如果去修改TCP/IP协议栈,那显然是一项庞大的工程,并且怎样与现在的操作系统兼容也是一个很大的问题,建议采取以下措施提高Linux主机防护ARP欺骗的攻击。

1.一个简单而有效的措施就是实施静态的I P与MAC的绑定,就像很多人提出在Windows下用arps的命令,在Linux下可以用arp-f实现,新建立一个/etc/ethers文件,在里面写网关的IP和对应的MAC,就可以绑定了。

2.在Linux下有一个很好的工具就是arpwatch,很多从R E D H A T衍生出来的操作系统都集成了这个RPM包,可以用让arpwatch和/etc/ethers配合工作,在本地维护一个局域网内的IP和MAC对应表,一但发现不符合的ARP记录就立刻通知管理员[2]。

3. 用IPTABLES实现Linux下简单的ARP防火墙。

IPTABLES是每款Linux系统中都集成的一个防火墙,很好用,不过他是应用层的东西好像不能用来防止ARP攻击,其实通过简单的shell脚本就可以实现ARP防火墙的功能。代码如下:

#检查每个进来的数据包,只有MAC地址定义过的才接收,否则都丢弃[3]。

把这个脚本放在/etc/rc.local下让它开机自动运行,可以很好的保护!

4. 如果网关被欺骗了,即使我们可以发送据包到网关,可是网关是不能把数据包回应回来的,其实Linux还有一个工具就是arping,可以不断的向网关发包来告诉网关自己的真正MAC,以保证网关内对应的正确性。

5.利用入侵检测系统。Snort这款开源的优秀IDS经常被用来检测ARP攻击,及时通知网络管理员。但是IDS的最大问题就是误报率太高,很正常的ARP请求被警报为攻击,这在很大程度上会干扰网络管理员,对付这些误报的数据是一项繁琐而没有意义的工作[4]。

前面的很多工作都是集中在M A C地址的检查上,安全性确实能够提高,不过缺点也是显而易见的,一个不便之处就是在DHCP环境下无法使用,并且给管理员增添了很多麻烦,如果配置不当还有可能造成正常的访问不能进行。

4 Linux下ARP防火墙的实现

Windows下已经出了ARP防火墙,效果很好!不过在Linux下还没有好的产品出来了。

4.1 ARP防火墙原理

ARP防火墙的原理很简单,就是向网关不断的发送ARP请求以获得网关正确的IP与MAC,并且同时保证网关对应本机的IP与MAC也是正确的,绑定网关IP与MAC;检查所有发往本机的ARP包,如果源IP是网关,读取其MAC地址并与绑定的网关的MAC比较,如果不同的话立即发出警报有人攻击,并马上向网关发送ARP请求的数据包来更正本机的ARP缓存,来达到保护的目的。

4.2 程序流程

程序开始后立即读取本机的IP地址和MAC地址,向网关发送一定数量的数据包,记录返回的IP和MAC,绑定网关的IP和MAC;创建两个线程,一个用来定期的向网关发送A R P请求来保证本地缓存的正确,这里为了减少ARP广播包,并不是一直在发送,而是定时发送;一个用来检查发往本机的A R P包,如果检查到攻击立刻报警。

流程图如图2:

ARP的帧格式如表1:

4.3 实现部分

(1)根据ARP帧格式构造的ARP请求和应答的数据结构

(2)获取本机的IP地址和MAC地址

并把得到的IP地址和MAC地址转换格式后存到变量中。网关的IP地址由用户输入。

(3)向网关发送一定量的数据包以保证本地

这里保存的网关IP和MAC很重要。从这里就可以很好的理解欺骗的产生,在ARP的帧里可以把源IP换成网关的,源MAC换成自己的。

(4)创建两个线程

第一个线程用来定时发送A R P的请求包,第二个线程用来检查到达本机的A R P包以确定是否有人攻击。

5实验结果

本程序在X主机的Fedora8下用GCC编译通过,程序运行界面如图3,在主机Y上用一个A R P的欺骗程序攻击这台机器后效果如图4,左边的界面是防护界面,右边是攻击程序界面,主机X马上检测到有ARP欺骗产生了。

立即检查主机X的ARP表,发现对应网关的MAC没有改变,说明防火墙的作用生效。

6结束语

本文讨论的Linux下ARP防火墙是保护Linux主机防止其他恶意主机冒充网关修改A R P缓存,如果局域网有一台主机冒充的不是网关而是另一台主机,本文提到的方法将会失效,可以进行中间人攻击,下一步的工作可以在非网关的欺骗上展开,检测其他主机发过来的数据包是否和IP与MAC是合法的,防止中间人攻击,更好的保护网络,因为A R P欺骗可以导致整个网络瘫痪,所以应该引起高度的重视,研究各种ARP欺骗的方法,做好预防措施更好的保护网络安全。

摘要:ARP欺骗已经成为越来越严重的一个问题,本文分析了ARP欺骗的原理,介绍了当前Linux下防范ARP欺骗的一些措施,研究了ARP防火墙的原理,同时给出了Linux下ARP防火墙具体的实现代码和详细的注释。

关键词:ARP欺骗,Linux,代码,ARP防火墙

参考文献

[1]W.RICHARD STEVENS著.范建华等译.TCP/IP详解(卷一):协议[M].北京:清华大学出版社,1993.

[2]杨扬,房超,刘辉.ARP欺骗及ICMP重定向攻击技术研究[J].计算机工程,2008,34(2):103-107.

[3]CRISTINA L.ABAD,RAFAEL I.BONILLA.AnAnalysis on the Schemes for Detecting and Preventing ARPCache Poisoning Attacks.27th International Conference onDistributed Computing Systems Workshops(ICDCSW’07)[C],2007,IEEE

[4]郑燕生,吴金龙.以太网中基于Linux的ARP欺骗与防范措施[J].宿州学院学报,2005,8(20):70-73.

[5]W.RICHARD STEVENS著.施振川,周利民,孙宏晖等译.Unix网络编程(第一卷)[M].北京:清华大学出版社,2001.

[6]李冬霞,苏广川.Linux系统中ARP的编程实现技术[J].计算机应用研究,2001,(4):123-125.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:爱心的唯美语段 下一篇:Ⅲa型慢性前列腺炎