ARP地址欺骗原理及仿真实验设计
2016-10-22汪永生
汪永生
(铜陵学院数学 与计算机学院,安徽 铜陵 244000)
ARP地址欺骗原理及仿真实验设计
汪永生
(铜陵学院数学与计算机学院,安徽铜陵244000)
ARP采取了信任模式,从而造成了网络安全隐患.从ARP工作机制入手,深入分析ARP地址欺骗原理,并设计了ARP地址欺骗仿真实验,对ARP欺骗原理进行了验证.
ARP;ARP地址欺骗;仿真实验设计
早期互联网采取的是信任模式,追求网络功能与传输速率,主要在科研机构和大学内部局域网使用,对网络安全考虑较少[1].ARP是一个早期的网络协议,尤其以太网的洪泛特点,能够很方便的用来查询,但也为日后网络安全埋下了隐患.ARP地址欺骗通常有2种欺骗方式,一种是对路由器ARP表的欺骗,它会导致路由器将发送数据到错误的MAC地址,造成PC无法正常接收到真正主机发来的信息.另一种是对局域网PC网关进行欺骗,伪造网关,让被这欺骗的PC向假网关发送数据,造成同一网关所有PC无法正常访问网络[2].
1 ARP概念及工作机制
1.1ARP概念
ARP(Address Resolution Protocol)中文意思为地址解析协议.ARP位于国际标准化组织ISO(International Standard Organization)开放系统互联参考模型OSI(Open System Interconnect)的第二层,该协议属于数据链路层协议,它负责联系本层和硬件接口,同时对上一层网络层和下一层物理层提供相关的服务.
数据链路层传送的是数据帧,数据帧内包含了所要传送的源和目标48位物理地址,即MAC地址,以太网交换设备(常用设备有网卡、交换机和网桥等)就是根据MAC地址进行数据帧的传送.具体来说,在局域网内部IP数据包(或称分组)传送时不是以IP地址来识别目标主机,而是MAC地址.所以,ARP协议就是确定MAC地址与IP地址之间必须存在一种对应关系的协议[3].
1.2ARP工作机制
ARP工作机制主要实现IP地址和MAC地址的相互映射,解析本地ARP.ARP工作机制具体过程为:
源主机先发送出一个以太网广播请求数据包,该数据包中含有目标主机IP地址.目标主机收到该数据包后,则向源主机发出一个应答数据包,该数据包中含有目标主机IP和MAC地址对.源主机获得目标主机IP和MAC地址对后,并将该地址对存储在本机的ARP缓存表,以节约不必要的ARP通信.ARP缓存表通常采取老化机制[4],即缓存表中的某一行一段时间内如果没有被使用,就必须被删除,这样可以减少ARP缓存表中无效地址对,加快查询速度.
2 ARP地址欺骗原理
由于以太局域网内数据包传输依靠的是MAC地址,主机(包括网关)ARP缓存表存储IP地址和MAC对应的关系,以此来实现IP地址和MAC地址的映射.一般来说,ARP缓存表能够有效的保证数据传输的一对一性,例如,主机A与主机C之间的通讯只通过网关,象主机B之类的则无法截获主机A与主机C之间的通讯信息的.由于ARP协议是一种无状态协议,当主机接收到一个ARP的应答包后,它不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息.
一般情况下,ARP缓存表通过两种途径建立的.一种是主动解析,如果一台主机想与另一台不知道MAC地址的主机进行通信,则该主机主动发送ARP请求.另一种是被动解析,如果一台主机接收到了另一台主机的ARP请求,则在本地建立请求主机的IP地址和MAC地址的对应表.因此,ARP地址欺骗就是误导主机建立错误的ARP缓存表,利用ARP协议的无状态性,通过伪造不存在的MAC地址更新主机或网关中的ARP缓存表[5].当一个伪造的ARP应答报文被接受以后,ARP缓存表将被更新,任何发往目的IP主机的数据包可能被重定向到目标主机(实施欺骗的主机).
3 ARP地址欺骗仿真实验设计
本仿真实验环境为:服务器一台(安装有HTTP、FTP、TELNET、MALL、DHCP和 DNS等服务),中心设备一台,组控设备若干,智能网络设备若干,实验机(运行网络协议仿真软件).ARP地址欺骗仿真实验拓扑结构如图1所示:
图1 ARP地址欺骗仿真实验拓扑图
其中:
交换模块:专为网络协议仿真教学系统研制,是组控设备的主要组成部分,具有数据交换、转发和MAC地址学习等功能,是支撑系统网络拓扑结构的硬件设备.
共享模块:专为网络协议仿真教学系统研制,是组控设备的主要组成部分,可实现网络数据采集功能,是支撑系统网络拓扑结构的硬件设备.
3.1仿真实验设计方法
主机D伪造ARP报文发送至主机A和主机C,主机A和主机C建立错误的ARP缓存表,导致主机A和主机C之间通讯出现故障,从而达到欺骗的目的.
3.2仿真实验步骤
步骤一:主机A和主机C使用”arp–a”命令查看并记录ARP高速缓存.如图2和图3所示:
图2 实施欺骗前主机A ARP缓存表
图3 实施欺骗前主机C ARP缓存表
步骤二:分别启动主机A、C上的协议分析器,设置过滤条件,开始捕获数据,提取ICMP协议和ARP协议.在主机A上ping下主机C,并对主机A、C上捕获到的ICMP报文进行观察,记录报文中的MAC地址.
步骤三:启动主机D上的仿真编辑器,编辑向主机A发送的ARP请求报文(暂不发送).其中,
MAC层地址:
目的MAC地址:主机A的MAC地址.
源MAC地址:主机D的MAC地址;
ARP层:
目的MAC地址:000000-000000;
目的IP地址:主机A的IP地址.
源MAC地址:主机D的MAC地址;
源IP地址:主机C的IP地址;
步骤四:主机D向主机C编辑ARP请求报文(暂不发送).其中,
MAC层地址:
目的MAC地址:主机C的MAC地址.
源MAC地址:主机D的MAC地址;
ARP层:
目的MAC地址:000000-000000;
目的IP地址:主机C的IP地址.
源MAC地址:主机D的MAC地址;
源IP地址:主机A的IP地址;
步骤五:对步骤三和步骤四所编辑的数据包同时发送,观察并记录主机A和主机C的ARP高速缓存表.为防止其它未知报文更新主机A和主机C高速缓存表,可采取定时发送数据包方法,例如,每隔500ms发送一次.如图4和图5所示:
图4 实施欺骗后主机A ARP缓存表
图5 实施欺骗后主机C ARP缓存表
步骤六:在主机D上启动静态路由服务,目的是实现数据转发.具体操作方法:
在命令行方式下输入”staticroute_config”.同时,主机D要禁用ICMP协议.具体操作如下:
在命令行下输入”mmc”,启动微软管理控制台.单击”文件”菜单中的”打开”命令,打开“C:WINNTsystem32IPSecPolicystopicmp.msc”.单击“操作”菜单中的“所有任务”、“导入策略”,打开“C:WINNTsystem32IPSecPolicystopicmp.ipsec”.此命令执行成功后,“禁用ICMP”将出现在策略名称列表中.最后,启动策略.用鼠标选中“禁用ICMP”,单击右键,选择“指派”.
步骤七:主机A上ping主机C.
步骤八:主机A、C停止捕获数据,分析捕获到的数据.
3.3实验结果分析
实施ARP欺骗前,主机A和主机C均能建立正确的ARP缓存表,主机A和主机C之间网络通讯正常(见图2和图3所示).主机D向主机A和主机C发送伪造的ARP报文,欺骗主机A和主机C建立不正确的ARP缓存表,主机A建立主机C IP地址与主机DMAC地址的ARP绑定,而主机C则建立了主机AIP地址与主机DMAC地址的ARP绑定(见图4和图5所示).
主机A和主机C相互ping对方,均出现超时ping不通现象(见图6和图7所示),说明主机A和主机C因ARP地址欺骗而出现了网络通讯瘫痪故障.
图6 主机A访问主机C出现网络通讯故障
图7 主机C访问主机A出现网络通讯故障
4 结束语
利用ARP协议的固有缺陷来对内部网络实施攻击,常见的一种攻击方式就是ARP地址欺骗.本文介绍了ARP概念和ARP工作机制,详细分析了ARP地址欺骗原理,并设计了ARP地址欺骗仿真实验来对此进行验证,从而有助于设计出可行的安全防御措施,最大程度上防范ARP地址欺骗的攻击,保证网络的安全.
〔1〕谢希仁.计算机网络4版[M].北京:电子工业出版社,2003.
〔2〕邢金阁,刘扬.ARP欺骗攻击的检测及防御技术研究[J].东北农业大学学报,2012(8):74~77.
〔3〕秦丰林,段海新,等.ARP欺骗的监测与防范技术综述[J].计算机应用研究,2009,26(1):30-33.
〔4〕任侠,吕述望.ARP协议欺骗原理分析与抵御方法[J].计算机工程,2003,29(9):127-128.
〔5〕史隽彬,秦科.ARP攻击现状分析及一种应对ARP攻击的方法 [J].陕西理工学院学报,2013,29(2):45-49.
TP313
A
1673-260X(2016)09-0014-03
2016-05-09
铜陵学院校级教研课题(JY15013)
汪永生(1976-),男,助理实验师,硕士研究生,人工智能与计算机网络技术