一种防MAC泛洪攻击的方法及装置与流程

文档序号:11215725阅读:743来源:国知局
一种防MAC泛洪攻击的方法及装置与流程

本申请涉及安全防护领域,特别涉及一种防mac泛洪攻击的方法及装置。



背景技术:

当交换机接收到报文,无法在本地查找到对应于该报文的源mac的mac表项时,可以通过保存该报文的源mac与接收该报文的端口的映射关系,来学习对应于该报文的源mac的mac表项。

mac泛洪攻击正是基于上述交换机学习mac表项的机制产生的。在典型的mac泛洪攻击中,攻击者通过局域网中与交换机连接的主机向交换机发送大量具有伪造出的无效源mac的报文,导致交换机内存或芯片资源学习到大量对应于无效mac地址的mac表项,从而在后续没有足够的交换机内存或芯片资源来存放有效的mac地址与端口的映射关系。

当交换机内存或芯片资源被完全占用时,交换机在后续无法学习新的mac表项,mac泛洪攻击成功,此时,交换机进入失效开放(failopen)模式。交换机进入失效开放模式后,在后续接收到报文时,会将后续接收到的报文广播至除接收该报文的端口以外的所有端口。在这种情况下,正常的报文都会被泛洪处理,降低了交换机的工作效率。此外,攻击者可以进一步通过嗅探工具,对在局域网内广播的报文进行捕获,从而得到机密信息或者各类业务敏感信息。

在现有技术中,通过限制交换机学习对应于各端口的mac地址的数量来防范mac泛洪攻击。当交换机的任一端口遭受到mac泛洪攻击时,交换机会学习对应于该端口的mac表项,当学习到的mac表项达到预设的数量上限后,交换机不再学习对应于该端口的新的mac表项。在这种情况下,若交换机的任一端口遭受mac泛洪攻击,交换机内存或芯片资源不会被无效的mac表项占满,交换机从其它未受mac泛洪攻击的端口接收到报文后,仍可以正常学习新的mac表项,以及在查找到对应的表项后单播该报文。

然而,现有技术中,当交换机的任一端口遭受到mac泛洪攻击,且交换机学习到的对应于该端口的mac表项达到预设的数量上限后,由于无法学习到对应于该端口的新的mac表项,交换机在后续接收到正常的报文时,如果该报文的目的mac与上述遭受攻击的端口相对应,由于交换机不再学习对应于该端口的mac表项,因此,交换机无法查找到对应于该报文的目的mac的mac表项,会泛洪该报文。

可见,现有技术在防护mac泛洪攻击时,会导致正常的报文被泛洪处理,降低了局域网的通信效率。



技术实现要素:

有鉴于此,本申请提供一种防mac泛洪攻击的方法及装置,用于解决现有技术在防护mac泛洪攻击时,会导致正常的报文被泛洪处理,降低局域网的通信效率的问题。

具体地,本申请是通过如下技术方案实现的:

一种防mac泛洪攻击的方法,应用于网管服务器,所述网管服务器与目标局域网中的网关设备对接;所述目标局域网还包括若干个接入交换机以及若干个终端设备,包括:

接收到所述网关设备上传的mac地址;所述mac地址包括所述网关设备的mac地址,以及所述网关设备所在网段的终端设备的mac地址;

基于所述网关设备上传的mac地址创建mac地址集;

向各接入交换机下发所述mac地址集,以使得各接入交换机基于所述mac地址集生成防mac泛洪攻击的mac地址白名单。

在所述防mac泛洪攻击的方法中,所述接入交换机预先配置许可arp报文以及dhcp报文通过的acl表项;

所述网关设备所在网段的终端设备的mac地址,为所述网关设备周期性扫描所述接入交换机上送的arp报文学习到的mac地址。

在所述防mac泛洪攻击的方法中,所述方法还包括:

基于所述mac地址集生成防mac泛洪攻击的mac地址白名单,并将所述mac地址白名单下发至各接入交换机。

在所述防mac泛洪攻击的方法中,所述mac地址白名单,包括以所述mac地址集中的mac地址分别作为源mac和目的mac而创建的acl白名单表项。

在所述防mac泛洪攻击的方法中,所述许可arp报文以及dhcp报文通过的acl表项的优先级大于以所述mac地址集中的mac地址创建的acl白名单表项的优先级。

一种防mac泛洪攻击的装置,应用于网管服务器,所述网管服务器与目标局域网中的网关设备对接;所述目标局域网还包括若干个接入交换机以及若干个终端设备,包括:

接收单元,用于接收到所述网关设备上传的mac地址;所述mac地址包括所述网关设备的mac地址,以及所述网关设备所在网段的终端设备的mac地址;

创建单元,用于基于所述网关设备上传的mac地址创建mac地址集;

下发单元,用于向各接入交换机下发所述mac地址集,以使得各接入交换机基于所述mac地址集生成防mac泛洪攻击的mac地址白名单。

在所述防mac泛洪攻击的装置中,所述接入交换机预先配置许可arp报文以及dhcp报文通过的acl表项;

所述网关设备所在网段的终端设备的mac地址,为所述网关设备周期性扫描所述接入交换机上送的arp报文学习到的mac地址。

在所述防mac泛洪攻击的装置中,所述下发单元,进一步用于:

基于所述mac地址集生成防mac泛洪攻击的mac地址白名单,并将所述mac地址白名单下发至各接入交换机。

在所述防mac泛洪攻击的装置中,所述mac地址白名单,包括以所述mac地址集中的mac地址分别作为源mac和目的mac而创建的acl白名单表项。

在所述防mac泛洪攻击的装置中,所述许可arp报文以及dhcp报文通过的acl表项的优先级大于以所述mac地址集中的mac地址创建的acl白名单表项的优先级。

在本申请实施例中,网管服务器接收到网关设备上传的mac地址,其中,该mac地址包括所述网关设备的mac地址和所述网关设备所在网段的终端设备的mac地址;网管服务器可以基于所述网关设备上传的mac地址创建mac地址集,然后,向各交换机下发所述mac地址集,以使得各交换机基于所述mac地址集生成防mac泛洪攻击的mac地址白名单;

由于所述mac地址白名单中仅包括所述目标局域网中的所有设备的mac地址,所以各交换机基于所述mac地址白名单过滤后,不会因学习具有无效的源mac的报文,而导致交换机内存或芯片资源被占满;也不会因泛洪大量具有无效目的mac的报文,而导致局域网的通信效率下降。因此,本申请可以有效地防护mac泛洪攻击。

附图说明

图1是现有技术的一种局域网架构图;

图2是本申请示出的一种局域网架构图;

图3是本申请示出的一种防mac泛洪攻击的方法的流程图;

图4是本申请示出的一种防mac泛洪攻击的装置的实施例框图;

图5是本申请示出的一种防mac泛洪攻击的装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

交换机上保存有记录mac地址的表,用以完成数据的快速转发。交换机接收到报文后,会根据报文的目的mac查找该表,获得对应于该目的mac的mac表项,然后从该mac表项中的端口将报文转发出去。其中,该表可以是cam(contentaddressablememory,内容可寻址存储器)表。

当交换机接收到报文后,首先会检查本地是否已保存对应于该报文的源mac的mac表项,如果否,则可以通过保存该报文的源mac与接收该报文的端口的映射关系,来学习对应于该报文的源mac的mac表项。

mac泛洪攻击正是基于上述交换机学习mac表项的机制产生的。在典型的mac泛洪攻击中,攻击者通过局域网中与交换机连接的主机向交换机发送大量具有伪造出的无效源mac的报文,导致交换机内存或芯片资源学习到大量对应于无效mac地址的mac表项,从而在后续没有足够的交换机内存或芯片资源来存放有效的mac地址与端口的映射关系。

参见图1,为现有技术的一种局域网架构图,如图1所示,交换机分别通过端口1、端口2、端口3与计算机a、计算机b、计算机c连接。

当攻击者通过计算机b对交换机进行mac泛洪攻击时,会向交换机发送大量具有伪造出的无效源mac的报文。交换机接收到计算机b发送的报文后,会学习大量对应于无效mac地址的mac表项,并存储在交换机内存或芯片资源中。当交换机学习到的mac表项达到一定的数量后,交换机内存或芯片资源被mac表项占满,交换机无法再学习新的mac表项。此时,mac泛洪攻击成功。

交换机无法学习新的mac表项后,进入失效开放模式,在后续接收到报文时,将报文广播至所有端口。在这种情况下,正常的报文都会被泛洪处理,降低了交换机的工作效率。

仍以图1为例,当计算机b向交换机进行mac泛洪攻击成功后,如果计算机a与计算机c之间互相通信,由于交换机无法学习对应于计算机a和计算机c的mac表项,因此会将计算机a发送至计算机c的报文广播至除端口1以外的所有端口。

在这种情况下,计算机b会接收到计算机a发送至计算机c的报文。如果攻击者通过嗅探工具(例如:wireshark)捕获局域网内广播的报文,则可以得到机密信息或者各类业务敏感信息。

可见,mac泛洪攻击的后果十分严重。现有技术通过限制交换机学习对应于各端口的mac地址的数量来防范mac泛洪攻击。如果交换机的任一端口遭受mac泛洪攻击,且交换机学习到的对应于该端口的mac表项达到预设的数量上限后,交换机从该端口接收到报文后,不再学习新的mac表项。在这种情况下,不会因为一个端口遭受mac泛洪攻击,而导致交换机内存或芯片资源全部被无效mac表项占满,因此,其它端口仍可以正常学习mac表项。现有技术有效地减少了mac泛洪攻击的攻击范围。

然而,当交换机从未受攻击的端口接收到报文,且该报文发往通过遭受攻击的上述端口接入交换机的终端设备时,如果交换机没有学习过对应于该终端设备的mac表项,则交换机将报文广播至所有端口。

可见,在现有技术中,遭遇mac泛洪攻击后,交换机仍旧会泛洪正常业务的报文,可能影响正常业务的处理时延。

为解决上述问题,本申请技术方案将局域网内所有终端设备和网关设备的mac地址下发至局域网中的各交换机;各交换机基于接收到的mac地址生成防mac泛洪攻击的mac地址白名单。当交换机接收到具有无效源mac的报文后,可以直接丢弃报文,不再学习对应于无效源mac的mac表项。

请参见图2,为本申请示出的一种局域网架构图,如图2所示,该局域网(下文称为目标局域网)中存在网管服务器、网关设备、交换机e、交换机f、计算机a、计算机b、计算机c和计算机d;其中,网管服务器与网关设备对接。

请继续参见图3,为本申请示出的一种防mac泛洪攻击的方法的流程图,该方法应用于网管服务器,所述网管服务器与目标局域网中的网关设备对接;所述目标局域网还包括若干个接入交换机以及若干个终端设备,该方法包括以下步骤:

步骤301:接收到所述网关设备上传的mac地址;所述mac地址包括所述网关设备的mac地址,以及所述网关设备所在网段的终端设备的mac地址。

步骤302:基于所述网关设备上传的mac地址创建mac地址集。

步骤303:向各接入交换机下发所述mac地址集,以使得各接入交换机基于所述mac地址集生成防mac泛洪攻击的mac地址白名单。

其中,上述接入交换机指的是直接连接终端设备的交换机。

在本申请实施例中,初始状态下,目标局域网内的接入交换机预先配置对应于arp(addressresolutionprotocol,地址解析协议)协议的acl(accesscontrollist,访问控制列表)表项,该表项许可arp报文通过,以及,接入交换机预先配置对应于dhcp(dynamichostconfigurationprotocol,动态主机配置协议)协议的acl表项,该表项许可dhcp报文通过。

目标局域网内的接入交换机经配置上述acl表项后,接入交换机的转发芯片在接收到终端设备发送的报文时,首先可以判断该报文是否为arp报文或dhcp报文;

一方面,如果该报文不是arp报文或dhcp报文,转发芯片可以直接丢弃该报文,并且不学习对应于该报文的源mac的mac表项;

另一方面,如果该报文是arp报文或dhcp报文中的任一一种,转发芯片可以将该报文上送至接入交换机的处理器,以由处理器转发该报文,转发芯片并不学习对应于该报文的源mac的mac表项。

由于转发芯片在接收到arp报文或dhcp报文时,不学习对应于报文的源mac的mac表项,避免了接入交换机遭受终端设备通过arp报文或dhcp报文进行mac泛洪攻击的情况。

同时,由于目标局域网中的接入交换机预先配置了许可arp报文通过的acl表项,因此,目标局域网中的网关设备可以通过arp报文学习目标局域网中的终端设备的arp表项,进而获得终端设备的mac地址。以及,由于上述接入交换机预先配置了许可dhcp报文通过的acl表项,因此,目标局域网内各终端设备可以正常地被分配ip地址。

在本申请实施例中,上述网关设备可以开启arp扫描功能,然后基于预设的周期时长周期性地扫描上述接入交换机上送的arp报文,进而学习其所在网段的终端设备的arp表项。其中,上述周期时长可以根据应用环境进行配置。

一方面,如果上述网关设备已保存其所在网段的终端设备的ip地址,则上述网关设备可以向其所在网段的终端设备发送arp请求报文。终端设备接收到arp请求报文后,通过上述接入交换机向上述网关设备返回arp应答报文。上述网关设备基于接收到的arp应答报文,学习对应于各终端设备的arp表项。

以图2为例,网关设备可以每隔30秒向其所在网段192.168.1.1/24的终端设备发送arp请求报文,计算机a、计算机b、计算机c和计算机d接收到arp请求报文后,分别向网关设备返回arp应答报文。网关设备接收到arp应答报文后,学习到对应于计算机a、计算机b、计算机c和计算机d的arp表项。

另一方面,当上述网关设备所在网段的终端设备之间互相发送arp报文时,上述网关设备同样可以收到上述接入交换机上送的arp报文,并学习终端设备的arp表项。

上述网关设备学习到其所在网段的终端设备的arp表项后,可以提取arp表项中的mac地址,过滤出合法mac地址后。上述网关设备可以将其所在网段的终端设备的mac地址以及其本地的mac地址上传至上述网管服务器。

在本申请实施例中,上述网管服务器接收到上述网关设备上传的mac地址后,可以基于上述网关设备上传的mac地址创建mac地址集

需要指出的是,如果目标局域网中存在多个网关设备,则多个网关设备向上述网管服务器上传mac地址后,上述网管服务器会将接收到的所有mac地址,创建一个统一的mac地址集。

在本申请实施例中,上述网管服务器在创建得到mac地址集后,可以向目标局域网中的所有接入交换机下发mac地址集。

目标局域网中的各接入交换机接收到上述网管服务器下发的mac地址集后,可以基于该mac地址集生成防mac泛洪攻击的mac地址白名单。

在示出的一种实施方式中,上述mac地址白名单包括以上述mac地址集中的mac地址分别作为源mac和目的mac而创建的acl白名单表项;

具体地,如果上述mac地址集中有n个mac地址,则以这n个mac地址分别作为源mac和目的mac,最终可以创建n*n个acl白名单表项;其中,该acl白名单表项许可源mac和目的mac都匹配的报文通过;

或者,如果上述mac地址集中有n个mac地址,则以这n个mac地址作为源mac创建n个acl白名单表项,该acl白名单表项许可源mac匹配的报文通过;以及,以这n个mac地址作为目的mac创建n个acl白名单表项,该acl白名单表项许可目的mac匹配的报文通过,最终可以创建2n个acl白名单表项;其中,前者的优先级大于后者的优先级。接入交换机先匹配报文的源mac,若匹配成功,则进一步匹配报文的目的mac,并在匹配成功后许可报文通过。这种创建acl白名单表项的方式可以大大降低acl白名单表项的总数量。

通过上述措施,接入交换机只允许目标局域网内的终端设备之间互相通信。

在本申请实施例中,上述网管服务器也可以不向接入交换机下发mac地址集,而是基于mac地址集生成防mac泛洪攻击的mac地址白名单,然后通过上述网关设备向各接入交换机下发该mac地址白名单。由上述网管服务器生成mac地址白名单,可以使得接入交换机直接根据mac地址白名单防护mac泛洪攻击,也适用于接入交换机不具有基于mac地址集生成mac地址白名单的功能的情况。

在示出的一种实施方式中,上述mac地址白名单包括以上述mac地址集中的mac地址分别作为源mac和目的mac而创建的acl白名单表项;其中,该acl白名单表项许可源mac和目的mac都匹配的报文通过。

通过上述措施,接入交换机可以直接获得mac地址白名单,并根据mac白名单的规则只允许目标局域网内的终端设备之间互相通信。

在本申请实施例中,当接入交换机上的mac地址白名单是acl白名单表项时,接入交换机上预配置的许可arp报文以及dhcp报文通过的acl表项的优先级大于以mac地址集中的mac地址创建的acl白名单表项的优先级。

因此,接入交换机接收到报文后,首先会判断该报文是否为arp报文或dhcp报文,如果该报文不是arp报文或dhcp报文,则将该报文的源mac和目的mac在上述acl白名单表项中进行匹配,若能配到acl白名单表项,则转发该报文,同时学习对应于源mac的mac表项;如果不能匹配到acl表项,则丢弃该报文,避免了潜在的mac泛洪攻击。

综上所述,在本申请实施例中,网管服务器接收到网关设备上传的mac地址后,可以基于上述网关设备上传的mac地址创建mac地址集,然后向各接入交换机下发该mac地址集;其中,该mac地址集包括上述网关设备学习到的其所在网段的终端设备的mac地址和上述网关设备的mac地址;各接入交换机接收到网管服务器下发的mac地址集后,基于该mac地址集生成防mac泛洪攻击的mac地址白名单;

或者,网管服务器直接基于上述mac地址集生成mac地址白名单,并通过上述网关设备向各接入交换机下发该mac地址白名单;

由于网管服务器下发至各接入交换机的mac地址集中包括目标局域网中的所有终端设备和网关设备的mac地址,所以接入交换机基于由上述mac地址集生成的mac地址白名单进行防mac泛洪攻击时,实际上只允许目标局域网内的终端设备之间互相通信;如果有攻击者利用目标局域网内的终端设备向接入交换机发送具有伪造出的无效源mac的攻击报文,则接入交换机根据mac地址白名单会直接丢弃攻击报文,从而达到防mac泛洪攻击的效果;并且,由于本申请中接入交换机始终不会学习无效的mac表项,因此,接入交换机内存或芯片资源不会被无效的mac表项占满,进而避免了正常的报文被泛洪处理,导致目标局域网的通信效率下降的问题。

与前述防mac泛洪攻击的方法的实施例相对应,本申请还提供了防mac泛洪攻击的装置的实施例。

参见图4,为本申请示出的一种防mac泛洪攻击的装置的实施例框图:

如图4所示,该防mac泛洪攻击的装置40包括:

接收单元410,用于接收到所述网关设备上传的mac地址;所述mac地址包括所述网关设备的mac地址,以及所述网关设备所在网段的终端设备的mac地址。

创建单元420,用于基于所述网关设备上传的mac地址创建mac地址集。

下发单元420,用于向各接入交换机下发所述mac地址集,以使得各接入交换机基于所述mac地址集生成防mac泛洪攻击的mac地址白名单。

在本例中,所述接入交换机预先配置许可arp报文以及dhcp报文通过的acl表项;

所述网关设备所在网段的终端设备的mac地址,为所述网关设备周期性扫描所述接入交换机上送的arp报文学习到的mac地址。

在本例中,所述下发单元420,进一步用于:

基于所述mac地址集生成防mac泛洪攻击的mac地址白名单,并将所述mac地址白名单下发至各接入交换机。

在本例中,所述mac地址白名单,包括以所述mac地址集中的mac地址分别作为源mac和目的mac而创建的acl白名单表项。

在本例中,所述许可arp报文以及dhcp报文通过的acl表项的优先级大于以所述mac地址集中的mac地址创建的acl白名单表项的优先级。

本申请防mac泛洪攻击的装置的实施例可以应用在网管服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网管服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请防mac泛洪攻击的装置所在网管服务器的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网管服务器通常根据该防mac泛洪攻击的装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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