专利名称:一种防止mac地址欺骗攻击的方法和装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种防止MAC (Media Access Control,介质 访问控制)地址欺骗攻击的方法和装置。
背景技术:
随着网络规模的扩大和网络复杂度的提高,网络配置越来越复杂,经常出现计算 机位置变化(如便携机或无线网络)和计算机数量超过可分配的IP地址的情况。动态主 机配置协议DHCP (Dynamic Host Configuration Protocol)就是为满足这些需求而发展起 来的,在网络规模较大的情况下,通常采用DHCPServer来完成IP地址分配。
DHCP协议本身不具有安全性,应用DHCP协议的网络环境中存在被攻击的风险。攻 击者可以利用模拟发包软件,发送大量伪造源MAC变化的报文。交换机CAM表很快被攻击 者发出的海量MAC拥塞并溢出,无法学习新的MAC地址,报文将在VLAN内所有端口产生广 播。攻击者利用VLAN上所有端口的广播可以进行流量监听,扫描其中有用信息,从攻击者 通过MAC地址攻击实现广播风暴的蔓延,使交换机以HUB的方式工作,从而达到DoS的目的 而产生安全隐患。攻击者还可以冒充另一个合法用户的MAC地址发送数据报文,交换设备 就会把MAC地址学习到恶意用户的端口上,从而造成合法用户MAC地址学习迁移,扰乱设备 的报文转发,使合法用户无法正常访问网络。
发明内容
本发明提供一种防止MAC地址欺骗攻击的方法和装置,用以解决现有技术中DHCP 存在安全隐患,使得正常用户存在被攻击风险的问题。具体的,本发明提供一种防止MAC地址欺骗攻击的方法,包括交换设备在接收到用户端口侧发送的非DHCP报文时,基于预先配置的静态MAC地 址表,检测所述非DHCP报文的合法性,当所述非DHCP报文不合法时,丢弃该报文。所述方法中,静态MAC地址表中包括已通过DHCP完成IP地址申请的用户所对应 的MAC地址及与该MAC地址绑定的用户端口号。所述方法中,非DHCP报文不合法是指所述非DHCP报文的源MAC地址不在预先配置的静态MAC地址表中;或者,所述非 DHCP报文的源MAC地址在所述静态MAC地址表中,但非DHCP报文的接收端口号与所述静态 MAC地址表项中用户端口号不对应。所述方法中,所述交换设备接收到DHCP服务器或者汇聚交换机发送的非DHCP报 文时,判断所述非DHCP报文的源MAC地址是否在所述交换设备维护的动态MAC地址表中, 若是,转发所述非DHCP报文;否则,将所述非DHCP报文的源MAC地址学习到接收该报文的 端口上,并转发所述非DHCP报文。 所述方法中,交换设备在接收到DHCP报文时,基于所述DHCP报文的类型进行DHCP 用户信息绑定表的创建、更新或删除,并完成对所述DHCP报文的转发。
所述方法中,静态MAC地址表的配置方式包括所述交换设备在接收到DHCP报文且所述DHCP报文的类型为ACK报文时,基于所述ACK消息更新已创建的DHCP用户信息绑定表,并将更新后的DHCP用户信息绑定表中的 用户MAC地址和用户端口号配置到所述静态MAC地址表中。进一步的,所述交换设备在接收到的所述DHCP报文的类型为Release或Decline 报文时,或者在所述DHCP用户信息绑定表中某一表项租期到期时,删除所述静态MAC地址 表中对应用户的MAC地址信息。本发明还提供一种交换设备,包括报文接收模块,用于在接收到用户端口侧发送的非DHCP报文时,触发非DHCP报文 转发/过滤模块;非DHCP报文转发/过滤模块,用于基于预先配置的静态MAC地址表,检测所述非 DHCP报文的合法性,当所述所述非DHCP报文不合法时,丢弃所述非DHCP报文。本发明提供的交换设备,进一步具有以下特点所述非DHCP报文转发/过滤模块中静态MAC地址表包括已通过DHCP完成IP地 址申请的用户所对应的MAC地址及与该MAC地址绑定的用户端口号。所述非DHCP报文转发/过滤模块中非DHCP报文不合法是指所述非DHCP报文的源MAC地址不在预先配置的静态MAC地址表中;或者,所述非 DHCP报文的源MAC地址在所述静态MAC地址表中,但非DHCP报文的接收端口号与所述静态 MAC地址表项中用户端口号不对应。所述交换设备还包括DHCP报文侦听模块;所述报文接收模块,还用于在接收到DHCP报文时,触发所述DHCP报文侦听模块DHCP报文侦听模块,用于基于所述DHCP报文的类型进行DHCP用户信息绑定表的 创建、更新或删除,并完成对所述DHCP报文的转发。进一步的,所述DHCP报文侦听模块在所述DHCP报文的类型为ACK报文时,基于所 述ACK消息更新已创建的DHCP用户信息绑定表,并将更新后的DHCP用户信息绑定表中的 用户MAC地址和用户端口号配置到所述静态MAC地址表中。所述DHCP报文侦听模块在接收到的所述DHCP报文的类型为Release或Decline 报文时,或者在所述DHCP用户信息绑定表中某一表项租期到期时,删除所述静态MAC地址 表中对应用户的MAC地址信息。与现有技术相比,本发明有益效果如下本发明提供的方法,根据静态MAC地址表,对来自用户端口侧的报文进行源MAC地 址过滤,丢弃掉报文源MAC地址不在静态MAC地址表中的报文,从而防止了接入设备的MAC 地址欺骗,并且有效的避免了交换设备上的MAC地址协议发生迁移,造成数据转发紊乱,使 用户遭受Dos攻击的情况。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为接入网络基本结构图;图2为本发明提供的防止MAC地址欺骗攻击的方法流程图;图3为本发明提供的防止MAC地址欺骗攻击的装置结构图;图4为本发明中DHCP侦听模块进行DHCP报文的处理流程图;图5为本发明中非DHCP报文转发/过滤模块对非DHCP报文的处理流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。为了解决现有技术中存在的问题,本发明提供了一种防止MAC地址欺骗攻击的方 法和装置。在进行方法阐述前,首先对所述方法应用的接入网络进行简单说明,如图1所示, 为接入网络的基本结构图。具体的,该接入网络包括用户终端、交换设备和DHCP服务器。其中,用户终端,一般是PC,作为DHCP Client通过DHCP协议获取IP地址及其他
配置信息;交换设备,根据MAC地址进行报文转发;DHCP服务器,处理用户终端的DHCP请求,分配给DHCP Client包括IP,网关,DNS
等配直^[曰息ο本发明所述方法为了解决现有技术中存在的问题,将上述交换设备接用户终端的 端口设置为非信任端口 ;将连接合法DHCP服务器的端口或者连接汇聚交换机的上行端口 设置为信任端口。对于不信任端口,关闭MAC地址学习,并对除DHCP外的报文进行源MAC 地址检查;对于信任端口,进行动态MAC地址学习,不进行源MAC地址检查。基于上述的原理性表述,下面给出本发明提供的防止MAC地址欺骗攻击方法的具 体实现过程,如图2所示,包括以下步骤步骤S201、交换设备接收用户端口侧(即非信任端口)发送的非DHCP报文。步骤S202、基于预先配置的静态MAC地址表检测所述非DHCP报文的合法性,若合 法,执行步骤S203 ;否则,执行步骤S204。其中,静态MAC地址表中包括已通过DHCP完成IP地址申请的用户所对应的MAC 地址及与该MAC地址绑定的用户端口号。步骤S203、查找所述非DHCP报文的目的MAC地址,若查找到,根据目的MAC地址, 完成报文转发;若未查找到,通过广播的方式完成报文转发。步骤S204、丢弃所述非DHCP报文。本发明提供的方法,有效的防止了接入设备的MAC地址欺骗,并且有效的避免了 交换设备上的MAC地址协议发生迁移,造成数据转发紊乱,使用户遭受Dos攻击的情况。为了更清楚的表述本发明,下面结合交换设备的具体结构,对本发明所述方法进 行描述,使其能够更好地说明本发明提供方法的具体实现过程。
如图3所示,为交换设备的结构框图,具体的,该交换设备包括报文接收模块 310,非DHCP报文转发/过滤模块320、MAC地址表模块330、DHCP报文侦听模块340 ;其中报文接收模块310 接收信任端口和非信任端口发送的报文,根据DHCP协议报文 的特征,从接收到的报文中,提取出DHCP报文,将DHCP报文送及其对应的用户端口信息传 递给DHCP侦听模块340 ;将非DHCP报文及其对应的用户端口信息传递给非DHCP报文转发 /过滤模块320。
非DHCP报文转发/过滤模块320 接收到非DHCP报文时,检测报文的用户端口信 息,如果用户端口信息是非信任端口,基于MAC地址表模块330中的静态MAC地址表项,对 所述非DHCP报文的源MAC地址进行合法性检查,当非DHCP报文不合法时,丢弃该非DHCP 报文;否则,获取所述非DHCP报文的目的MAC地址,并根据获取到的目的MAC地址查找交换 设备中存储的MAC转发表,根据该MAC转发表中存储的与MAC地址相应的端口转发接收的 报文;然而,若在MAC转发表中查找不到目的MAC地址,则将该报文通过广播的方式向除接 收端口外的所有端口转发。其中,非DHCP报文不合法是指非DHCP报文的源MAC地址,在MAC地址表模块330 中的静态MAC地址表项中不存在,或者非DHCP报文的源MAC地址在所述静态MAC地址表中, 但该非DHCP报文的接收端口与静态MAC地址表项中记录的用户端口号不对应。另一种情况,如果用户端口信息为信任端口,判断非DHCP报文的源MAC地址是否 在MAC地址表模块330中的动态MAC地址表中,若是,根据该报文目的MAC地址及交换设备 中存储的MAC转发表转发该报文;否则,将所述非DHCP报文的源MAC地址学习到接收该报 文的端口上,并根据该报文目的MAC地址及交换设备中存储的MAC转发表转发该报文。需要说明的是,上述报文转发过程中,若在交换设备的MAC转发表中查找不到目 的MAC地址,则将该报文通过广播的方式向除接收端口外的所有端口转发。MAC地址表模块330 该模块是非DHCP报文转发/过滤模块320报文转发和过滤 的依据;该MAC地址表中包括静态MAC地址表和动态MAC地址表,动态MAC地址是非DHCP 报文转发/过滤模块320从信任端口学习到的;静态MAC地址表是DHCP侦听模块根据DHCP 用户信息绑定表配置的。DHCP报文侦听模块340 在接收到DHCP报文时,基于所述DHCP报文的类型进行 DHCP用户信息绑定表的创建、更新或删除,并完成对所述DHCP报文的转发。优选的,该DHCP 报文侦听模块还会基于创建的DHCP用户信息绑定表对MAC地址表模块330中的静态MAC 地址表进行配置。具体的,该DHCP报文侦听模块340包括DHCP报文解析模块341、DHCP用户信息 绑定表模块342和DHCP报文转发模块343。DHCP报文解析模块341 用于对接收到的DHCP报文进行解析,获取用户配置信息, 用来进行DHCP用户信息绑定表的创建和维护。其中,配置信息包括IP地址、MAC地址、用 户端口信息和租期。DHCP用户信息绑定表模块342 根据DHCP报文解析模块341获取的用户配置信 息,生成、维护或更新绑定表,绑定表包括IP地址,租期,用户端口,MAC地址。绑定表中的 每个表项都有一个根据租期进行老化的定时器,超过这个周期时进行表项老化删除。下面结合DHCP报文的类型对DHCP用户信息绑定表的创建、维护和更新过程进行说明,并结合获取的DHCP用户信息绑定表对静态MAC地址表的配置过程进行说明,具体包 括如果接收到的DHCP报文为请求报文Discover,则基于报文的配置信息建立DHCP 用户信息绑定表,填入用户MAC地址,用户端口,租期设置为60秒,这时没有用户IP,IP设 置为0。如果接收到的DHCP报文为请求报文Request,查看是否存在相应的DHCP用户信息 绑定表,不存在则创建DHCP用户信息绑定表,否则,维护当前存在的DHCP用户信息绑定表。如果接收到的DHCP报文为响应报文ACK,从报文中获取分配的IP地址和租期等 信息,更新绑定表,将分配给用户的IP地址设置到对应的DHCP用户信息绑定表项中,把租 期设置为报文中的租期;并将绑定表中的用户MAC和用户端口设置到静态MAC地址表中,使 MAC地址和用户端口绑定。如果接收到的DHCP报文为Release或Decline,删除该用户的DH CP用户信息绑定 表项,同时删除静态MAC地址表中的该用户MAC地址信息,解除用户MAC地址和用户端口的 绑定关系。如果DHCP用户信息绑定表中某表项的租期到了,则删除对应用户绑定表,同时删 除静态MAC地址表中的该用户MAC地址信息,解除用户MAC地址和用户端口的关联。DHCP报文转发模块343 为增加DHCP协议应用的安全性,同时减少二层网络的广 播报文发送,节省网络带宽资源,DHCP报文转发是根据已创建的DHCP用户信息绑定表转发 的;具体的,对于DHCP请求报文,根据接口属性,只向信任端口转发;对于DHCP响应报文, 根据从报文中获取到的用户主机MAC地址,查询DHCP用户信息绑定表,向DHCP用户信息绑 定表中的用户端口转发DHCP报文。下面通过图4对DHCP侦听模块进行DHCP报文的处理流程进行进一步说明,如图 4所示,该过程包括以下步骤步骤S401、DHCP侦听模块接收到从报文接收模块传递过来的DHCP报文。步骤S402、解析DHCP报文,获取用户配置信息。步骤S403、判断DHCP报文的类型是请求报文还是响应报文,若为请求报文,执行 步骤S404 ;若为响应报文,执行步骤S408。步骤S404、判断是否是Discover或Request报文,若是,执行步骤S405 ;若不是, 则请求报文为Release或Decline报文,执行步骤S406。步骤S405、对于Discover或Request报文,查看是否存在相应的DHCP用户信息绑 定表,不存在则创建DHCP用户信息绑定表,并向信任端口转发报文。步骤S406、对于Release或Decline报文,删除对应用户的DHCP用户信息绑定表 项、删除静态MAC地址表中的用户MAC地址,解除和用户端口的绑定关系。步骤S407、向信任端口转发报文。步骤S408、对于响应报文,判断报文接收端口是否是信任端口,若是非信任端口, 执行步骤S409 ;若是信任端口,执行步骤S410。步骤S409、丢弃报文。步骤S410、在响应报文是ACK报文时,从报文中获取相关信息,更新DHCP用户信息 绑定表(即更新表项中的IP地址和租期信息),将更新后的DHCP用户信息绑定表中的用户MAC地址和用户端口设置到静态MAC地址表中,使MAC地址和用户端口绑定;同时,根据 更新后的DHCP用户信息绑定表中的用户MAC地址和用户端口转发该ACK报文;在响应报文是Offer报文时,根据DHCP用户信息绑定表中的用户MAC和用户接入 端口转发该Offer报文;在响应报文是Nak报文时,根据DHCP用户信息绑定表中的用户MAC和用户接入端口转发该Nak报文,并删除该用户对应的DHCP用户信息绑定表项、删除静态MAC地址表中 的用户MAC地址,解除和用户端口的绑定关系。如图5所示,为非DHCP报文转发/过滤模块对报文的处理流程,包括以下步骤步骤S501、接收非DHCP报文。步骤S502、判断接收到的非DHCP报文端口是信任端口还是非信任端口,若是信任 端口,执行步骤S506 ;若是非信任端口,执行步骤S503。步骤S503、对于来自非信任端口的报文,基于静态MAC地址表,检测非DHCP报文是 否合法,若是,执行步骤S505 ;否则,执行步骤S504。步骤S504、丢弃该非DHCP报文。步骤S505、进行报文转发。步骤S506、对于来自信任端口的报文,检测报文的源MAC是否在交换设备的MAC转 发表中,若在,执行步骤S508 ;否则,执行步骤S507。步骤S507、对报文的源MAC地址进行动态MAC地址学习,然后执行步骤S508。步骤S508、进行报文转发。本发明提供的方法和装置,基于配置的静态MAC地址表,对来自用户端口侧的非 DHCP报文进行过滤,通过对报文的源MAC地址这一合法性检查,使得只有通过DHCP申请IP 地址的用户才能访问网络,从而防止了接入设备的MAC地址欺骗,并且有效的避免了交换 设备上的MAC地址协议发生迁移,造成数据转发紊乱,使用户遭受Dos攻击的情况。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种防止介质访问控制MAC地址欺骗攻击的方法,其特征在于,包括交换设备在接收到用户端口侧发送的非动态主机配置协议DHCP报文时,基于预先配置的静态MAC地址表,检测所述非DHCP报文的合法性,当所述非DHCP报文不合法时,丢弃该报文。
2.如权利要求1所述的方法,其特征在于,所述静态MAC地址表中包括已通过DHCP完 成IP地址申请的用户所对应的MAC地址及与该MAC地址绑定的用户端口号。
3.如权利要求2所述的方法,其特征在于,所述非DHCP报文不合法是指所述非DHCP报文的源MAC地址不在预先配置的静态MAC地址表中;或者,所述非DHCP 报文的源MAC地址在所述静态MAC地址表中,但非DHCP报文的接收端口号与所述静态MAC 地址表项中用户端口号不对应。
4.如权利要求1或2或3所述的方法,其特征在于,所述交换设备接收到DHCP服务器 或者汇聚交换机发送的非DHCP报文时,判断所述非DHCP报文的源MAC地址是否在所述交 换设备维护的动态MAC地址表中,若是,转发所述非DHCP报文;否则,将所述非DHCP报文的 源MAC地址学习到接收该报文的端口上,并转发所述非DHCP报文。
5.如权利要求1所述的方法,其特征在于,所述交换设备在接收到DHCP报文时,基于所 述DHCP报文的类型进行DHCP用户信息绑定表的创建、更新或删除,并完成对所述DHCP报 文的转发。
6.如权利要求5所述的方法,其特征在于,所述静态MAC地址表的配置方式包括所述交换设备在接收到DHCP报文且所述DHCP报文的类型为ACK报文时,基于所述ACK 消息更新已创建的DHCP用户信息绑定表,并将更新后的DHCP用户信息绑定表中的用户MAC 地址和用户端口号配置到所述静态MAC地址表中。
7.如权利要求5所述的方法,其特征在于,所述交换设备在接收到的所述DHCP报文的 类型为Release或Decline报文时,或者在所述DHCP用户信息绑定表中某一表项租期到期 时,删除所述静态MAC地址表中对应用户的MAC地址信息。
8.一种交换设备,其特征在于,包括报文接收模块,用于在接收到用户端口侧发送的非DHCP报文时,触发非DHCP报文转发 /过滤模块;非DHCP报文转发/过滤模块,用于基于预先配置的静态MAC地址表,检测所述非DHCP 报文的合法性,当所述所述非DHCP报文不合法时,丢弃所述非DHCP报文。
9.如权利要求8所述的交换设备,其特征在于,所述非DHCP报文转发/过滤模块中静 态MAC地址表包括已通过DHCP完成IP地址申请的用户所对应的MAC地址及与该MAC地 址绑定的用户端口号。
10.如权利要求9所述的交换设备,其特征在于,所述非DHCP报文转发/过滤模块中非 DHCP报文不合法是指所述非DHCP报文的源MAC地址不在预先配置的静态MAC地址表中;或者,所述非DHCP 报文的源MAC地址在所述静态MAC地址表中,但非DHCP报文的接收端口与所述静态MAC地 址表项中用户端口号不对应。
11.如权利要求8所述的交换设备,其特征在于,还包括DHCP报文侦听模块;所述报文接收模块,还用于在接收到DHCP报文时,触发所述DHCP报文侦听模块DHCP报文侦听模块,用于基于所述DHCP报文的类型进行DHCP用户信息绑定表的创建、 更新或删除,并完成对所述DHCP报文的转发。
12.如权利要求11所述的交换设备,其特征在于,所述DHCP报文侦听模块在所述DHCP报文的类型为ACK报文时,基于所述ACK消息更 新已创建的DHCP用户信息绑定表,并将更新后的DHCP用户信息绑定表中的用户MAC地址 和用户端口号配置到所述静态MAC地址表中。
13.如权利要求11所述的交换设备,其特征在于,所述DHCP报文侦听模块在接收到的 所述DHCP报文的类型为Release或Decline报文时,或者在所述DHCP用户信息绑定表中 某一表项租期到期时,删除所述静态MAC地址表中对应用户的MAC地址信息。
全文摘要
本发明公开了一种防止MAC地址欺骗攻击的方法和装置,所述方法包括交换设备在接收到用户端口侧发送的非动态主机配置协议DHCP报文时,基于预先配置的静态MAC地址表,检测所述非DHCP报文的合法性,当所述非DHCP报文不合法时,丢弃该报文。所述装置包括报文接收模块和非DHCP报文转发/过滤模块。本发明提供的方法防止了接入设备的MAC地址欺骗,并且有效的避免了交换设备上的MAC地址协议发生迁移,造成数据转发紊乱,使用户遭受Dos攻击的情况。
文档编号H04L29/12GK101834870SQ20101017116
公开日2010年9月15日 申请日期2010年5月13日 优先权日2010年5月13日
发明者刘华勇 申请人:中兴通讯股份有限公司