具体实施方式
在实际应用中,网关设备通常根据报文的流量和本地保存的表项来识别攻击报文。以ARP(AddressResolutionProtocol,地址解析协议)攻击为例,在5秒内,如果接收到同一个源MAC(Media Access Control,介质访问控制)地址发送的ARP报文的数量超过一定的阈值,就认为发生攻击,此时,系统会将此MAC地址添加到攻击检测的表项中,在该攻击检测表项老化之前,过滤掉所有该源MAC地址发送的ARP报文,从而避免遭到攻击。但是在这种方案中,网关设备不能获知到底是局域网内哪个主机在发送攻击报文,相应地,网络管理员也就不能采取相应的阻断措施。
针对上述方案存在的问题,本发明提供一种攻击定位、辅助定位方法。下面将以不同的实施例对本发明技术方案进行详细说明。
在第一实施例中,本发明提供一种攻击定位方法,所述方法的执行主体具体为局域网中的网关设备,该网关设备确定存在攻击行为后,即可执行本实施例方法步骤。具体地,请参考图1,本实施例方法可包括如下步骤:
S101,在确认局域网内发生攻击行为后,向局域网内的交换机发送位置探测报文,所述位置探测报文中携带有攻击者的介质访问控制MAC地址A-MAC;
S102、接收局域网内的各交换机发送的位置应答报文,所述位置应答报文中携带所述A-MAC对应的接入端口以及该交换机距离网关设备的跳数,将携带最大跳数的位置应答报文作为目标位置应答报文,并根据该目标位置应答报文中携带的所述A-MAC对应的接入端口以及发送该目标位置应答报文的交换机来确定攻击者的位置;
其中,位置应答报文为局域网中的交换机接收到位置探测报文,并基于所述A-MAC得到对应的接入端口后返回的响应报文;所述跳数用于表示位置探测报文在局域网内经过的交换机数量。
本实施例中,网关设备确定局域网中存在攻击行为后,即可向局域网中的交换机发送位置探测报文,以通过MAC地址反向查找的方式来确定攻击者发起的攻击行为所经过的交换机,并利用跳数来确定攻击行经过的交换机距离网关设备的距离,从而可准确的确定出攻击者所连接的交换机,最终确定出攻击者的位置,从而可对攻击者的攻击行为在源头进行控制。
具体地,局域网中的交换机接收到探测报文后,即可将接收攻击报文发送者的接入端口,以及交换机距离网关设备的距离,即跳数信息以应答报文形式反馈给网关设备,使得网关设备可准确的确定出攻击者的具体位置。本领域技术人员可以理解,只要知道发送攻击报文的主机对应的交换机的接入端口,就可以确定与该交换机的接入端口连接的主机即可确定为攻击主机。
本发明实施例中,网关设备通过发送探测报文的方式,对攻击者MAC地址进行逐级反向查找,确定出攻击者MAC地址对应的交换机的接入接口,确定出攻击者在局域网中的位置。
上述本发明实施例中,当网关设备确定攻击者的位置,即与攻击者最近的交换机的接入接口后,即可将攻击者的位置,也就是上述目标位置应答报文中携带的A-MAC对应的接入端口和发送该目标位置应答报文的交换机上报给网管。这样,网管获得该信息后,即可通过人工方式或其它方式来限制攻击者的攻击行为,例如可通过关闭交换机与攻击者连接的接入端口等。
上述本发明实施例中,当网关设备确定攻击者的位置,且在确定攻击行为后的预定的时间内检测攻击行为仍然持续进行时,发送控制报文给发送该目标位置应答报文的交换机,通知其关闭所述A-MAC对应的接入端口。其中该控制报文也可通过预先设定的协议规则来识别,例如在上述的探测报文中增加一个识别为控制报文的字段,这样,交换机接收到探测报文,并确定探测报文中携带该字段后,即可确定其为控制报文,从而可获取其中与主机连接的接入端口,对端口进行关闭等操作处理,杜绝攻击者的攻击行为通过接入端口进入局域网。
上述本发明实施例中,在向局域网内的交换机发送位置探测报文的过程中,具体是从接收到攻击报文的端口发送所述位置探测报文。
上述本发明实施例中,向局域网内的交换机发送的位置探测报文的目的MAC地址为用于交换机识别该位置探测报文的预定MAC地址。所述预定MAC地址具体可为组播MAC地址。实际应用中,也可通过其它方式来识别探测报文,对此本发明实施例不做特别限制。
在第二实施例中,本发明提供一种攻击辅助定位方法,所述方法的执行主体具体可以是局域网中的交换机,可接收上述实施例中网关设备发送的探测报文,识别该探测报文并返回应答报文,以通告自身距离网关设备距离(即跳数)信息。具体地,请参考图2,本实施例方法可包括如下步骤:
S201,在接收到网关设备发送的位置探测报文后,获取该位置探测报文中携带的攻击者的MAC地址A-MAC,查找所述A-MAC对应的接入端口,并更新所述位置探测报文的跳数,其中,所述跳数用于表示所述位置探测报文在局域网内经过的交换机数量;
S202、将所述A-MAC对应的接入端口和更新后的跳数携带在位置应答报文中发送给网关设备;
S203、将更新后的跳数携带在所述位置探测报文中从所述A-MAC对应的接入端口转发。
本实施例中,交换机接收到网关设备发送的探测报文后,即可解析其中携带发送局域网中的攻击行为的攻击者的MAC地址A-MAC,并查找自身设备上与该A-MAC对应的接入端口,并更新位置探测报文在局域网内经过的交换机的数量,即跳数,之后进行转发;然后,将查找的与A-MAC对应的接入端口,以及探测报文的跳数信息以应答报文方式返回至网关设备,使得网关设备可根据应答报文中携带的接入端口、跳数等信息确定攻击者的位置。
本实施例中,可在交换机上预先设置用于识别位置探测报文的识别标识,本实施例中为预先设定的MAC地址,这样,交换机接收到报文中携带的目的MAC地址为所述预定的MAC地址时,就可将其确定为位置探测报文,从而可解析位置探测报文中携带的信息。本实施例中,当交换机在接收到网关设备发送的控制报文后,可关闭所述控制报文中携带的A-MAC对应的端口,切断攻击者与局域网之间的通信,杜绝攻击行为。
本实施例中,当交换机在查找A-MAC对应的接入端口的过程中,没有查找到所述A-MAC对应的接入端口时,可将更新后的跳数携带在所述位置探测报文中在交换机上除接收到该报文的端口上转发。
下面将以本发明技术方案在局域网中的具体实现过程中,网关设备与交换机之间的交互过程为例进行说明。
在第三实施例中,在图4所示的组网环境中,局域网中的网关设备在确定攻击行为后,即可向局域网中的交换机发送探测报文,通过与交换机的交互来确定攻击者的位置,具体地,请参考图3,本实施例方法可包括如下步骤:
S301,网关设备在确认局域网内发生攻击行为后,向局域网内的交换机发送位置探测报文,所述位置探测报文中携带有攻击者的MAC地址A-MAC。
本步骤中,网关设备识别攻击行为的方法可以是前面所述的:预定的时间内报文的流量超过阈值则认为发生攻击行为,也可以是本领域技术人员所熟知的其他攻击行为检测的方法,在此不再累述。
在实现本发明实施例时,可预先自定义交换机识别所述位置探测报文的识别标识,比如,可以将识别标识设置为预定的MAC地址,甚至可以设置为预定的IP地址,只要预先在局域网内的交换机上进行相关配置即可。优选地,根据交换机的工作原理,本发明中,设置所述位置探测报文的目的MAC地址为用于交换机识别该位置探测报文的预定MAC地址。进一步地,所述预定MAC地址可以为组播MAC地址。设置为组播MAC而非单播MAC,可以避免因局域网内存在相同MAC地址的设备而造成的报文转发错误。本实施例中优选采用预设的组播MAC地址作为交换机识别探测报文的识别标识,且可预先配置在交换机中。
请参考图4所示的组网图,假定PC4是攻击者,网关设备在确认攻击行为后,发送探测攻击者位置的位置探测报文,所述位置探测报文的载荷中携带有攻击者的MAC地址A-MAC,所述A-MAC是从攻击报文中获取的。所述位置探测报文可以设置成如下格式:
当然,本领域技术人员也可以将所述位置探测报文设置成其他格式,比如:将源MAC设置在数据字段中,将A-MAC放在报文头部。其中,所述目的MAC:0100-00ff-1234,是预定的组播MAC地址。所述源MAC:1-2-3,是网关设备的MAC地址。所述协议号是开发者自己定义的,用于区分报文类型。协议号:0x0909,表示该报文为位置探测报文。所述跳数用于表示位置探测报文在局域网内经过的交换机数量,在网关设备发送所述位置探测报文时,可以将所述跳数设置为0或者其他初始值。
在一种优选的实施方式中,网关设备从接收到攻击报文的端口发送所述位置探测报文,这样可以最大程度地查找到攻击者的位置,也避免了所述位置探测报文对局域网中其他主机或者交换机的干扰。以图4所示的组网图为例,假设网关设备是路由器,路由器将所述位置探测报文通过接收到攻击报文的G0/1号端口发送给交换机1。
S302,交换机查看接收到的报文是否携带预定MAC地址,如果是,则判定该报文为位置探测报文。
如上所述,由于交换机上预设限定识别探测报文的识别标识,本实施例中为预先设定的为组播MAC地址的目的MAC地址,这样,交换机接收到目的MAC地址为预设的组播MAC地址时,就可将其确定为探测报文,从而可解析探测报文中携带的信息。其中上述报文格式中的协议号可以认定为对探测报文类型进一步确定,这样可避免报文识别错误。
S303,交换机获取该位置探测报文中携带的攻击者的MAC地址A-MAC,查找所述A-MAC对应的接入端口,并更新所述位置探测报文的跳数。
S304,交换机将所述A-MAC对应的接入端口和更新后的跳数携带在位置应答报文中发送给网关设备。
上述步骤中,交换机判定收到的报文是所述位置探测报文后,要进行预定的处理。具体地,交换机获取该位置探测报文中携带的A-MAC,根据本地保存的表项查找所述A-MAC对应的接入端口,查找到的所述A-MAC对应的接入端口就是可疑端口,后续网管可以根据所述该可疑端口查看网络拓扑,进而确定攻击者的位置。同时,交换机更新所述位置探测报文的跳数。如果网关设备发送的所述位置探测报文中不携带跳数值,则默认为所述跳数为初始值。交换机通常是将所述位置探测报文的跳数加1。然后交换机将所述A-MAC对应的接入端口和更新后的跳数携带在位置应答报文中发送给网关设备。
以图4为例,交换机1查找到所述A-MAC对应的端口号是G0/2,所述交换机1发送给网关设备的位置应答报文可以设置成如下格式:
其中,源MAC地址1-4-5是交换机1的MAC地址。协议号:0x0910,表示该报文为位置应答报文。
S305,交换机将更新后的跳数携带在所述位置探测报文中从所述A-MAC对应的接入端口转发。
本步骤中,交换机将所述位置探测报文从所述A-MAC对应的接入端口转发,以进行下一段的查找。
具体地,所述交换机1转发的报文格式如下:
交换机2收到所述位置探测报文之后也执行上述步骤302至步骤305,直到所述位置探测报文在局域网内转发完毕为止。
需要注意的是,如果某个交换机在本地没有查找到所述A-MAC对应的接入端口,那么交换机将所述跳数更新后,将所述位置探测报文在交换机除接收到该报文的端口上转发。优选地,为了避免没有携带接入端口的位置应答报文占用网络带宽,交换机在没有查找到所述A-MAC对应的接入端口时不发送位置应答报文。
S306,网关设备接收局域网内的各交换机发送的位置应答报文,将携带最大跳数的位置应答报文作为目标位置应答报文,并根据该目标位置应答报文中携带的所述A-MAC对应的接入端口以及发送该目标位置应答报文的交换机来确定攻击者的位置。
具体地,在网关设备接收到的所有位置应答报文中,携带最大跳数位置应答报文中所述A-MAC对应的接入端口就是攻击者接入局域网的端口,所述最大跳数位置应答报文就是目标位置应答报文。仍以图4为例,网关设备接收到交换机3的位置应答报文的跳数是3,跳数最大,所述交换机3发送的位置应答报文中所述A-MAC对应的接入端口是G0/3,即所述交换机3的G0/3号端口就是攻击者接入局域网时所使用的端口。
网关设备进一步将所述目标位置应答报文中携带的所述A-MAC对应的接入端口和发送该目标位置应答报文的交换机上报给网管。网管通过网络拓扑就可以查找到所述交换机3的G0/3号端口接入的主机是PC4,进而可以采取进一步的防护策略。
本发明实施例还设置了自动防护攻击的流程,具体地:
S307,网关设备在确定攻击行为后的预定的时间内检测攻击行为仍然持续进行时,发送控制报文给发送该目标位置应答报文的交换机,通知其关闭所述A-MAC对应的接入端口。
本步骤中,所述预定的时间由网管根据局域网的大小以及网络传输速率等因素来确定。如果在预定的时间内攻击持续进行,则说明网管没有对该攻击行为采取进一步防护措施,此刻启动控制程序。具体地,控制处理模块发送控制报文给发送目标位置应答报文的交换机,也就是攻击者直连的交换机,通知其关闭攻击者接入局域网的端口,进而阻断攻击,维护正常的网络环境。
具体地,所述网关设备发送的控制报文的格式如下:
|
|
|
A-MAC |
端口 |
跳数 |
1-5-6 |
1-2-3 |
0x0911 |
ffff-ffff-ffff |
G0/3 |
3 |
其中,目的MAC:1-5-6,是交换机3的MAC地址。协议号:0x0911,表示该报文是控制报文。ffff-ffff-ffff,表示关闭相应端口。
S308,交换机在接收到网关设备发送的控制报文后,关闭所述控制报文中携带的所述A-MAC对应的接入端口。
交换机具体可以根据预设的协议来确定网关设备发送给自己的报文是否为控制报文,即可以根据其中的协议号来确定该报文是否为控制报文,若是,则解析得到其中的A-MAC、端口来关闭该相应的端口,实现对攻击报文的隔离。其中,对控制报文的识别,除了可以采用预先设定的协议号来识别外,也可根据其它设定的特定的信息,例如源MAC为特定的MAC地址,目的MAC为特定的MAC地址等方式,优选的,采用协议号,这样,不会影响正常报文的处理,同时又可正确的进行控制报文的处理。
本实施例中,网关设备确定局域网中的攻击行为后,即可通过发送探测报文的方式与局域网中交换机交互,通过反向MAC查找的方式,获取攻击者的攻击行为经过的交换机,并最终确定攻击者的位置,可在攻击源头对攻击行为进行处理,减少攻击者的攻击行为对局域网的影响。
上述本发明各实施例中,网关设备在发出探测报文后,具体可以是在一定预定的时间段内,对接收到的位置应答报文进行解析,确定跳数最大的应答报文为目标应答报文,并最终确定攻击者位置;或者,也可以在接收到一个应答报文的预设时间段内,若没有再接收到其它交换机上传的应答报文,则说明局域网中已没有其它交换机上存在攻击者的MAC表项,即可确定目标应答报文,这样,可避免长时间等待应答报文,导致攻击者定位时间过长等。
在第四实施例中,请参考图5,本发明还提供一种实现上述攻击定位方法的装置,所述装置包括:
位置探测模块51,用于在确认局域网内发生攻击行为后,向局域网内的交换机发送位置探测报文,所述位置探测报文中携带有攻击者的MAC地址A-MAC;
位置确认模块52,用于接收局域网内的各交换机发送的位置应答报文,所述位置应答报文中携带所述A-MAC对应的接入端口以及该交换机距离网关设备的跳数,将携带最大跳数的位置应答报文作为目标位置应答报文,并根据该目标位置应答报文中携带的所述A-MAC对应的接入端口以及发送该目标位置应答报文的交换机来确定攻击者的位置;
其中,位置应答报文为局域网中的交换机接收到位置探测报文,并基于所述A-MAC得到对应的接入端口后返回的响应报文;所述跳数用于表示位置探测报文在局域网内经过的交换机数量。
本实施例装置具体可以应用到网关设备上,作为网关设备对局域网中出现攻击行为时,来定位攻击者的位置,其具体实现过程可参见上述本发明方法实施例的说明,在此不再赘述。
上述图5所示的装置中,所述的位置确认模块52进一步可包括:将所述目标位置应答报文中携带的所述A-MAC对应的接入端口和发送该目标位置应答报文的交换机上报给网管。
此外,上述的图5所示的装置还包括控制处理模块53,用于在确定攻击行为后的预定的时间内检测攻击行为仍然持续进行时,发送控制报文给发送该目标位置应答报文的交换机,通知其关闭所述A-MAC对应的接入端口。
上述图5所示的装置中,所述的位置探测模块51,具体可用于从接收到攻击报文的端口发送所述位置探测报文。
上述图5所示的装置中,所述的位置探测模块51,具体可用于发送的位置探测报文的目的MAC地址为用于交换机识别该位置探测报文的预定MAC地址。其中,所述的预定MAC地址具体可为组播MAC地址。
在第五实施例中,请参考图6,本发明还提供一种实现上述攻击辅助定位方法的装置,所述装置包括:
解析更新模块62,用于在接收到网关设备发送的位置探测报文后,获取该位置探测报文中携带的攻击者的MAC地址A-MAC,查找所述A-MAC对应的接入端口,并更新所述位置探测报文的跳数,其中,所述跳数用于表示所述位置探测报文在局域网内经过的交换机数量;
回复应答模块63,用于将所述A-MAC对应的接入端口和更新后的跳数携带在位置应答报文中发送给网关设备;
定位转发模块64,用于将更新后的跳数携带在所述位置探测报文中从所述A-MAC对应的接入端口转发。
本实施例装置具体可以应用到交换机上,作为交换机对局域网中出现攻击行为时,来辅助定位攻击者的位置,其具体实现过程可参见上述本发明方法实施例的说明,在此不再赘述。
上述图6所示的装置中还包括:报文判断模块61,可用于查看接收到的报文是否携带预定MAC地址,如果是,则判定该报文为位置探测报文。
控制响应模块65,可用于在接收到网关设备发送的控制报文后,关闭所述控制报文中携带的A-MAC对应的端口。
此外,上述图6所示所述定位转发模块64,还可用于所述解析更新模块62没有查找到所述A-MAC对应的接入端口时,将更新后的跳数携带在所述位置探测报文中在交换机上除接收到该报文的端口上转发。
由以上描述可以看出,本发明通过交换机对攻击者MAC地址的反向逐级查找,进而找到攻击者MAC地址对应的接入端口,通过所述接入端口网管就能够最大程度地确认出攻击者在局域网中的位置。同时还设置自动处理的时限,可以在攻击持续的情况下,及时隔离攻击者,从而维护正常的网络环境。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。