专利名称:针对arp欺骗的多级检测和防御方法
技术领域:
本发明涉及针对ARP欺骗的检测和防御方法,尤其涉及一种针对ARP欺骗的多级检测和防御方法。
背景技术:
ARP (Address Resolution Protocol)地址解析协议,是一种将IP地址转化成物理(MAC,Media Access Control)地址的协议。ARP为早期的网络协议,RFC826于1980年出版。早期的互联网采取的是信任模式,不考虑网络安全问题,因此导致了 ARP欺骗问题的出现。因为ARP协议并不只在发送了 ARP请求才接收ARP应答,当主机(计算机)接收到 ARP应答数据包的时候,就会无条件对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存表中。具体而言,当局域网中的一个主机(例如主机B)向网关发送一个自己伪造的ARP应答,即IP地址为另一个主机(例如主机A)的IP,而MAC地址是伪造的,当网关接收到主机B伪造的ARP应答后,就会更新本地的ARP缓存表,这样在网关看来主机A 的IP地址没有变,而它的MAC地址已经不是原来那个了。目前虽然有多种网关ARP欺骗防御方法,但是都或多或少存在一些缺陷。例如,对于IP地址和MAC地址静态绑定法,其使用不方便,适应性和灵活性比较差。内网主机多或 DHCP的时候,管理和维护很麻烦。还有一种防御方法,网关对免费ARP不予理睬,只处理响应自己之前发送的ARP请求的ARP应答包,这种方式误判率很高,会导致用户数据流时断时续,基本无使用价值。还有一种防御方法,网关下面的主机以一定的频率广播自己正确的 ARP信息,这是目前ARP防火墙常用的方法,其缺陷是没有从根本上解决问题,仍然会导致用户数据时断时续的。
发明内容
本发明要解决的技术问题在于针对现有技术中检测ARP欺骗过程中数据通信时通时断且检测准确度不高的缺陷,提供一种针对ARP欺骗的多级检测和防御方法。本发明解决其技术问题所采用的技术方案是一种针对ARP欺骗的多级检测和防御方法,包括初始化步骤初始化ARP缓存表中主机的MAC地址的可信度;并向每个所述MAC地址以冗余模式发送数据包;检测步骤对所述MAC地址执行至少两次基于所述MAC地址的可信度的伪造检测, 以确定所述MAC地址是否为伪造的MAC地址;防御步骤停止向所述伪造的MAC地址发送所述数据包。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,在所述初始化步骤包括将全部所述MAC地址的可信度设置为非零值以信任全部所述MAC地址。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述伪造检测是 ARP请求数据包检测、TCP数据包检测、ping请求数据包检测、已知服务端口检测或ARP广播检测。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述ARP请求数据包检测包括步骤向所述MAC地址发送ARP请求数据包,如果没有收到所述MAC地址针对所述ARP 请求数据包的回应,则设置该MAC地址的可信度为零值以确定为伪造的MAC地址;否则,所述MAC地址的可信度保持不变。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述TCP数据包检测包括步骤判断从所述MAC地址接收的TCP数据包是否携带有回应包,如果有,则所述MAC地址的可信度递增1 ;否则,所述MAC地址的可信度保持不变;将所述MAC地址的可信度与可信度阈值进行比较,如果其中一个所述MAC地址的可信度大于所述可信度阈值,则将全部所述MAC地址的可信度减半以获得新的可信度;否则继续判断从所述MAC地址接收的TCP数据包是否携带有回应包;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述ping请求数据包检测包括步骤发送绑定MAC地址的ping请求数据包;如果接收到所述绑定的MAC地址的回应,则所述MAC地址的可信度保持不变;否则所述MAC地址的可信度减半以获得新的可信度;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述已知服务端口检测包括步骤发送绑定MAC地址的TCP连接握手数据包;如果接收到所述绑定的MAC地址的回应,则所述MAC地址的可信度保持不变;否则所述MAC地址的可信度减半以获得新的可信度;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述ARP广播检测包括步骤累计所述MAC地址发送ARP广播的次数;将累计的次数与次数阈值进行比较,如果大于所述次数阈值,则所述MAC地址的可信度减半以获得新的可信度;否则所述MAC地址的可信度保持不变;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述防御步骤包括判断是否有从所述伪造的MAC地址接收绑定所述伪造的MAC地址的TCP数据包, 并判断所述TCP数据包是否携带有回应包;如果有,则所述伪造的MAC地址的可信度递增 1 ;否则所述伪造的MAC地址的可信度保持不变;间隔地向所述伪造的MAC地址发送ARP请求数据包,如果接收到针对所述ARP请求数据包的回应,则所述伪造的MAC地址的可信度递增1 ;否则所述伪造的MAC地址的可信度保持不变;当所述伪造的MAC地址的可信度为零值的时间超过预设时间时,删除所述伪造的 MAC地址;当所述伪造的MAC地址的可信度为非零值时,重新开始向所述MAC发送冗余数据包。在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,所述防御步骤包括如果只有一个MAC地址的可信度为非零值,则直接向可信度为非零值的所述MAC地址发送数据包。本发明产生的有益效果是在依据本发明的针对ARP欺骗的多级检测和防御方法中,采用冗余模式发送数据包,使得在对MAC地址进行检测的过程中能确保主机数据流的通畅,而不会出现通信时通时断的情况。另外,在判断MAC地址是否为伪造的MAC地址的过程中,对MAC地址执行两次或两次以上的伪造检测,该伪造检测的次数、种类和顺序可以任意组合,因此,相比于单次伪造检测,可以提高检测的准确度。
下面将结合附图及实施例对本发明作进一步说明,附图中图1是依据本发明实施例的针对ARP欺骗的多级检测和防御方法的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。图1示出了依据本发明实施例的针对ARP欺骗的多级检测和防御方法的流程图, 下面将结合图1按步骤对该针对ARP欺骗的多级检测和防御方法进行描述。S100、初始化步骤初始化ARP缓存表中主机的MAC地址的可信度;并向每个MAC 地址发送冗余数据包。具体而言,此处所述的ARP缓存表既可以是网关的ARP缓存表,也可以是网络中任一主机的ARP缓存表。因此,依据本发明实施例的检测和防御方法既可以是针对网关受到ARP欺骗的解决方案,也可以是针对主机受到ARP欺骗的解决方案。下面将以网关的ARP缓存表为例。网关的ARP缓存表中存储了某一主机(下面将以主机A表示) 的IP地址和其对应的MAC地址。单个IP维护多个MAC地址映射记录,每个映射记录都包含一个可信度字段,基于此对MAC地址设置可信度。当网关没有受到ARP欺骗时,主机A的IP 地址在网关的ARP缓存表中存储的情况如表1所示。从网关的ARP缓存表可以看出,主机A 的IP地址为192. 168. 1. 2,对应的真实MAC地址为02-02-02-02-02-02,此时该MAC地址的可信度为1。在本发明中,设置MAC地址的可信度只要为非零值,即可信任该MAC地址。当网络中其它主机对网关进行了 ARP欺骗,伪造了主机A的MAC地址,那么网关中的缓存表则如表2所示。从表2可以看出,此时主机A的IP地址仍为192. 168. 1. 2,因此网关认为主机 A的IP地址没有发生变化。但是该IP地址对应多个MAC地址,包括01-01-01-01-01-01、 02-02-02-02-02-02,03-03-03-03-03-03 以及 04-04-04-04-04-04。其中有些MAC地址为伪造的,但是攻击刚开始时,网关无法分辨那些MAC地址为伪造的,因此在该初始化步骤中, 将全部MAC地址的可信度设为非零值,例如此处设为1,从而认为可以信任全部的MAC地址。与此同时,因为无法分辨那些MAC地址是伪造的,但是又要确保主机A的数据流的通畅,将用于主机A通信的数据包(IP包)按照MAC地址的个数复制多份,例如,表2中有4个MAC 地址,则将数据包复制4份,分别绑定缓存表中不同的MAC地址发送出去。网关采用这种冗余模式向主机A发送数据包,可以确保主机A数据流的通畅。表1正常的ARP缓存表
IP地址Mac地址可信度192. 168. 1. 202-02-02-02-02-021表2受到ARP欺骗后的ARP缓存表
IP地址Mac地址可信度备注192. 168. 1. 2(主机 A)01-01-01-01-01-011初始可信度为1192. 168. 1. 2(主机 A)02-02-02-02-02-021初始可信度为1192. 168. 1. 2(主机 A)03-03-03-03-03-031初始可信度为1192. 168. 1. 2(主机 A)04-04-04-04-04-041初始可信度为1S200、检测步骤对MAC地址执行至少两次基于MAC地址的可信度的伪造检测,以确定MAC地址是否为伪造的MAC地址。在该检测步骤中,为了判断缓存表中那些MAC地址是伪造的,对这些MAC地址执行两次或两次以上的伪造检测。上述伪造检测是ARP请求数据包检测、TCP数据包检测、ping请求数据包检测、TCP连接握手数据包检测或ARP广播检测等,以上所列出的伪造检测方法仅用作举例,并不是对本发明的限制,在依据本发明实施例的针对ARP欺骗的多级检测和防御方法中,还可采用其它的能够检测MAC地址是否为伪造的任何伪造检测方法。在检测步骤中,可以使用多种伪造检测方法的组合,例如,可以首先采用ARP请求数据包检测对MAC地址就行第一次伪造检测,筛选出一些伪造的MAC地址; 随后采用Ping请求数据包检测对第一次伪造检测后剩余的MAC地址就行第二次伪造检测, 进一步筛选出其中伪造的MAC地址。当然,可能的组合还有多种,可以对执行伪造检测的次数就行选择,和/或对伪造检测的种类就行选择,和/或对伪造检测的顺序就行检测等等。在本发明的一个实施例中,采用两次伪造检测,第一次检测采用ARP请求数据包检测,首先筛选出一些伪造的MAC地址,随后就行第二次检测,第二次检测采用TCP数据包检测,对通过第一次检测的MAC地址就行第二次检测,进一步筛选出伪造的MAC地址。具体而言,在第一次伪造检测(即ARP请求数据包检测)中,针对MAC地址构造4个特定的ARP请求数据包,如表3所示,该ARP请求数据包中的内容例如为“who-has 192. 168. 1.2”,然后将上述特定的ARP请求数据包发送至每个MAC地址。对于普通的ARP 欺骗工具,其只会不停地发送ARP欺骗包,而不会对真正的ARP请求数据包做出回应。因此,如果没有收到MAC地址针对该ARP请求数据包的回应,则设置该MAC地址的可信度为零值,并认为其为伪造的MAC地址。例如表4中的MAC地址“04-04-04-04-04-04”没有针对ARP请求数据包做出回应,则将其可信度设为零值(即可信度为0),该MAC地址 “04-04-04-04-04-04”为伪造的MAC地址。如果收到MAC地址针对该ARP请求数据包的回应,则将MAC地址的可信度保持不变,如表4所示的其它3个MAC地址,可信度保持不变,仍取值为1。从表4可以看出,通过第一次检测(即ARP请求数据包检测),筛选出MAC地址 “04-04-04-04-04-04”为伪造的MAC地址,剩余的3个MAC地址通过该次测试,可暂时信任这3个MAC地址。表3 ARP请求数据包
权利要求
1.一种针对ARP欺骗的多级检测和防御方法,其特征在于,包括初始化步骤初始化ARP缓存表中主机的MAC地址的可信度;并向每个所述MAC地址以冗余模式发送数据包;检测步骤对所述MAC地址执行至少两次基于所述MAC地址的可信度的伪造检测,以确定所述MAC地址是否为伪造的MAC地址;防御步骤停止向所述伪造的MAC地址发送所述数据包。
2.根据权利要求1所述的针对ARP欺骗的多级检测和防御方法,其特征在于,在所述初始化步骤包括将全部所述MAC地址的可信度设置为非零值以信任全部所述MAC地址。
3.根据权利要求2所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述伪造检测是ARP请求数据包检测、TCP数据包检测、ping请求数据包检测、已知服务端口检测或 ARP广播检测。
4.根据权利要求3所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述ARP 请求数据包检测包括步骤向所述MAC地址发送ARP请求数据包,如果没有收到所述MAC地址针对所述ARP请求数据包的回应,则设置该MAC地址的可信度为零值以确定为伪造的MAC地址;否则,所述MAC 地址的可信度保持不变。
5.根据权利要求3所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述TCP 数据包检测包括步骤判断从所述MAC地址接收的TCP数据包是否携带有回应包,如果有,则所述MAC地址的可信度递增1 ;否则,所述MAC地址的可信度保持不变;将所述MAC地址的可信度与可信度阈值进行比较,如果其中一个所述MAC地址的可信度大于所述可信度阈值,则将全部所述MAC地址的可信度减半以获得新的可信度;否则继续判断从所述MAC地址接收的TCP数据包是否携带有回应包;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。
6.根据权利要求3所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述 ping请求数据包检测包括步骤发送绑定MAC地址的ping请求数据包;如果接收到所述绑定的MAC地址的回应,则所述MAC地址的可信度保持不变;否则所述 MAC地址的可信度减半以获得新的可信度;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。
7.根据权利要求3所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述已知服务端口检测包括步骤发送绑定MAC地址的TCP连接握手数据包;如果接收到所述绑定的MAC地址的回应,则所述MAC地址的可信度保持不变;否则所述 MAC地址的可信度减半以获得新的可信度;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。
8.根据权利要求3所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述ARP 广播检测包括步骤累计所述MAC地址发送ARP广播的次数;将累计的次数与次数阈值进行比较,如果大于所述次数阈值,则所述MAC地址的可信度减半以获得新的可信度;否则所述MAC地址的可信度保持不变;判断所述MAC地址的新的可信度是否为零值,如果是,则确定为伪造的MAC地址。
9.根据权利要求3所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述防御步骤包括判断是否有从所述伪造的MAC地址接收绑定所述伪造的MAC地址的TCP数据包,并判断所述TCP数据包是否携带有回应包;如果有,则所述伪造的MAC地址的可信度递增1 ;否则所述伪造的MAC地址的可信度保持不变;间隔地向所述伪造的MAC地址发送ARP请求数据包,如果接收到针对所述ARP请求数据包的回应,则所述伪造的MAC地址的可信度递增1 ;否则所述伪造的MAC地址的可信度保持不变;当所述伪造的MAC地址的可信度为零值的时间超过预设时间时,删除所述伪造的MAC 地址;当所述伪造的MAC地址的可信度为非零值时,重新开始向所述MAC发送冗余数据包。
10.根据权利要求3所述的针对ARP欺骗的多级检测和防御方法,其特征在于,所述防御步骤包括如果只有一个MAC地址的可信度为非零值,则直接向可信度为非零值的所述 MAC地址发送数据包。
全文摘要
本发明公开了一种针对ARP欺骗的多级检测和防御方法,包括初始化步骤初始化ARP缓存表中主机的MAC地址的可信度;并向每个MAC地址以冗余模式发送数据包;检测步骤对MAC地址执行至少两次基于MAC地址的可信度的伪造检测,以确定MAC地址是否为伪造的MAC地址;防御步骤停止向伪造的MAC地址发送所述数据包。其中,采用冗余模式发送数据包,使得在对MAC地址就行检测的过程中能确保主机数据流的通畅。另外,在判断MAC地址是否为伪造的MAC地址的过程中,对MAC地址执行两次或两次以上的伪造检测,该伪造检测的次数、种类和顺序可以任意组合,因此,相比于单次伪造检测,可以提高检测的准确度。
文档编号H04L29/12GK102427460SQ20111045119
公开日2012年4月25日 申请日期2011年12月29日 优先权日2011年12月29日
发明者李凡 申请人:深信服网络科技(深圳)有限公司