一种基于交换机的局域网ARP 攻击防御方法的研究及系统实现(1)

摘要

        ARP(Address Resolution Protocol)协议即地址解析协议,负责实现IP (Internet Protocol)地址到网络接口硬件地址的映射,是计算机网络运行的基础协议之一,它最早运行在可信局域网之上。而今,局域网已经不再是可信网络。因而,ARP 运行中出现了一些不安全因素。目前,因为 ARP 攻击而导致个人主机、企业内网、校园网络的例子不胜枚举。当前针对 ARP攻击的主要防御方式都存在着一定的缺陷,例如不能及时发现 ARP 攻击、不能准确定位 ARP 攻击源等。为了解决上述问题本文设计并实现了一种基于交换机的局域网 ARP 攻击防御方法,实时检测 ARP 攻击,自动隔离 ARP 攻击源,并且不会影响正常主机之间的通信该方法主要从两个方面来防御 ARP 攻击。第一个方面是防御 ARP洪泛攻击,由于此种攻击会在网络中产生大量虚假的源 (MACMediaAccess Control)地址,即硬件地址,因此采用配置交换机端口的安全策略来对其进行防御。另一个方面是防御 ARP 欺骗攻击,由于此种攻击会伪装成网关或网络中某台主机,因此我们在网络中部署一些监测点,检测虚假 ARP数据包,再根据虚假 ARP数据中的虚假 MAC 地址查找 ARP攻击源,最后对攻击源进行处理。
        本文实现并测试了该方法。通过测试证明了此方法比现存的几种ARP攻击防御方法能够更加有效的防御 ARP的攻击。
关键词:ARP攻击;交换机;安全策略;攻击源;局域网

第1章绪论

        随着现代瓦联网络的飞速发展,网络规模的不断扩大,网络与信息系统的复杂度正在不断增加,随之暴露出来的漏洞越来越多,由此给互联网络所带来的安全威胁与损失也越来越大。解决世界范围内的信息安全问题已经刻不容缓。
        造成信息和网络安全问题的因素很多,主要可归纳为两方面。一方面是技术方面的问题,目前的计算机操作系统和应用软件或多或少存在一定的安全漏洞,而攻击者恰恰利用了这些漏洞,由于计算机病毒防治技术相对要落后于病毒攻击,因此会造成病毒在一定范围内蔓延;另一方面是管理方面的问题,由于管理人员的技术水平不足和管理不善造成的安全问题也层出不穷,系统漏洞修复的滞后和安全防护措施的不够给攻击者提供了机会。再加之,互联网是一个开放的系统,任何微小的漏洞和病毒都会快速蔓延,甚至殃及全球,因此网络安全问题不容忽视。根据国家计算机病毒应急处理中心发布的《中国互联网网络安全报告 (2008 年上半年)》中的数据显示,2008 年上半年,国家互联网应急中心(CNCERT)通过技术平台共捕获约 90万个恶意代码,比去年同期增长 62.5%]。每年都有相当数量具有一定影响力的新计算机病毒出现它们造成的破坏和损失也更大,人们花费在病毒防治方面的精力和技术也越多。如2007年ARP 病毒就表现很突出,江民公司发布的《07 年上半年病毒报告及十大病毒》中ARP 病毒[2][3][4]排名第四,瑞星公司发布的《2007年上半年电脑病毒疫情和互联网安全报告》中 ARP 病毒排名第六。

1.1选景及意义

        ARP 协议是一个基础协议,它的应用非常广泛。该协议用于将计算机的网络 IP 地址转化为物理 MAC 地址,其基本功能就是通过目标设备的 IP地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。ARP协议工作在局域网中,早期的协议设计者认为局域网是可信赖的,同时为了考虑传输效率,没有加入安全机制口[5][6]。现在的网络规模已经今非昔比,局域网已经不再是原始意义上的局域网络,但 ARP 协议仍然扮演着同样重要的角色,攻击者正是利用了这一特点,利用该协议实现攻击目的。ARP 攻击通过伪造 IP 地址和MAC地址实现 ARP 欺骗,它造成目标主机 ARP高速缓存信息错误,从而影响网络通信,实施网络欺骗。

        目前,ARP 攻击技术正在被越来越多的病毒所使用,成为局域网安全的新杀手。《病毒预报》第二百二十七期(2007.6.4-2007.6.10)报道,国家计算机病毒应急处理中心通过互联网络监测发现,一种新型“地址解析协议欺骗”(简称:ARP 欺骗)的恶意木马程序的正在互联网络中传播,并且它会在局域网络中寻找网络数据响应包,在包内加入恶意木马程序的代码信息,最终导致局域网中用户计算机系统感染木马程序,使得计算机系统中的信息篡改或丢失。该“ARP 欺骗”的恶意木马程序入侵某个局域网中的计算机系统后,它会试图通过“ARP 欺骗”手段截获所在局域网络内其它计算机系统的通信信息,导致该局域网出现突然掉线,过一段时间后又会恢复正常的现象。同时,网内的其他计算机系统也会受到影响,出现IP 地址冲突、频繁断网、IE (Iternet Explorer)浏览器频繁出错,以及一些系统内常用软件出现故障等现象。除外,它会对局域网络中所有的数据包进行分析,过滤出网页浏览请求的应答数据包,并在数据包里面插入恶意代码,一旦计算机系统中的 IE 浏览器存在漏洞,那么计算机用户浏览网页的同时就会自动下载并运行恶意木马程序。
        自从 2006 年 ARP欺骗攻击第一次出现,ARP 攻击就没有彻底解决过,局域网中“掉线”、“网站中病毒”“网络速度异常慢”的现象经常可见,给网络的可用性、稳定性带来不少挑战。另外一方面,网络管理人员疲于解决这一起起网络攻击事件,给计算机网络带来了不少麻烦。近年来,因为 ARP 攻击而导致个人主机、企业内网、校园网络瘫痪的例子不胜枚举。ARP 攻击已经成为了局域网中一个严重的安全问题。因此研究局域网 ARP攻击防范措施,进而增强局域网的安全性刻不容缓。

1.2国内外研究现状

        ARP 攻击是近几年出现在网络上的,目前主要防御措施是采用双向绑定和安装监控软件。
        1.双向绑定17]主要是在网关、客户主机两端静态绑定对方 IP-MAC地址,或者通过交换机的端口设置、VLAN(Virtual LocalArea Network)设置功能来实现对两端的静态绑定。这种防御措施需要用户掌握一定的网络管理知识,在绑定的过程中需要配备支持绑定功能的网关设备,并且所能防御的 ARP攻击种类有限。
        2.配置交换机端口安全策略[8],在交换机端口上设置允许通过的源MAC 地址的阅值,当端口的安全地址的数目超过阙值时,则会产生安全违例。这种防御措施用户掌握一定的交换机配置知识,并且只能发现大量变化MAC地址的 ARP 攻击。
        3.安装监控软件即 ARP防火墙系统[9,当前的 ARP 防火墙系统分为单机版和网络版两种。单机版的系统用于实现对网络内单台主机的防御当前的单机版防御系统通过向默认网关发送 ARP 请求来获得网关的物理地址,然后将默认网关的 IP-MAC 映射对静态绑定到内核 ARP缓存表中去,从而防止网关的 ARP 缓存记录被篡改,保证本地主机同默认网关的正常通信。由于网络内的主机情况是变化的,例如新主机的加入、旧主机的退出、主机更换 IP 地址、添加新的 IP 地址、更换网卡等,若防御系统需要对网络内其它主机进行绑定,就要定时地对其它主机发送广播请求,这样就会造成 ARP广播风暴,因此如何建立一个动态实时更新的IP-MAC映射库又能有效地克服 ARP广播风暴成为困扰当前防御系统的一个主要问题。当前的防御系统还不能防止非网关的 ARP 缓存记录被篡改,因此对于分布式计算环境中的主机,由于主机之间需要协同操作,这些防御系统是无法起到防御效果的。
        网络版的防御系统用于实现对整个网络而非单台主机的防御,它所实现的是网络级检测的功能。该防御系统拥有服务器和客户端两套软件可以选择网络内的某一台主机作为服务器,其它主机作为客户端,每当有新的主机加入都会将本地主机的 IP-MAC映射对上报给服务器由其统一管理,客户端也会定时地将本地主机的 ARP缓存表内容上报给服务器服务器会对上报的内容进行审核,监测客户端的ARP 缓存表是否被算改由于网络版的防御系统需要在网络内的所有主机上安装客户端软件,安装的工作量大且不易管理。
        目前市场上的 ARP防火墙系统主要有金山 ARP防火墙、360安全士的 ARP防火墙,还有早期便开始涉足该领域的 Antiarp。这些防御系统在防御 ARP 攻击的同时也带来一些严重问题,例如南开大学网络中心一次经过调查分析,发现 Antiarp 软件(或类似的 ARP 防火墙软件)产生大量的 ARP广播包,已经超过整个网络广播包的 55%以上,初步确定本次网络频繁中断不是由于 ARP 病毒本身造成,而是由于 Antiarp 软件产生的ARP广播包造成的。引起 ARP 广播风暴的原因就是 ARP 防火墙软件在遭受了 ARP 攻击之后,会立刻主动向网关发起 ARP 请求,与网关交换ARP 信息,从而达到同时保护网关上的 ARP 缓存记录。如果被攻击的频率非常快,ARP 防火墙软件所发送的 ARP 数据包也就非常快,从而对网关造成很大的压力。这说明,现在的 ARP 防火墙在某种程度上是带着“以毒攻毒”的思想来进行防御的。这势必给大型局域网带来很大的危险,那就是 ARP广播风暴,影响整个局域网的正常使用。还有 ARP防火墙软件在发现攻击,追踪攻击源时不能很有效地判断攻击源,它们只是简单地根据异常 ARP数据包中关于源物理地址的记录来追踪攻击源,可靠性较低。

1.3本文研究思路和主要工作

1.3.1研究思路

        本文从研究 ARP 协议的工作原理和交换机的工作原理出发,通过分析 ARP攻击方式、分析现存的 ARP安全防护措施,并结合交换机端口安全策略,探究基于交换机的局域网 ARP 攻击防御方法,使该方法能够弥补现存 ARP 安全防护措施的缺陷,实现对 ARP 攻击源的实时检测、准确定位和自动隔离,最后编写系统实现该方法并对防御局域网 ARP 击的效果进行测试。

1.3.2主要工作

        本文首先分析 ARP 协议相关的描述和工作原理,通过分析 ARP 协议在局域网中的工作原理,找到 ARP 攻击产生的根本原因。接着分析交换机的工作原理,理解交换机在局域网中对数据包的转发过程。然后研究ARP攻击方式和现存 ARP安全防护措施探究基于交换机的局域网ARP攻击防御方法,从而解决局域网 ARP攻击问题。再通过 Visual C++编写系统程序实现该防御方法,对局域网 ARP攻击进行防御。最后对该防御系统的效果进行测试,测试在真实的实验室环境进行。

1.4本文的框架结构

        本文共分六章。
        第一章为绪论。介绍我国互联网网络安全现状,分析课题的背景及
意义,给出本文的研究思路和主要工作。第二章为 ARP攻击及防御的理论与技术。首先详细介绍 ARP 协议及其工作原理和交换机的工作原理。其次详细介绍 ARP 攻击的原理,分析ARP 攻击的方式。最后详细叶皑鞍础绍现存的 ARP 攻击防御方法及其缺陷。第三章为基于交换机的局域网 ARP 攻击防御原理。详细介绍基于交换机的局域网 ARP攻击防御的原理。

        第四章为基于交换机的局域网 ARP 攻击防御系统的设计与实现。详细介绍对基于交换机的局域网 ARP攻击防御方法的实现。
        第五章为 ARP攻击防御系统测试。利用真实的实验环境对系统防御ARP 攻击的效果进行测试,验证基于交换机的局域网 ARP 攻击防御方法的有效性。
        第六章为结论。对本文的研究工作进行总结,提出进一步完善 ARP攻击防御方法的研究方向和需要做的工作。

第2章ARP攻击及防御的理论与技术

        ARP协议是一个基础协议,工作在可信局域网中。而现在的网络规模已经今非昔比,局域网已经不再是可信的, ARP 攻击随之出现了。

2.1ARP协议

        在计算机领域中,ARP全称为 Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。

2.1.1ARP协议简介

        根据 RFC826[7]的定义,地址解析协议 ARP是TCP/IP 协议族中的一个协议。它的基本功能就是将网络层的 IP 地址映射为数据链路层的物理地址(MAC 地址)。
        在以太网中,由于以太网设备并不识别 32 位的 IP 地址,所以数据包的传送不是通过 IP 地址,而是通过 48位 MAC 地址来完成的。也就是说,在以太网中,一台主机要和另一台主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标主机的 MAC 地址我们如何获得呢?它就是通过 ARP 协议获得的。ARP 协议用于将网络中的 IP 地址解析为MAC地址,以保证通信的顺利进行。

2.1.2ARP协议工作原理

        每台主机都有一个ARP缓存表,用来存储 IP 地址和 MAC 地址的映射关系。在 windows操作系统中,在命令行窗口中,输入 arp-a 会出现类似于这样的条目:
        202.118191 00-e0-5f-e6-c5-d7 dynamic
        这就是电脑里存储的关于IP 地址与MAC地址的对应关系,dynamic表示是临时存储在 ARP 缓存中的条目,过一段时间就会超时被删除(windows xp/2003 系统是2分钟)。这样一来,如果电脑要和一台机器比如202.118.19.1通信的时候,它会首先去检查 ARP 缓存,查找是否有对应的 ARP条目,如果没有,它就会给这个以太网络发 ARP 请求包广播询问 202.118.19.1的对应 MAC 地址,当然,网络中每台电脑都会收到这个请求包,但是它们发现 202.118.19.1 并非自己,就不会做出相应,而202.118.19.1就会给电脑回复一个 ARP应答包,告诉它的 MAC 地址是XX-XX-XX-XX-XX-XX,于是电脑的 ARP 缓存就会相应刷新,多了这么一条:
        202.118.19.1 XX-XX-XX-XX-XX-XX dynamic
        ARP缓存表会根据收到的 ARP 请求包或ARP应答包进行动态更新而且 ARP 缓存表还采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少 ARP 缓存表的长度,加快查询速度。ARP协议工作原理相见图 21和图22。

c9ae583128d242b3bb2e2f812057e34b.png

        源主机在传输数据前,首先要对初始数据进行封装,在该过程中会把目的主机的 IP 地址和 MAC 地址封装进去。在通信的最初阶段,我们能够知道目的主机的 IP 地址,而 MAC 地址却是未知的。这时如果目的主机和源主机在同一个网段内,源主机会以第二层广播的方式发送 ARP请求报文。ARP 请求报文中含有源主机的 IP 地址和 MAC 地址,以及目的主机的 IP 地址。当该报文通过广播方式到达目的主机时,目的主机会响应该请求,并返回 ARP 响应报文,从而源主机可以获取目的主机的MAC 地址,同样目的主机也能够获得源主机的 MAC 地址。如果目的主机和源主机地址不在同一个网段内,源主机发出的 IP 数据包会送到交换机的默认网关,而默认网关的 MAC 地址同样可以通过 ARP 协议获取。经过 ARP协议解析 IP 地址之后,主机会在缓存中保存 IP 地址和MAC地址的映射条目,此后再进行数据交换时只要从缓存中读取映射条目即可。

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值