为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

针对ARP欺骗的动态检测防御系统

2011-05-03 6页 pdf 222KB 18阅读

用户头像

is_710470

暂无简介

举报
针对ARP欺骗的动态检测防御系统 针对 ARP 欺骗的动态检测防御系统 陈文波 1 李善玺 2 (兰州大学通信网络中心,甘肃 兰州 730000) 摘 要:近两年来,ARP 欺骗大面积在网络中爆发,严重影响网络的正常使用,给网络管理人员造成了极 大的压力。由于 ARP 欺骗利用 TCP/IP 协议缺陷,造成长时间没有一个彻底的解决方案。本文从 ARP 原理 出发,尤其是通过对 ARP 的欺骗行为进行分类,总结出 ARP 欺骗的特征。针对这些特征,通过简单的 linux SHELL 脚本语言以及 SNMP 协议,设计实现了针对 ARP 攻击的动态检测...
针对ARP欺骗的动态检测防御系统
针对 ARP 欺骗的动态防御系统 陈文波 1 李善玺 2 (兰州大学通信网络中心,甘肃 兰州 730000) 摘 要:近两年来,ARP 欺骗大面积在网络中爆发,严重影响网络的正常使用,给网络管理人员造成了极 大的压力。由于 ARP 欺骗利用 TCP/IP 缺陷,造成长时间没有一个彻底的解决。本文从 ARP 原理 出发,尤其是通过对 ARP 的欺骗行为进行分类,总结出 ARP 欺骗的特征。针对这些特征,通过简单的 linux SHELL 脚本语言以及 SNMP 协议,实现了针对 ARP 攻击的动态检测防御系统。最后讨论了该方式目 前存在的问题以及今后的完善方法。 关键字:ARP 欺骗;ARP 欺骗动态检测;ARP 攻击防御系统 1 引言 在局域网中,通过 ARP 协议来完成 IP 地址转换为第二层物理地址(即 MAC 地址)的。ARP 协议对网络安全具有重要的意义。通过伪造 IP 地址和 MAC 地址实现 ARP 欺骗,能够 在网络中产生大量的 ARP 通信量使网络阻塞。近两年来,ARP 攻击大面积在网络中爆发, 严重影响网络的正常使用,给网络管理人员造成了极大的压力。 2 ARP 协议简述 ARP协议即地址解析协议Address Resolution Protocol,是网络层中的一个重要协议。在 局域网中,当一台主机把以太网数据帧发送到另一台主机时,是根据48 bit以太网地址来确 定目的接口的。网络中实际传输的每一帧里包含有目标主机的介质访问控制子层(Media Access Control,MAC)地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要 知道目标主机的MAC地址。而MAC地址可以通过地址解析协议获得。所谓“地址解析”就 是在IP地址和采用不同网络技术的硬件地址之间提供的动态映射。由此可见,ARP的基本功 能就是通过目标主机的IP地址,查询其物理MAC地址,以保证通信的顺利进行。 我们以下图说明 ARP 协议的原理及工作过程。 如上图:在一个子网中,假设主机 A 第一次与主机 B 进行通信,会有如下五个步骤: ① 主机 A 检查自己的 ARP cache 表,结果发现没有主机 B 的 MAC; ② 主机 A 发送 ARP 请求(ARP request 包),此包为广播包; ③ 主机 B 和同一子网的其他主机 X、Y 都能够收到主机 A 发送的请求包,并刷新自己的 ARP cache 表,增加(或者更新)表中的主机 A 的 MAC; ④ 主机 B 发送 ARP reply 包响应主机 A 的 ARP request 包,此包为单播包; ⑤ 主机 A 在自己的 ARP cache 表中增加主机 B 的 MAC。 经过上述 5 个步骤,一个完整的 ARP 过程就建立完毕。 3 ARP 协议的缺陷及欺骗原理 ARP 协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是 无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答, 只要收到目标 MAC 是自己的 ARP reply 包或 arp 广播包(包括 ARP request 和 ARP reply), 都会接受并缓存。这就为 ARP 欺骗提供了可能,恶意节点可以发布虚假的 ARP 报文从而影 响网内结点的通信,甚至可以做“中间人”。由于主机内都存在 ARP cache 表,ARP 攻击者将 发送大量的 ARP 欺骗报文以“淹没”正常的 ARP 报文,使得网络内主机 ARP cache 表内记 录错误的 MAC 信息,达到欺骗的目的。 4 ARP 欺骗形式 目前,我们通过 Sniffer 监听发现的 ARP 欺骗可以分成以下 3 类: 4.1 单一主机欺骗 主机 X(攻击者)申称自己为主机 A。在这个过程中,攻击者使用自己的 MAC 或 者伪造的 MAC 进行欺骗,并且此欺骗 MAC 始终不变。在我校的实际检测中,攻击者 绝大多数都使用自己的 MAC。 这一类欺骗主要是“网关欺骗”,即攻击者不间断申称自己为网关,欺骗网络内其 他主机以达到阻止其他主机向外的网络访问的目的,甚至达到截获数据包窃取信息的目 的。 4.2 全子网轮询欺骗(固定 MAC) T 时刻,主机 X(攻击者)申称自己为主机 A(子网内 IP 最小的一台主机); T+N 时刻,主机 X(攻击者)申称自己为主机 B; T+2N 时刻,主机 X(攻击者)申称自己为主机 C; T+3N 时刻,主机 X(攻击者)申称自己为主机 D; 。 。 。 。 。 。 。 。 T+M 时刻,主机 X(攻击者)申称自己为主机 Z(子网内 IP 最大的一台主机); 这一类欺骗攻击者首先判断出自己所在的子网,然后从自网内 IP 地址最小的一台 主机开始欺骗,隔一段时间 N,欺骗下一台 IP+1 的主机,一直到本子网内 IP 地址最大 的一台主机。攻击者欺骗时使用自己的 MAC 或者是伪造的 MAC 进行欺骗,并且此MAC 始终不变。在我校的实际检测中,攻击者绝大多数都使用自己的 MAC。时刻 N 与攻击主机的包发送频率有关。 4.3 全子网轮询欺骗(随机伪造 MAC) T 时刻,主机 X(攻击者)申称自己为主机 A(子网内 IP 最小的一台主机); T+N 时刻,主机 X(攻击者)申称自己为主机 B; 。 。 。 。 。 。 。 。 T+M 时刻,主机 X(攻击者)申称自己为主机 Z(子网内 IP 最大的一台主机); 这一类欺骗与第二种欺骗形式相同,攻击者从自网内 IP 地址最小的一台主机开始 欺骗,隔一段时间欺骗下一台 IP+1 的主机,一直到本子网内 IP 地址最大的一台主机。 与第二种欺骗形式不同的是,攻击者对每一个 IP 进行欺骗都会使用不同的、随机 产生的、伪造的 MAC 进行欺骗,以达到躲避检测的目的。 5 ARP 欺骗检测技术 目前简单、常见的 ARP 防御方法主要是通过 IP、MAC 的用户端和网关处的双向静态 绑定来实现的。此类解决方案优点是:简单、小规模网络内易实施、见效快。缺点是:大规 模网络不易部署、影响网络的移动性(用户换一个网段就必须重新确认绑定)、治标不治本, 网络内的攻击机仍然在发送大量的欺骗数据包,严重浪费网络带宽,网络性能仍然没有得到 有效改善。因此,必须查到“元凶”,阻止其向网络内发送欺骗数据包,净化网络流量。 如何查找攻击者?查找攻击者就是要找到攻击者发动攻击的 MAC。有以下四种方式可 以对子网状况进行检测,找到“攻击元凶”。 5.1 方法一:端口镜像 通过对各子网网关接口的镜像,可以获得到子网内第一手的网络情况。我们以在Cisco6000 系列的路由器上做端口镜像为例: Cisco6006(config)#monitor session 1 source vlan 2 - 9 both // 对 vlan2 至 vlan9 做端口镜像 Cisco6006(config)#monitor session 1 destination interface GigabitEthernet 1/2 // 将 vlan2 至vlan9 镜像的数据发送到 G1/2 接口 然后在端口 G1/2 上接入 sniffer 嗅探机,获取子网 2 至子网 9 内的数据包,通过对获得 到的数据报文进行分析,过滤出 ARP 欺骗的数据包,即可确定“攻击元凶”。 优点:可以获取到所镜像网络内真实的网络情况;针对上述 ARP 三种类型的欺骗都可 以有效检测。 缺点:将多个子网数据镜像到一个端口,搜集到的数据量过大;当路由器没有集中放置 时,嗅探机必须根据情况分布放置,则要求有一定量的嗅探机,不便于集中操作。 5.2 方法二:分析路由器日志 一旦网络内发生 ARP 欺骗,会出现攻击者和被攻击者“争抢”更新路由器 ARP cache 表的情况,所以在路由器的日志中会大量的“冲突”信息。在此冲突信息中包含有攻击 者的 MAC,因此通过分析路由器 log 可以查找到“元凶”。 优点:需要处理的数据量小;便于集中部署;针对 ARP 欺骗的第一种类型,“网关欺骗” 定位准确; 缺点:日志中会准确记录网关 MAC 冲突的信息,但是由于攻击者频繁发送大量的攻击 数据包,淹没了被攻击者的正常 ARP 数据包,造成网关收不到正常主机发送的 ARP reply 数据包,因而不记录主机 MAC 冲突。因此对于前面所述的两种“全子网轮询欺骗”不能准 确地定位。 5.3 方法三:分析路由器 ARP 表 ARP 攻击最终结果就是使主机和网关的 ARP 表记录错误的对应项,因此直接分析 ARP 表能够找到“元凶”。根据对我校网络检测发现,当某一个子网发生 ARP 欺骗时,该子网网 关路由器 ARP 表中将有几十个 IP 地址对应到同一个 MAC 地址上,下图为检测我校一路由 器 ARP 表的截图: 出现上图所示还有一种情况,就是该 MAC 所对应的主机上绑定了多个 IP 地址。但经 我们调查落实,在该主机上并未绑定多个 IP。并且再过几个 N 时刻(据我们检测,N≈2 秒), 该 MAC 所对应的 IP 地址会发生变化。根据 ARP 这种异样的动态变化,我们可以查找到ARP 欺骗的元凶。 优点:需要处理的数据量小;便于集中部署;针对第二种类型的 ARP 欺骗定位准确; 确定:只能针对第二种类型的 ARP 欺骗进行定位。 5.4 方法四:动态 MAC 地址库分析 上述的方法二、方法三都不能解决第三种 “全子网轮询欺骗(随机伪造 MAC)” 的ARP 欺骗。方法一受到路由器分布部署的限制而不能集中部署。我们采用“动态 MAC 地址 库分析”的方法来解决随机伪造 MAC 的 ARP 欺骗。其原理是,将路由器 ARP 表中的 MAC 地址摘取出来,与“全网 MAC 地址库”进行比对,如果摘取的 MAC 不在 MAC 地址库中, 该 MAC 就为疑似 ARP 攻击 MAC,该 MAC 所对应接入交换机端口将被关闭,待与用户落 实确实为用户主机 MAC 后再开放端口,并将该 MAC 加入到“全网 MAC 地址库”中。 由于我校入网时不登记用户 MAC,所以“全网 MAC 地址库”我们采取动态获得并动 态更新,我们将在具体实施中加以介绍。 6 具体实施 从上述的三种方法可以看出,针对不同类型的 ARP 欺骗,应当采取不同的方法。在具 体的部署实施时,应当综合考虑、相互结合使用。由于我校的网络层汇聚交换机分布在多个 校区、多个网络机房内,因此我们没有采用第一种“端口镜像”的方法。在具体实施过程中, 我们将方法二、方法三、方法四相互结合使用。 针对多种 ARP 欺骗形式,我们的解决思路是: 我校的“ARP 欺骗动态检测防御系统”建立在 Linux AS4 系统平台上,通过多个 Shell 脚本分析路由器日志、ARP 表来确定 ARP 欺骗源的 MAC,然后通过 snmpwalk 命令到接入 交换机中去查找接入端口,并通过 snmpset 命令关闭查找到的端口,最终生成网页通知用户。 6.1 第一、二步:分析并确定 ARP 欺骗源 MAC 6.1.1 分析路由器日志确定 ARP 欺骗源 MAC 在 Cisco 路由器中我们通过如下命令将系统日志记录到日志服务器中: Cisco(config)#logging facility local3 // 定义将一些错误信息记录到日志服务器,MAC 地址 冲突就属于这一类 Cisco(config)#logging source-interface GigabitEthernet1/1 // 定义发送日志的接口 Cisco(config)#logging 202.201.X.X // 定义日志服务器的 IP 地址 在日志服务器中将看到记录着这样一些信息的文件: 3w4d: %IP-4-DUPADDR: Duplicate address 210.26.50.1 on Vlan305, sourced by 0010.dc44.fed8 3w4d: %IP-4-DUPADDR: Duplicate address 210.26.50.1 on Vlan305, sourced by 0010.dc44.fed8 黑体字部分就是“网关欺骗”类型的 ARP 欺骗的主机的 MAC。通过一个 Shell 脚本很容易 提取出这个欺骗源的 MAC,并提交给第三步去处理。 6.1.2 分析路由器 ARP 表确定 ARP 欺骗源 MAC 在 linux 系统上使用 net-snmp 中的 snmpwalk 命令可以提取到路由器的 ARP 表,如: snmpwalk -v1 -Cc -c public 10.239.4.1 1.3.6.1.2.1.3.1.1.2 >/etc/cron.5min/arptable -v1 代表使用 SNMP 协议 v1 版本;-Cc 是忽略 OID 值渐增的情况,后面的“1.3.6.1.2.1.3.1.1.2” 就是Cisco路由器的ARP表的OID值;-c后面要跟您所要查看设备的 snmp可读的 community 值,我们这里以 public 为例;我们将 snmpwalk 命令执行的结果定向到/etc/cron.5min/arptable 这个文件中,得到如下格式的 arptable 文件: RFC1213-MIB::atPhysAddress.39.1.219.246.62.161 = Hex-STRING: 00 E0 FC 00 31 BD RFC1213-MIB::atPhysAddress.39.1.219.246.62.163 = Hex-STRING: 00 E0 FC 00 31 BD RFC1213-MIB::atPhysAddress.39.1.219.246.62.166 = Hex-STRING: 00 E0 FC 00 31 BD 斜体部分是 ip 地址,黑体部分是 MAC 地址。由于我校不允许用户在一块网卡上绑定多个IP 地址,因此上面的例子可以看作 ARP 欺骗。我们用 Shell 脚本对前面所生成的 arptable 文 件中的 MAC 地址部分执行一个 For 循环的比较,当某一个 MAC 出现 2 次以上时,此 MAC 记录为 ARP 欺骗的主机的 MAC,提交给第二步去处理。 6.1.3 动态 MAC 地址库分析 由于我校入网时不登记用户 MAC,因此,我们的“MAC 地址库”是动态生成的。具 体做法是:通过对基于 linux 平台 DHCP 服务器上的 dhcpd.leases 文件进行操作,提取出网 络内主机获得 IP 时的 MAC 作为我们的“MAC 地址库”中的地址。因为主机在申请 IP 时 所使用的 MAC 地址对于我们来说是真实的、可信的 MAC。通过 1 个月的采集,我校的 MAC 地址数维持在 29000 个左右,这构成了我们的“MAC 地址库”。以后每个星期执行一次上述 采集过程动态更新“MAC 地址库”。 然后我们还是通过使用 snmpwalk 命令可以提取到接入交换机的 MAC-PORT 对应表: snmpwalk -v1 -Cc -c public $managerip 1.3.6.1.2.1.17.4.3.1.2 >/etc/cron.5min/mactable 这里的变量$managerip 是我们定义的接入交换机管理 IP 地址,定义一个 FOR 循环对所有的 交换机循环执行,得到如下格式的 mactable 文件: SNMPv2-SMI::mib-2.17.4.3.1.2.0.4.97.78.226.229 = INTEGER: 22 其中斜体部分就是 MAC 地址,不过是点分十进制表示形式。使用 Shell 脚本将此 MAC 换算成点分十六进制形式,并与“MAC 地址库”中的 MAC 地址逐一进行比较,如果不在 “MAC 地址库”中,此 MAC 记录为 ARP 欺骗的主机的 MAC,提交给第二步去处理。 由于我校“MAC 地址库”地址数较多,进行动态 MAC 地址库分析较费时间,此过程 在单独一台服务器上运行。上述过程我们都是通过定义 Linux 定时任务系统 Cron 来定时执 行。 6.2 确定 ARP 欺骗源的接入交换机端口 还是通过使用 snmpwalk 命令可以提取到接入交换机的 MAC-PORT 对应表: snmpwalk -v1 -Cc -c public $managerip 1.3.6.1.2.1.17.4.3.1.2 >/etc/cron.5min/macport 得到 macport 文件由如下格式: SNMPv2-SMI::mib-2.17.4.3.1.2.0.4.97.78.226.229 = INTEGER: 22 黑体部分 MAC 所对应的交换机端口号。为同样如前所述,将点分十进制的 MAC 形式 转换为十六进制形式,并与第二步提交的 ARP 欺骗源 MAC 进行比较,如果查找到所对应 的$managerip 和端口号(附值给$port)提交到第四步。 6.3 关闭 ARP 欺骗源的接入交换机端口 使用 snmpset 命令关闭交换机端口: snmpset -v1 -c public $managerip ifAdminStatus.$port 这里的$managerip 与$port 变量是由第三步中所提交的交换机 IP 和该 MAC 所对应的交 换机端口号。 6.4 网页通知用户 我校已经有用户房间和交换机端口所对应的数据库,所以在第三步确定到的交换机端口 号很容易定位到具体的用户房间。我们将此对应信息使用 echo 命令重定向到一个 html 文件, 用户可以方便的查看自己的端口是否被“ARP 防御系统”关闭。根据需要我们还为管理员 提供关闭端口的日志信息,包括:端口关闭的时间、端口所对在的交换机 IP、用户的 MAC 地址等信息。出于安全考虑,这些信息不向普通用户公布,只公布关闭端口所对应的房间号 以及该端口所对应的后四位 MAC 地址,以保证用户的 MAC 不被人利用。 7 结束语 我校目前拥有各类交换机 600 余台,支持 SNMP 协议的交换机 400 多台,近 200 台不 支持 SNMP 协议的交换机目前还无法部署“ARP 欺骗动态检测防御系统”。此系统部署初期 的 20 天内,累计关闭的端口多达 800 多个,每天都有近 40 至 50 个用户的端口被关闭并且 申请开通。系统运行了 1 个月左右的时间后,每天关闭的端口数迅速下降,现在每天关闭的 用户数在 2 至 3 个,ARP 欺骗的情况得到了有效的缓解。但是还有约 1/3 的区域没有实施此 系统,ARP 欺骗情况还十分严重。由于我们所做的工作都是在网管处监测网络运行情况, 不能如实地得到网络内的真实情况,在系统部署的区域还是有用户反映网络偶尔还是会中 断,并且存在“误杀”的可能性。我们下一步的目标是在每个子网内安装网络运行状况监控 程序,该程序运行在用户志愿者的机器上,将每个子网的运行情况汇报到中心机房的服务器 上,提供给网管人员分析子网内的网络运行情况,使网管人员能够得到及时、准确地子网内 的网络信息,进一步保障校园网络的健康、稳定的运行。 参考文献 [1] Stevens W R. TCP/IP 详解 卷 1: 协议[M]. 北京: 机械工业出版社, 2000 [2] Stevens W R. TCP/IP 详解 卷 2: 实现[M]. 北京: 机械工业出版社, 2000 [3]基于 SNMP 的 cisco 网络环境中设备定[EB/OL]http://net-snmp.cn/snmp/SNMP-cisco.html [4] 刘贵松,晏华,章毅.基于ARP协议的局域网访问控制[J]. 电子科技大学学报,2005,4
/
本文档为【针对ARP欺骗的动态检测防御系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索