一种自动检测假冒主机ARP欺骗的方法与流程

文档序号:12739976阅读:503来源:国知局
一种自动检测假冒主机ARP欺骗的方法与流程

本发明涉及网络通信技术领域,尤其涉及一种自动检测假冒主机ARP欺骗的方法。



背景技术:

ARP是Address Resolution Protocol的简称,既地址解析协议,ARP的功能是在IP(Internet Protocol)地址和MAC(Media Access Control)地址之间提供动态映射。ARP协议设计的初衷假设网络中的主机和数据包都是可信的,但是事实远非如此,ARP欺骗对网络安全造成巨大安全隐患,许多局域网LAN(Local Area Network)都深受其害,有些ARP欺骗是病毒造成的,也有些是人为精心设计的非法监听和恶意假冒的网络攻击。

为了对付ARP欺骗人们采取了许多方法:包括在计算机安装ARP防火墙,在计算机和网关双向绑定MAC-IP地址,网络管理员通过网络抓包检测ARP欺骗,发现ARP欺骗后操作交换机封闭其端口,在网络设备启用DHCP Snooping(DHCP监听)IP Source Guard(IP源地址保护)和DAI(动态ARP检查Dynamic ARP Inspection),分析路由器的ARP表检测ARP欺骗等。但是上述方法都有一些缺点:在用户计算机上安装ARP防火墙难以集中管理,ARP防火墙防己不防人,甚至有些ARP防火墙以攻击来对抗攻击以至于对整个网络带来危害;双向绑定MAC-IP的维护工作量巨大,并且不能适应越来越多的笔记本电脑以及WiFi环境;通过网络抓包只能检测到当前正在发生的ARP欺骗,在交换网络中监听不同的网段需要频繁切换端口或者配置不同的端口镜像,抓包分析工作量很大并且对网络管理员有比较高的技术要求;启用DHCP Snooping 、IP Source Guard和DAI对整个网络环境和交换机设备有比较高的要求,许多中低端的交换机(例如Cisco2960)都不支持,此外在人工设置静态IP和DHCP并存的网络环境中IP Source Guard依然需要静态绑定MAC-IP;除了DAI之外还有许多其他的防范ARP欺骗的方法也都对现有的网络具有“侵入性”,需要改变网络协议,需要更改现有的网络设备,这些方法即使在理论上很完善在现实中仍然难以推广;现在有一些“非侵入性”的通过分析路由器的ARP表检测假冒主机ARP欺骗的方法,但是这些方法中有些没有保存路由器的ARP表到数据库,其他的方法由于没有找到MAC-IP保存到数据库的最佳策略而导致丢失历史记录或者因为保存了大量重复数据导致系统性能下降,并且现有的方法由于没有排除网关的MAC地址、运行多虚拟机的计算机、笔记本电脑移动办公等特殊情况而会导致误判。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种自动检测假冒主机ARP欺骗的方法。本发明可适应于各种网络环境和网络设备、并且不会误判。

为了解决上述技术问题,本发明实施例提供了一种自动检测假冒主机ARP欺骗的方法,包括数据采集方法和ARP欺骗检测方法,所述数据采集方法包括对于采集到的每一个MAC-IP记录,首先查询数据库原有记录中MAC地址等于该MAC地址的最新时间戳或者查询MAC地址等于该MAC地址的最大的自增长字段编号,然后查询原有记录中MAC地址等于该MAC地址并且时间戳等于最新时间戳的记录或者查询自增长字段的值等于刚才查询到的最大自增长字段编号的记录,如果该记录存在并且其IP地址等于采集到的IP地址则更新原有记录的时间戳为当前时间,否则插入一条新记录;所述ARP欺骗检测方法包括对MAC地址对应的不同IP地址数进行检测,当其超过设定阀值时加入疑似ARP欺骗列表。

进一步地,所述ARP欺骗检测方法还包括对于初步筛选的每一个疑似ARP欺骗进行分析确认,确认过程采用排除法,通过白名单、分析ipNetToMediaType的值、分析IP地址的分布规律和时态变化规律中的至少一种方式,排除路由器等网络设备本身的MAC地址、一台计算机运行多个虚拟机等情况,最终确认其是否ARP欺骗。

更进一步地,所述阀值取值范围为2-10,默认值为3。

实施本发明实施例,具有如下有益效果:本发明能够适应于各种网络环境和网络设备,对现有网络没有“侵入性”,能够处理各种复杂情况,且避免产生误判,在数据库中既保存MAC-IP地址的最新记录又保留历史变化,既能够满足后续的初步筛选、分析确认查询需求,并且由于没有保存大量的重复记录,系统的性能保持良好,一台普通的服务器就能支持由成千上万网络设备(交换机和路由器)、数十万台计算机组成的大型网络的假冒主机ARP欺骗的自动检测。

附图说明

图1是自动检测假冒主机ARP欺骗的结构图;

图2是数据库的部分数据字典的示意图;

图3是数据采集程序采集ARP表并保存到数据库的流程图;

图4是检测假冒主机ARP欺骗算法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

本发明实施公开了一种自动检测假冒主机ARP欺骗的方法,拓扑结构图如图1所示,包括数据采集方法和ARP欺骗检测方法两部分,检测方法包括初步筛选和分析确认。

1.数据采集程序

数据采集程序使用 SNMP协议自动定时获取三层设备(路由器、三层交换机、防火墙等工作在TCP/IP协议第三层的设备)的ARP表并保存到数据库,采集频率要小于设备ARP表的过期时间(通常默认是20分钟),否则可能会丢失数据,通常设置采样频率为10分钟。

程序采集网络设备的ARP表主要有两种方式:SNMP(Simple Network Management Protocol)协议和CLI(Command Line Interface)命令行。CLI命令行原本用于人机交互过程,用来采集ARP表有许多缺点,首先命令行方式对设备的适应能力差,不同厂家的设备指令类型完全不同,即使是同一台设备当软件配置不同时需要输入的指令序列也不尽相同,此外程序用命令行方式获取ARP表需要执行很多步骤,包括连接到交换机(TELNET/SSH)、输入账号、输入密码、进入配置模式,执行查看ARP的命令show ip arp(Cisco的设备)或者disp arp(华为设备)、解析返回的结果等,特别是当ARP条目比较多时候需要非常多次的翻页操作,流程复杂并且性能低。

本发明采用SNMP的方式采集数据,目前的网络设备都支持SNMP协议,由于采集ARP表不涉及私有MIB (Management Information Base),通过SNMP协议采集网络设备的ARP表和设备的厂商型号以及软件配置完全无关。SNMPv2提供了Get-Bulk原语,能够以批量的方式获取数据,大大减少了应用程序和网络设备的交互次数,提高了性能并简化了编程。根据原有标准RFC1213 ARP表对应的MIB是ipNetToMediaTable而新标准RFC4293是ipNetToPhysicalTable,本发明以当前普遍使用的ipNetToMediaTable进行说明,一个ipNetToMediaTable可以包含多个ipNetToMediaEntry( OID:1.3.6.1.2.1.4.22.1),每一个ipNetToMediaEntry包括以下数据项:

1.3.6.1.2.1.4.22.1.1 - ipNetToMediaIfIndex

1.3.6.1.2.1.4.22.1.2 - ipNetToMediaPhysAddress

1.3.6.1.2.1.4.22.1.3 - ipNetToMediaNetAddress

1.3.6.1.2.1.4.22.1.4 –ipNetToMediaType

2.数据库设计

数据库数据字典的核心部分如图2所示,设备基本信息表保存网络设备的连接参数和设备型号,包括IP地址、SNMP端口号、SNMP Community String等字段,ARP表的字段名称和类型参照MIB 对应项的名称和类型,只是额外增加网络设备IP、时间戳等字段。

3.数据采集程序保存数据库的算法

如果每次采集到的每一个MAC-IP条目都写入数据库的话,数据量太大,以汕头大学为例,每次从路由器大概取出一万余条MAC-IP纪录,假设采样频率是十分钟,一天的数据量就超过百万,但这些数据绝大多数都是重复的,对于检测ARP欺骗并无用处,反而会严重影响性能。如果只保留最近一次采集到的ARP数据,虽然大大降低了数据量,并且也可以检测到当前时刻一个MAC对应多个IP的情况,但是因为没有保存MAC-IP的历史变化规律,难以应对时断时续的ARP欺骗,也无法判断某个MAC地址在发起ARP欺骗前正常使用的IP,特别是后续检测算法无法通过MAC-IP的时态变化规律辨别一台计算机运行多虚拟机等复杂情况。

针对以上问题,本发明的做法是数据采集程序调用数据库存储过程,在存储过程中实现了MAC-IP保存到数据库的业务逻辑:对每一个MAC-IP条目进行判断,首先查询数据库原有记录中MAC地址等于该MAC地址的最新时间戳(或者查询MAC地址等于该MAC地址的最大的自增长字段编号),然后查询原有记录中MAC等于该MAC地址并且时间戳等于最新时间戳的记录(或者查询自增长字段的值等于刚才查询到的最大自增长字段编号的记录),如果该记录存在并且其IP地址等于采集到的IP地址则更新原有记录的时间戳为当前时间,否则插入一条新记录。这样在数据库中既不保存大量重复的MAC-IP的记录,又能够保存最新的MAC-IP条目,并能够保存MAC-IP条目的历史变化情况。算法流程图如图3所示。

保存MAC-IP到数据库的业务逻辑有这样的特点:输入、输出的数据量极少,但是中间过程有一个业务流程并且涉及到的数据比较多,对于这样的场景,使用存储过程能够大大减少程序和数据库的交互次数和交互数据量,在存储过程中实现业务逻辑要比在客户端或者在应用服务器中实现性能好得多。

4.检测假冒主机ARP欺骗的方法

检测原理是当网络中出现假冒主机的ARP欺骗时候,在三层设备(通常是路由器)的ARP缓存表会出现一个MAC地址(ARP欺骗者的MAC地址)对应多个IP地址(一个是正常使用的IP,其他是假冒别的主机的IP)的情况,但并不是所有的一个MAC对应多个IP都是ARP欺骗,还要排除各种复杂情况。本发明公开的检测方法包括初步筛选和分析确认,流程图4所示。

从理论上来讲MAC地址是固化在网卡上(虽然操作系统也可以修改),并且ARP欺骗一般不会改变MAC地址,因为ARP欺骗的目的是为了侦听和仿冒,频繁更改MAC地址并没有意义,即使理论上存在同时更改MAC和IP的ARP欺骗(现实中几乎不存在),也可以通过限制接入交换机端口的MAC地址数目轻易的进行阻止,所以检测假冒主机的ARP欺骗从一个MAC地址对应多个IP地址入手而不是相反。

由于数据采集程序已经把路由器的ARP表保存到数据库,只要一条SQL语句(利用group by 和having子句)就可以筛选出个一个MAC地址对应多个不同IP地址的情况。这里需要设置一个阈值(阈值取值在2-10之间,默认值取3),当一个MAC地址对应的IP数大于这个阈值才进行下一步判断,这样就排除了跨网段使用笔记本电脑以及IP地址正常切换等情况,然后对初步筛选的每一个MAC地址进行分析确认。

首先路由器等网络设备本身的MAC地址会出现对于多个IP地址的情况,这些IP地址就是网关地址,这是因为路由器的一个MAC地址需要进行多个网段(或者子网)之间的数据转发。针对路由器等网络设备的MAC地址有多种处理方法:第一种是人工将其列入白名单,第二种是自动识别。自动识别有两种方法:根据ipNetToMediaType的值和分析IP地址的分布规律和时态变化规律。路由器其自身的MAC-IP是静态的,不是通过ARP协议动态学习的,在MIB中表现为ipNetToMediaType值是4,如果没有在路由器进行静态MAC-IP绑定,根据ipNetToMediaType的值就可以判断出路由器本身的MAC-IP。即使在路由器进行了静态MAC-IP绑定,不能通过ipNetToMediaType自动判断出路由器的MAC地址,也可以通过分析IP地址的分布规律和时态变化规律,把路由器的MAC和ARP欺骗区别开来。路由器的一个MAC地址对应多个IP地址的行为模式和一般ARP欺骗有显著不同,因为ARP欺骗不能跨网段,如果这些IP分属不同的网段就可以排除是ARP欺骗,对于一些划分子网的网络环境难以自动区分不同的子网,可以根据IP地址的时态变化规律进行判断,判断方法和下述判断运行多虚拟机的计算机一样。

如果某台计算机安装了虚拟机软件(例如VMware、Hyper-V等),虚拟网络运行在桥接模式,并且运行多个虚拟机就会出现一个MAC地址对应多个IP的情况,原因是虚拟机软件模拟出了多个虚拟网卡,这些虚拟网卡也要从物理网卡读写数据,这样就避免不了多个IP对应同个物理MAC,随着虚拟化的普及,这种情况会越来越多,必须加以辨别。

一般来说一台普通计算机只运行一两台虚拟机,通过设置阈值已经排除了这种情况,对于极少数极端情况,可以通过分析IP地址的时态变化规律加以区别。运行多虚拟机的计算机虽然一个MAC会对应多个IP,但是对应关系是很有规律的,当某一个时刻该MAC对应多个不同IP,下一个时刻往往还是对应这些IP,在数据库的ARP表中表现为多个MAC-IP的对应关系循环出现。多虚拟机的MAC-IP随时间变化非常缓慢,只有增加、删除虚拟机、关机时间超过ARP过期时间才会出现,而真正的ARP欺骗,不仅MAC对应IP数非常多(大于10),而且MAC-IP的时态变化是频繁并且杂乱无章的,通过IP地址的时态变化规律就可以明显区别。

本发明具有如下优点:

1、能够适应于各种网络环境和网络设备,对现有网络没有“侵入性”。

技术手段:使用SNMP协议定时采集路由器的ARP表并保存到数据库,通过分析MAC-IP地址的对应关系来检测假冒主机的ARP欺骗。

2、在数据库中既保存MAC-IP地址的最新记录又保留历史变化,既能够满足后续的初步筛选、分析确认查询需求,并且在数据库不保存大量的重复记录,系统的性能很好,一台普通的服务器就能支持由成千上万网络设备(交换机和路由器)、数十万台计算机组成的大型网络的假冒主机ARP欺骗的自动检测。

技术手段:数据采集程序调用数据库存储过程,存储过程实现了MAC-IP保存到数据库的业务逻辑:对每一个MAC-IP条目进行判断,首先查询数据库原有记录中MAC地址等于该MAC地址的最新时间戳(或者查询MAC地址等于该MAC地址的最大的自增长字段编号),然后查询原有记录中MAC等于该MAC地址并且时间戳等于最新时间戳的记录(或者查询自增长字段的值等于刚才查询到的最大自增长字段编号的记录),如果该记录存在并且其IP地址等于采集到的IP地址则更新原有记录的时间戳为当前时间,否则插入一条新记录。

3、能够处理各种复杂情况,不会产生误判

技术手段:检测假冒主机的ARP欺骗分为初步筛选和分析确认两个步骤,初步筛选分析一个MAC地址对应的不同IP地址数大于某个阈值的记录,通过设置阈值排除了笔记本电脑跨网段使用、IP地址切换等正常情况。分析确认步骤通过白名单、分析ipNetToMediaType的值、分析IP地址的分布规律和时态变化规律等方式,排除路由器等网络设备本身的MAC地址、一台计算机运行多个虚拟机等复杂情况。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1