ARP欺骗攻击及防讲解.docx
- 文档编号:24368436
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:39
- 大小:910.19KB
ARP欺骗攻击及防讲解.docx
《ARP欺骗攻击及防讲解.docx》由会员分享,可在线阅读,更多相关《ARP欺骗攻击及防讲解.docx(39页珍藏版)》请在冰豆网上搜索。
ARP欺骗攻击及防讲解
ARP欺骗攻击及防范研究
摘要
伴随着计算机网络的普及和通讯技术的迅猛发展,网络信息已逐步成为当今社会发展的重要资源。
网络互连一般采用TCP/IP协议,由于网络及其协议的设计者,在设计之初只考虑了效率问题没有考虑网络安全的问题,所以几乎所有的网络协议都有漏洞,ARP协议同样也存在着安全漏洞。
ARP攻击在现今的网络中频频出现,轻者造成网络性能下降,重者造成网络不通或信息被盗。
因此有效的防范ARP形式的网络攻击己成为确保网络畅通安全的必要条件。
本文分析了ARP协议及其存在的漏洞,ARP病毒的攻击原理和方式方法,对比了现有的检测、定位和防范方法的优缺点。
设计实现了一个检测、定位和防范ARP病毒的系统。
能够有效的检测到交换的ARP缓存表,通过对缓存中ARP映射信息的分析,找出可能发生的欺骗或者谁是攻击者,通过远程设置交换机的ACL等操作对检测到的危险进行处理,可以有效地对ARP攻击进行防范和检测。
关键词:
校园网,ARP病毒,检测,定位,防范
目录
1绪论1
1.1研究背景与意义1
1.2研究现状1
1.3高校校园网特点及安全缺陷3
2ARP协议及相关理论基础4
2.1ARP协议的相关理论4
2.1.1OSI参考模型4
2.1.2TCP/IP参考模型5
2.2ARP协议概述6
2.2.1ARP缓存6
2.2.2ARP代理7
2.2.3免费ARP9
3ARP欺骗分析与测试10
3.1ARP欺骗原理10
3.2常见的ARP欺骗10
3.2.1中间人欺骗10
3.2.2IP地址冲突11
3.2.3一般主机欺骗11
3.4ARP测试程序—ARPTable11
3.5Windows环境下的ARP欺骗测试与分析12
3.5.1IP地址冲突的ARP请求和应答实验12
3.5.2假冒网关欺骗的ARP请求和应答实验15
3.5.3ARP请求过程实验18
3.5.4ARP应答过程实验20
3.6实验结果23
4防御ARP欺骗系统模型实验25
5总结30
6参考文献31
..
1绪论
Internet的迅速发展使得网络已伸入到社会生活的各个层面,给人们的工作、学习、生活带来了巨大的改变,效率得到了极大的提高,信息资源得到最大程度的共享。
伴随着网络的不断发展和扩大,各种网络业务如雨后春笋、层出不穷,这其中包括电子商务、网络游戏、在线支付等新兴业务,为人类社会的进步提供了推动力。
与此同时,出于经济目的、政治目的甚至是偏执于技术的黑客也在不停的编写各种各样病毒和木马威胁着网络安全,其攻击手段不断翻新和变换,大有愈演愈烈之势。
这使得计算机安全问题日益突出。
所有这些都对网络安全提出了新的要求。
1.1研究背景与意义
目前Internet中广泛使用的是IPv4协议,也就是人们常说的IP协议(InternetProtocol)。
现行的IPv4自1981年RFC791标准发布以来并没有多大的改变。
事实证明,IPv4具有相当强盛的生命力,易于实现且互操作性良好,经受住了从早期小规模互联网络扩展到如今全球范围Internet应用的考验。
所有这一切都应归功于IPv4最初的优良设计。
然而,其设计者没有预料到网络会以极大的发展速度覆盖全球,出现了今日IP地址使用紧张的局面。
为了应对日益紧张的IP地址资源,大多数学校、网吧或企业纷纷组建自己的局域网,使用代理服务器访问外部网络。
通过这种方式可以节约IP地址数量,同时也有利于局域网和外网的物理隔离,实现了局域网内信息交互的安全。
作为网络底层使用的TCP/IP协议(TransferControl/InternetProtocol),其设计之初考虑的是为本单位内部提供一个互联的信息和资源共享平台,设计基础是单位内部各网络结点之间是可以相互信赖的,没有过多的考虑安全问题。
这使得TCP/IP协议在实现上更加简单高效,提高了运行效率,对于协议的发展和普及也具有一定意义。
但它没有考虑到互联网会发展成今天这样一个全球性的网络,使得TCP/IP协议的完全开放性存在着很多重大安全隐患。
并且国内众多用户使用Windows操作系统,出于安全考虑,微软不会像Linux一样公布全部代码可让用户重新编写内核程序,再加上为数众多的黑客,给原本脆弱的安全体系雪上加霜。
ARP,即地址解析协议,实现通过IP地址得知其物理地址。
在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。
为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。
这样就存在把IP地址变换成物理地址的地址转换问题。
以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。
这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。
欺骗的存在直接危害了网内各主机的安全,以及用户的切身利益,扰乱了局域网的正常通信。
研究ARP欺骗的防御方法,有助于加强局域网的安全建设,提高局域网内各主机的通信安全,抑制ARP欺骗的影响,同时也保证用户上网的信息资料不被非法获取。
1.2研究现状
为了解决ARP欺骗给局域网带来的安全问题,前人已经作了许多有意义的探索与实践,某些方案在实际项目的应用中已相对成熟,但也存在着一定的局限性。
现对国内外几类常见防御ARP欺骗的解决方案及其局限性进行了分析与总结:
(1)设置静态的ARP缓存。
在主机上使用arp-s命令添加相应静态的ARP缓存记录。
攻击者如果向主机发送ARP应答报文,目标主机在接收此报文后也不会刷新ARP缓存的相关映射信息,避免了ARP欺骗的发生。
这种方法必须人工设置IP地址和MAC地址的映射。
仅适用于小型的局域网络,并且该方法对某些操作系统无效,如windows2000及windowsXPsp1以前版本系统无效。
在这些系统中,即使设置了静态的ARP缓存记录,也会因为主机接收到相关的应答报文而修改。
(2)不断删除ARP缓存内容。
编制一个简单的程序,其功能为以一个固定的频率不断的使用arp–d命令删除ARP缓存中相关的记录。
该程序删除频率设定要大于ARP欺骗频率,这样才能保证主机缓存不保留伪造的IP地址和MAC地址映射信息,达到抑制ARP欺骗的目的。
但是这种方法会导致网络中出现过多的ARP请求广播。
(3)使用ARP服务器。
ARP服务器保存有局域网内各主机的IP地址和MAC地址的映射信息,并且禁用局域网内除服务器之外各主机的ARP应答,仅保留服务器对接收到的ARP请求进行应答。
但是必须要保证ARP服务器的正常运行,不被黑客攻击。
(4)交换机端口绑定。
设置局域网交换机的每一个端口都与唯一的MAC地址相对应。
一旦检测出来自该端口所连接的主机的MAC地址发生变化,就自动锁定该端口,使主机无法连接到局域网。
通过这种方式,攻击者就无法发送伪造的ARP报文,进而阻止了ARP欺骗的发生。
这种方法的缺点就是不灵活。
假设局域网中主机位置发生变动,仍需要管理员重新配置相应交换机的端口;并且仅高端交换机支持此项功能,一般低端交换机不支持端口绑定技术。
(5)划分虚拟局域网。
针对ARP欺骗不能跨网段实施的特性,将局域网划分成多个不同的虚拟局域网。
某虚拟局域网内发生ARP欺骗不会影响到其它虚拟局域网内的主机通信。
这样做缩小了ARP欺骗影响的范围。
将受信任主机放置在同一个虚拟局域网中,将绝密主机放置在另一个虚拟局域网中,有效降低无漏洞渗透的渗入。
同交换机端口绑定一样,仍需要高端网络设备的支持。
(6)使用通信加密。
将在网络中的数据进行加密。
加密后的数据即使被黑客截获,没有相应的解密算法,仍无法获取其真实的数据,即使能够采用暴力破解,也需要花费很高的时间代价。
如局域网内的远程系统登录使用SSH替换Telnet;使用SFTP替换FTP;访问网站用HTTPS替换HTTP等。
这种方法并没有解决ARP欺骗的问题,仅能够保证重要数据不被恶意破解。
(7)删除Windows系统中的npptools.dll(networkpacketprovidertoolshelper)动态连接库。
因为它容易被ARP病毒所利用,来制造ARP欺骗攻击。
在安全模式中,打开WINDOWS\SYSTEM32\NPPTOOLS.DLL文件。
删除这个文件后,用零字节的文件替换。
最后将nnptools.dll保存为只读文件,以防病毒释放该源文件进行覆盖。
在ARP协议的改进和算法方面,前人也做了许多重要而突出的工作。
分析总结如下:
(1)Bruschi[1]提出将数字签名技术引入ARP帧发送方验证的S-ARP协议。
它采用在源主机发送ARP信息时,对其摘要进行签名,在目标主机接收ARP信息时,对其签名进行验证。
攻击者无法发送伪造的ARP帧,从而加强了局域网安全。
(2)Goyal[2]在其论文《AnEfficientSolutiontotheARPCachePoisoningProblem》提出了基于数字签名和Hash链表的的一次一密方案相结合,比较S-ARP协议在实现效率上有了进一步的提高。
提出一种基于公钥密钥体制的安全ARP协议TARP,即Ticket-basedAddressResolutionProtocol(基于票据的地址解析协议)。
票据中除包含数字签名外,还引入有效期。
这种TARP协议与S-ARP相比,其优势为不必每次ARP解析时都进行签名和验证,减轻了主机的负担,提高了效率。
(3)郑文兵[3]提出一种改进的ARP协议算法。
加入两个线性表RequestList和ResponseList用于保存已发送ARP请求和接收ARP应答信息。
在发送ARP请求报文和接收ARP应答报文时,对这两个线性表进行相应检测,将不符合要求的报文丢弃并记录。
(4)林宏刚[4]提出一种主动检测和防范ARP攻击的算法。
分别对接收ARP请求、接收ARP应答、发送ARP请求、发送ARP应答这四个事件分别进行处理,采用封装TCPSYN数据包检测目标主机存在的方法,设计了一种发送ARP报文和更新ARP缓存的安全性方案。
1.3高校校园网特点及安全缺陷
高校校园网的以下特点导致安全管理非常复杂,具体来说存在以下特点及安全缺陷:
(1)校园网的速度快规模大;
(2)校园网中的计算机系统管理比较复杂;
(3)用户群体比较活跃;
(4)网络环境比较开放;
(5)盗版资源泛滥;
以上各种原因导致校园网既是大量攻击的发源地,也是攻击者最容易攻破的目标。
目前各种ARP欺骗在校园网内内横行,造成相当数量的用户出现网络连接问题。
2ARP协议及相关理论基础
2.1ARP协议的相关理论
ARP协议是TCP/IP协议族中重要的一员,工作于OSI参考模型的网络层与数据链路层之间。
在局域网中,利用ARP协议可实现根据目标主机IP地址获得其MAC地址的功能。
而以太网技术是局域网的重要组网技术。
所以在研究ARP协议之前,首先对OSI参考模型、TCP/IP参考模型、以太网技术、IP地址、MAC地址等相关理论基础进行研究。
2.1.1OSI参考模型
OSI参考模型开放系统互连参考模型OSI/RM(OpenSystemInterconnectionReferenceModel)是一个多层的网络协议,简称OSI。
它最初是由国际标准化组织(InternationalStandardOrganization,ISO)于1977年成立专门机构研究所得出的一个试图使各种计算机在世界范围内互连成网的标准框架。
在1983年形成了开放系统互连参考模型的正式文件,即ISO7498国际标准,也就是所谓的七层协议的体系结构。
开放系统互连参考模型将网络划分为七层模型,由高至低分别为:
应用层(ApplicationLayer),表示层(PresentationLayer),会话层(SessionLayer),传输层(TransportLayer),网络层(NetworkLayer),数据链路层(DataLinkLayer)和物理层(PhysicalLayer)。
该模型如图1所示:
OSI参考模型中每一层仅与其相邻的上下两层通过接口直接通信。
这种分层结构使得各层的设计与测试是相对独立的。
第N层为第N+1层提供服务,第N+1层不必理会下层服务是如何实现的,因此第N层的改变是不会影响到第N+1层的,实现了层次间的透明。
OSI各层的主要功能是:
物理层:
物理层处于OSI参考模型的最低层。
物理层的主要功能是利用物理传输介质(如同轴电缆、光纤、双绞线等)为数据链路层提供物理连接,将帧的结构和内容串行发送,每次发送一个比特,其传输的过程是透明的。
数据链路层:
在物理层提供比特流传输服务的基础上,在通信的实体之间建立数据链路连接,传送以帧为单位的数据,采用差错控制、流量控制方法,使有差错的物理线路变成无差错的数据链路。
网络层:
网络层主要任务是通过路由器算法,为分组通过通信子网选择最适当的路径。
网络层要实现路由器选择、拥塞控制与网络互连等功能。
在单独的局域网中,网络层的存在是冗余的,因为报文是从一台主机传送到另一台主机。
传输层:
传输层的主要任务是向用户提供可靠的端到端(End-to-End)服务,透明地传送报文。
它向高层屏蔽了下层数据通信的细节,因而是计算机通体体系结构中最关键的一层。
会话层:
会话层的主要任务是组织两个会话进程之间的通信,并管理数据的交换。
会话层提供的服务之一是管理对话控制,它允许信息同时双向传输,或者只能单向传输。
表示层:
表示层主要用于处理在两个通信系统中交换信息的表示方式,它关注的是所传送的信息的语义和语法。
它包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。
应用层:
应用层是OSI参考模型中的最高层。
应用层确定进程之间通信的性质,以满足用户的需要。
应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理(UserAgent),来完成一些为进行信息交换所必需的功能。
OSI的七层参考模型试图使全世界的计算机网络都遵循同一标准,且得到当时许多政府和公司的支持,但是由于因特网抢先在全世界覆盖相当大的范围,OSI并没有得到有效推广。
目前广泛应用的是非国际标准TCP/IP,即TCP/IP已成为事实上的国际标准。
2.1.2TCP/IP参考模型
TCP/IP(TransferControl/InternetProtocol)传输控制协议/网际协议是能够在网络中提供可靠的数据传输和无连接数据报服务的一组不同的协议组合在一起构成的协议族。
TCP/IP起源于20世纪60年代美国政府资助的一个分组交换网络研究项目ARPANET,90年代已发展成为计算机之间最常用的组网形式。
它没有OSI七层体系结构的明确分层,但却比OSI的协议运行效率高,且借助商业驱动力迅速占领市场。
为了便于研究TCP/IP协议,一般将它分为四个层次,由高至低分为应用层(ApplicationLayer),运输层(TransportLayer),网络层(NetworkLayer)和链路层(LinkLayer)。
TCP/IP参考模型对应于OSI参考模型如图2所示:
TCP/IP各层的主要功能:
链路层:
链路层处于TCP/IP参考模型的最底层,也称为数据链路层或网络接口层,通常包括操作系统的驱动程序和计算机中对应的网络接口卡。
它们一起处理与传输媒介的物理接口细节。
网络层:
网络层有时也称为互联网层,处理分组在网络中的活动。
其中ARP和RARP(ReverseAddressResolutionProtocol逆地址解析协议)经常被IP协议使用,ICMP(InternetControlMessageProtocol因特网报文控制协议)和IGMP(InternetGroupManagementProtocol因特网组管理协议)依赖于IP协议。
由于网际协议IP是使互联起来的许多计算机能够进行通信,因此网络层也被称为IP层。
运输层:
运输层主要为两台主机上的应用程序提供端到端的通信。
此层包含两个互不相同的传输协议:
TCP(TransmissionControlProtocol传输控制协议)与UDP(UserDatagramProtocol用户数据报协议)。
TCP为两台主机提供可靠的数据通信,应用层可以忽略这些可靠传输的细节。
UDP为应用层提供非常简单的服务,只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端,任何必须的可靠性须由应用层来提供。
应用层:
应用层负责处理特定的应用程序细节。
如一般TCP/IP实现以下:
Telnet(远程登陆),FTP(FileTransferProtocol文件传输协议),SMTP(SimpleMailTransferProtocol简单邮件传输协议)和SNMP(SimpleNetworkManagementProtocol简单网络管理协议)。
2.2ARP协议概述
在局域网中,网络层中的数据报交付给目标主机,传到链路层时,需要封装成MAC帧才能发送到实际网络,如图3所示。
所谓封装,是指分层协议所采用的技术,较低层协议接收到来自较高层协议的报文,并把它放在低层帧的数据部分。
封装意味着当数据报通过网络协议传输时带有一系列的首部信息,其中最前面的首部信息来自物理网络帧,其后的来自网际协议,再后的来自运输协议,以此类推。
仅仅知道目标主机的IP地址,而不知道MAC地址,两台主机或网络设备是无法直接进行通信的。
由于IP地址和MAC地址之间不存在简单的映射关系,就需要有特定的协议实现或者获取这种IP地址到MAC地址的映射功能。
ARP协议正是实现了这种需求。
ARP协议,即AddressResolutionProtocol地址解析协议,是一个TCP/IP协议,工作在网络层与链路层之间,用于局域网中根据目标主机的IP地址来获得其MAC地址。
所谓“地址解析”就是将目标IP地址转化为目标MAC地址的过程。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
2.2.1ARP缓存
每台主机都拥有一个ARP缓存(ARPcache),里面存储了该主机所在局域网上的各主机和路由器的IP地址和MAC地址的映射表。
可以使用arp–a命令进行查看,在Windows系统环境下,显示效果如图4所示。
此图中显示了本地主机IP地址为211.68.183.144,接口地址为0x20002。
第一列为本地主机已获得的网络中主机的IP地址,第二列为与获得IP地址相对应的MAC地址,第三列为映射记录的类型,dynamic表示动态的,即可更改的;static表示静态的,不会被系统动态修改。
在操作系统中提供了arp命令。
通过使用arp命令可以实现操作ARP缓存的目的,以下列出几个常见的命令:
arp–a显示本地主机ARP缓存内容,效果等同于使用arp–g
arp–ainet_addr显示IP地址为inet_addr的映射记录,inet_addr形式上采用点分十进制方法表示,举例如arp–a211.68.183.144
arp–sinet_addreth_addr向本地主机ARP缓存中加入静态的IP地址和MAC地址的映射信息,eth_addr形式上采用以短横线“-”隔开的6个16进制数,举例如arp–s211.68.183.144AA-AA-AA-AA-AA-AA
arp–d删除本地主机ARP缓存内容
arp–dinet_addr删除IP地址为inet_addr的映射记录,举例如arp–d211.68.183.144
ARP缓存中的映射记录一般是从主机接收到的ARP请求报文和ARP应答报文中获得的相关映射信息。
ARP请求和ARP应答报文将在下面文章中有具体的说明。
由于ARP缓存的存在,主机可以直接查询获得ARP缓存中已有目标主机的MAC地址,在链路层将来自于上层的数据封装为MAC帧。
这样就减少了每次发送数据前都要获取目标主机的MAC地址而不断发送ARP请求及目标主机返回ARP应答所消耗的网络通信流量。
ARP缓存中IP地址和MAC地址的映射信息并不是永久有效,它们同样存在老化时间的限制。
在Windows系统默认情况下,映射信息都是动态的,如果某条映射信息在一定时间内未接收到新的ARP报文更新或未被主机进行连接使用,那么它将于120秒后从ARP缓存中删除。
老化时间过长显然会导致ARP缓存中保存了较多不被使用的映射记录,影响ARP缓存查找相关映射信息的效率;相反老化时间过短,就会倒导致增加较多的网络流量用于查询目标主机的MAC地址信息。
2.2.2ARP代理
代理ARP是ARP协议的一个变种。
对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址对源计算机进行应答。
代理ARP就是将一个主机作为对另一个主机ARP进行应答。
它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。
同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。
代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的,过程如图5所示。
图5arp代理
主机A要发送数据包到主机D。
图表显示主机A使用的是16位掩码。
主机A相信目的网段是直接连接在172.16.0.0上的。
于是主机A直接发送一个ARP请求给目的站点。
主机A需要得到主机D的MAC地址,所以主机A广播ARP请求,ARP请求里主机A将自己的MAC地址作为源地址FFFF.FFFF.FFFF做为目的地址进行广播。
但是路由器的E0口默认不支持转发广播。
所以主机D不能响应这个ARP请求。
路由器知道主机D在其他子网,于是用自己的MAC地址来应答A,路由器用自己接口的MAC地址作为源地址回复ARP应答给主机A。
这个ARP应答总是利用单播来回复。
主机A收到ARP请求后更新自己的MAC地址表,现在主机A如果发送数据包给主机D就将数据发送给MAC00-00-0c-94-36-ab.由路由器转发给主机D。
所以目的地址为子网B的数据都发送给路由器。
子网A内所有主机ARP地址表显示去往子网B主机的MAC地址全是路由器接口的MAC地址。
2.2.3免费ARP
另一个ARP特性称作免费ARP(gratuitousARP)。
它是指主机发送ARP查找自己的IP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARP 欺骗 攻击 讲解