基于多任务的双向连接阻断方法、装置及电子设备转让专利

申请号 : CN202210549955.7

文献号 : CN114666300B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王滨刘松郭明万里何承润李超豪闫琛

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本申请提供一种基于多任务的双向连接阻断方法、装置及电子设备,该方法包括:对于待保护设备列表中的任一待保护设备,以及待阻断设备列表中的任一待阻断设备,依据该待保护设备的IP地址、构造的第一虚假MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包;以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包;循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包。该方法可以在实现待保护设备和待阻断设备的双向阻断的情况下,避免广播风暴的发生。

权利要求 :

1.一种基于多任务的双向连接阻断方法,其特征在于,包括:

确定待保护设备列表以及待阻断设备列表;

对于所述待保护设备列表中的任一待保护设备,以及所述待阻断设备列表中的任一待阻断设备,依据该待保护设备的互联网协议IP地址、构造的第一虚假媒体访问控制MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假地址解析协议ARP数据包;

以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包;

循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包。

2.根据权利要求1所述的方法,其特征在于,所述确定待保护设备列表以及待阻断设备列表,包括:周期性探测目标网段中的存活设备,以得到存活设备列表;

依据接收到的阻断配置指令中携带的设备标识,构建待阻断设备列表;

依据所述存活设备列表中除待阻断设备之外的其余设备,构建待保护设备列表。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:对于所述待阻断设备列表中的任一待阻断设备,若该待阻断设备的设备标识未包括在所述存活设备列表中,则将该待阻断设备从所述待阻断设备列表中删除。

4.根据权利要求1所述的方法,其特征在于,所述循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包,包括:通过第一线程循环向该待阻断设备发送第一虚假ARP数据包,以及,通过第二线程循环向该待保护设备发送第二虚假ARP数据包。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:记录所述第一线程的句柄标识、该待保护设备的设备标识以及该待阻断设备的设备标识的第一对应关系;以及,记录所述第二线程的句柄标识、该待阻断设备的设备标识以及该待保护设备的设备标识的第二对应关系;

在接收到针对目标待阻断设备的放行指令的情况下,依据所述目标待阻断设备的设备标识,查询匹配的第一目标第一对应关系和第一目标第二对应关系;

依据所述第一目标第一对应关系中的第一目标第一线程的句柄标识,关闭所述第一目标第一线程;以及,依据所述第一目标第二对应关系中的第一目标第二线程的句柄,关闭所述第一目标第二线程;

将所述目标待阻断设备作为新的待保护设备加入所述待保护设备列表,并将所述目标待阻断设备从所述待阻断设备列表中删除。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在接收到针对目标待保护设备的阻断指令的情况下,依据所述目标待保护设备的设备标识,查询匹配的第二目标第一对应关系和第二目标第二对应关系;

依据所述第二目标第一对应关系中的第二目标第一线程的句柄标识,关闭所述第二目标第一线程;以及,依据所述第二目标第二对应关系中的第二目标第二线程的句柄,关闭所述第二目标第二线程;

将所述目标待保护设备作为新的待阻断设备加入所述待阻断设备列表,并将所述目标待保护设备从所述待保护设备列表中删除。

7.根据权利要求1所述的方法,其特征在于,所述第一虚假ARP数据包的目的MAC地址为非广播地址,所述第二虚假ARP数据包的目的MAC地址为非广播地址;

和/或,

所述第一虚假MAC地址与目标网段内各设备的MAC地址均不同,所述第二虚假MAC地址与目标网段内各设备的MAC地址均不同;其中,所述目标网段为待保护设备及待阻断设备所在网段。

8.一种基于多任务的双向连接阻断装置,其特征在于,包括:

列表维护单元,用于确定待保护设备列表以及待阻断设备列表;

生成单元,用于对于所述待保护设备列表中的任一待保护设备,以及所述待阻断设备列表中的任一待阻断设备,依据该待保护设备的互联网协议IP地址、构造的第一虚假媒体访问控制MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包;以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包;

阻断单元,用于循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包。

9.根据权利要求8所述的装置,其特征在于,所述列表维护单元确定待保护设备列表以及待阻断设备列表,包括:周期性探测目标网段中的存活设备,以得到存活设备列表;

依据接收到的阻断配置指令中携带的设备标识,构建待阻断设备列表;

依据所述存活设备列表中除待阻断设备之外的其余设备,构建待保护设备列表;

其中,所述列表维护单元,还用于对于所述待阻断设备列表中的任一待阻断设备,若该待阻断设备的设备标识未包括在所述存活设备列表中,则将该待阻断设备从所述待阻断设备列表中删除;

以及,

所述阻断单元循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包,包括:通过第一线程循环向该待阻断设备发送第一虚假ARP数据包,以及,通过第二线程循环向该待保护设备发送第二虚假ARP数据包;

其中,所述装置还包括:

记录单元,用于记录所述第一线程的句柄标识、该待保护设备的设备标识以及该待阻断设备的设备标识的第一对应关系;以及,记录所述第二线程的句柄标识、该待阻断设备的设备标识以及该待保护设备的设备标识的第二对应关系;

查询单元,用于在接收到针对目标待阻断设备的放行指令的情况下,依据所述目标待阻断设备的设备标识,查询匹配的第一目标第一对应关系和第一目标第二对应关系;

线程维护单元,用于依据所述第一目标第一对应关系中的第一目标第一线程的句柄标识,关闭所述第一目标第一线程;以及,依据所述第一目标第二对应关系中的第一目标第二线程的句柄,关闭所述第一目标第二线程;

所述列表维护单元,还用于将所述目标待阻断设备作为新的待保护设备加入所述待保护设备列表,并将所述目标待阻断设备从所述待阻断设备列表中删除;

其中,所述查询单元,还用于在接收到针对目标待保护设备的阻断指令的情况下,依据所述目标待保护设备的设备标识,查询匹配的第二目标第一对应关系和第二目标第二对应关系;

所述线程维护单元,还用于依据所述第二目标第一对应关系中的第二目标第一线程的句柄标识,关闭所述第二目标第一线程;以及,依据所述第二目标第二对应关系中的第二目标第二线程的句柄,关闭所述第二目标第二线程;

所述列表维护单元,还用于将所述目标待保护设备作为新的待阻断设备加入所述待阻断设备列表,并将所述目标待保护设备从所述待保护设备列表中删除;

其中,所述第一虚假ARP数据包的目的MAC地址为非广播地址,所述第二虚假ARP数据包的目的MAC地址为非广播地址;

所述第一虚假MAC地址与目标网段内各设备的MAC地址均不同,所述第二虚假MAC地址与目标网段内各设备的MAC地址均不同;

其中,所述目标网段为待保护设备及待阻断设备所在网段。

10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求

1‑7任一项所述的方法。

说明书 :

基于多任务的双向连接阻断方法、装置及电子设备

技术领域

[0001] 本申请涉及数据安全领域,尤其涉及一种基于多任务的双向连接阻断方法、装置及电子设备。

背景技术

[0002] 现有技术中,为了能够达到快速阻断同一网络中的非法设备的目的,往往采用在同一网络中广播发送待阻断设备的虚假ARP(Address Resolution Protocol,地址解析协议)数据包,从而达到欺骗同一网络其它设备的目的,避免了同一网络其它设备和待阻断设备之间的通信。但是该方法存在一个问题是:这样只做到了单向阻断,若被阻断的设备主动在网络中发起连接访问其它设备,其仍然能够和其它设备建立起新的连接,同时,由于是发送广播数据包,若随着被阻断设备数量增加,极易导致该网络发生广播风暴,导致整个网络异常。

发明内容

[0003] 有鉴于此,本申请提供一种基于多任务的双向连接阻断方法、装置及电子设备。
[0004] 具体地,本申请是通过如下技术方案实现的:
[0005] 根据本申请实施例的第一方面,提供一种基于多任务的双向连接阻断方法,包括:
[0006] 确定待保护设备列表以及待阻断设备列表;
[0007] 对于所述待保护设备列表中的任一待保护设备,以及所述待阻断设备列表中的任一待阻断设备,依据该待保护设备的互联网协议IP地址、构造的第一虚假媒体访问控制MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包;
[0008] 以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包;
[0009] 循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包。
[0010] 根据本申请实施例的第二方面,提供一种基于多任务的双向连接阻断装置,包括:
[0011] 列表维护单元,用于确定待保护设备列表以及待阻断设备列表;
[0012] 生成单元,用于对于所述待保护设备列表中的任一待保护设备,以及所述待阻断设备列表中的任一待阻断设备,依据该待保护设备的互联网协议IP地址、构造的第一虚假媒体访问控制MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包;以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包;
[0013] 阻断单元,用于循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包。
[0014] 根据本申请实施例的第三方面,提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现第一方面提供的方法。
[0015] 本申请实施例的基于多任务的双向连接阻断方法,对于所确定的待保护设备列表中的任一待保护设备,以及,待阻断设备列表中的任一待阻断设备,通过依据该待保护设备的IP地址、构造的第一虚假MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包,以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包,并循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包,在实现待保护设备和待阻断设备的双向阻断的情况下,避免了广播风暴的发生。

附图说明

[0016] 图1为本申请一示例性实施例示出的一种基于多任务的双向连接阻断方法的流程示意图;
[0017] 图2为本申请一示例性实施例示出的一种确定待保护设备列表以及待阻断设备列表;
[0018] 图3为本申请一示例性实施例示出的一种具体应用场景的架构示意图;
[0019] 图4为本申请一示例性实施例示出的一种双向阻断的示意图;
[0020] 图5为本申请一示例性实施例示出的一种基于多任务的双向连接阻断装置的结构示意图;
[0021] 图6为本申请又一示例性实施例示出的另一种基于多任务的双向连接阻断装置的结构示意图;
[0022] 图7为本申请一示例性实施例示出的一种电子设备的硬件结构示意图。

具体实施方式

[0023] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0024] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0025] 为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
[0026] 需要说明的是,本申请实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0027] 请参见图1,为本申请实施例提供的一种基于多任务的双向连接阻断方法的流程示意图,如图1所示,该基于多任务的双向连接阻断方法可以包括以下步骤:
[0028] 步骤S100、确定待保护设备列表以及待阻断设备列表。
[0029] 步骤S110、对于待保护设备列表中的任一待保护设备,以及待阻断设备列表中的任一待阻断设备,依据该待保护设备的IP地址、构造的第一虚假MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包。
[0030] 步骤S120、依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包。
[0031] 本申请实施例中,为了实现待保护设备和待阻断设备的双向阻断,并避免发生广播风暴,一方面,对于所确定的待保护设备列表中的每一个待保护设备,可以为该待保护设备构造虚假MAC(Media Access Control,媒体访问控制)地址(可以称为第一虚假MAC地址),并以该第一虚假MAC地址,采用单播方式,分别向待阻断设备列表中各待阻断设备发送虚假ARP数据包(可以称为第一虚假ARP数据包)。
[0032] 另一方面,对于所确定的待阻断设备列表中的每一个待阻断设备,可以为该待阻断设备构造虚假MAC地址(可以称为第二虚假MAC地址),并以该第二虚假MAC地址,采用单播方式,分别向待保护设备列表中各待保护设备发送虚假ARP数据包(可以称为第二虚假ARP数据包)。
[0033] 需要说明的是,在为待阻断设备或待保护设备构架虚假MAC地址时,所构造的虚假MAC地址与网段中的其它设备的MAC地址不同,以避免对其它正常设备造成影响。
[0034] 此外,在为待阻断设备或待保护设备构架虚假MAC地址时,所构造的虚假MAC地址为非广播地址,以避免发生广播风暴。
[0035] 示例性的,对于待保护设备列表中的任一待保护设备,以及,待阻断设备列表中的任一待阻断设备,一方面,可以依据该待保护设备的IP(Internet Protocol,互联网协议)地址、构造的第一虚假MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包。
[0036] 其中,该第一虚假ARP数据包的源IP地址为该待保护设备的IP地址,源MAC地址为第一虚假MAC地址,目的IP地址为该待阻断设备的IP地址,目的MAC地址为该待阻断设备的MAC地址。
[0037] 另一方面,可以依据待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包。
[0038] 其中,该第二虚假ARP数据包的源IP地址为该待阻断设备的IP地址,源MAC地址为第二虚假MAC地址,目的IP地址为该待保护设备的IP地址,目的MAC地址为该待保护设备的MAC地址。
[0039] 步骤S130、循环向该待阻断设备发送第一虚假ARP数据包,以及,循环向该待保护设备发送第二虚假ARP数据包。
[0040] 本申请实施例中,对于待保护设备列表中的任一待保护设备,以及待阻断设备列表中的任一待阻断设备,在按照上述方式生成了第一虚假ARP数据包和第二虚假ARP数据包的情况下,可以循环向该待阻断设备发送第一虚假ARP数据包,以及,循环向该待保护设备发送第二虚假ARP数据包。
[0041] 通过发送上述第一虚假ARP数据包,待阻断设备学习到的待保护设备的MAC地址为虚假MAC地址(如上述第一虚假MAC地址),从而,可以避免待阻断设备主动向待保护设备主动发起通信。
[0042] 同理,通过发送上述第二虚假ARP数据包,待保护设备学习到的待阻断设备的MAC地址为虚假MAC地址(如上述第二虚假MAC地址),从而,可以避免待保护设备主动向待阻断设备发起通信。
[0043] 进而,通过上述第一虚假ARP数据包和第二虚假ARP数据包的发送,避免了该待保护设备和该待阻断设备之间的通信,也阻断了待阻断设备主动发起连接访问该待保护设备,实现针对该待阻断设备和该待保护设备的双向阻断。
[0044] 示例性的,在按照上述方式生成了第一虚假ARP数据包和第二虚假ARP数据包的情况下,可以按照第一周期,周期性地向该待阻断设备发送第一虚假ARP数据包,并按照第二周期,周期性地向该待阻断设备发送第二虚假ARP数据包。
[0045] 示例性的,第一周期和第二周期可以相同,也可以不同。
[0046] 需要说明的是,上述发送第一虚假ARP数据包以及发送第二虚假ARP数据包的周期可以依据网络环境确定,所确定的周期需要保证待阻断设备和待保护设备之间无法建立起连接并进行通信。
[0047] 可见,在图1所示方法流程中,对于所确定的待保护设备列表中的任一待保护设备,以及,待阻断设备列表中的任一待阻断设备,通过依据该待保护设备的IP地址、构造的第一虚假MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包,以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包,并循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包,在实现待保护设备和待阻断设备的双向阻断的情况下,避免了广播风暴的发生。
[0048] 在一些实施例中,如图2所示,步骤S100中,确定待保护设备列表以及待阻断设备列表,可以通过以下步骤实现:
[0049] 步骤S101、周期性探测目标网段中的存活设备,以得到存活设备列表;
[0050] 步骤S102、依据接收到的阻断配置指令中携带的设备标识,构建待阻断设备列表;
[0051] 步骤S103、依据存活设备列表中除待阻断设备之外的其余设备,构建待保护设备列表。
[0052] 示例性的,对于需要进行设备保护和阻断的网段(本文中称为目标网段),可以周期性地探测该目标网段中的存活设备(即在线设备)。
[0053] 例如,可以周期性地在目标网段中广播探测报文,该目标网段中的存活设备在接收到探测报文时,可以发送响应报文,进而,可以依据接收到的响应报文获取目标网段中存活设备的设备标识(如IP地址、MAC地址等)。
[0054] 示例性的,可以依据探测得到的目标网段中的存活设备的设备标识,构建存活设备列表。
[0055] 例如,可以构建存活设备的IP地址、MAC地址列表:[(IP1,MAC1),(IP2,MAC2)……]。
[0056] 示例性的,对于需要阻断的设备(即待阻断设备)的设备标识,可以依据接收到的阻断配置指令确定。
[0057] 在接收到阻断配置指令的情况下,可以获取接收到的阻断配置指令中携带的设备标识,以获取到的设备标识为待阻断设备的设备标识,构建待阻断设备列表,并将存活设备列表中除待阻断设备之外的其余设备,确定为待保护设备,构建待保护设备列表。
[0058] 示例性的,阻断配置指令中携带的待阻断设备的设备标识可以包括待阻断设备的IP地址和/或MAC地址。
[0059] 例如,以待阻断设备的设备标识为待阻断设备的IP地址为例,假设存活设备列表为[(IP1,MAC1),(IP2,MAC2),(IP3,MAC3)],接收到的阻断配置指令中携带的设备标识为IP1,则构建的待阻断设备列表可以为[(IP1,MAC1)],构建的待保护设备列表可以为[(IP2,MAC2),(IP3,MAC3)]。
[0060] 需要说明的是,在本申请实施例中,待保护设备也可以通过配置的方式来确定,例如,可以依据接收到的保护配置指令中携带的设备标识,构建待保护设备列表,相应地,可以依据存活设备列表中,除待保护设备之外的其余设备,构建待阻断设备列表。
[0061] 或者,待保护设备和待阻断设备分别通过配置确定,例如,依据接收到的保护配置指令中携带的设备标识,构建待保护设备列表,并依据接收到的阻断配置指令中携带的设备标识,构建待阻断设备列表。
[0062] 在一个示例中,本申请实施例提供的基于多任务的双向连接阻断方法还可以包括:
[0063] 对于待阻断设备列表中的任一待阻断设备,若该待阻断设备的设备标识未包括在存活设备列表中,则将该待阻断设备从所述待阻断设备列表中删除。
[0064] 示例性的,考虑到设备在离线的情况下,其通常不会与其它设备建立连接并进行通信,因此,对于离线状态下的待阻断设备可以不需要按照步骤S100 S130中描述的方式进~行阻断处理。
[0065] 相应地,对于待阻断设备列表中的任一待阻断设备,可以依据该待阻断设备的设备标识查询存活设备列表,确定存活设备列表中是否包括该设备标识,即确定该待阻断设备(该设备标识对应的待阻断设备)是否为存活设备。若存活设备列表中未包括该设备标识,即该待阻断设备为离线设备,可以将该待阻断设备从待阻断设备列表中删除,进而,可以不需要针对该待阻断设备进行阻断处理,减少资源消耗。
[0066] 示例性的,确定待阻断设备是否为存活设备可以在接收到阻断配置指令的情况下执行,即可以在接收到阻断配置指令的情况下,依据阻断配置指令中携带的设备标识查询存活设备列表,对于存活设备列表中未包括的设备标识,可以从待阻断设备列表中删除(若还未加入到待阻断设备列表,则可以拒绝将其添加至待阻断设备列表)。
[0067] 和/或,确定待阻断设备是否为存活设备可以在存活设备发生更新的情况下执行。例如,由于存活设备列表是依据周期性探测得到的目标网段中的存活设备构建的,因此,存活设备列表可能会发生周期性地更新。因而,可以依据存活设备的探测周期,周期性地确定待阻断设备列表中的待阻断设备是否为存活设备,或者,在确定存活设备列表发生了更新的情况下,确定待阻断设备是否为存活设备,并将不是存活设备的待阻断设备从待阻断设备列表中删除。
[0068] 在一些实施例中,步骤S130中,循环向该待阻断设备发送第一虚假ARP数据包,以及,循环向该待保护设备发送第二虚假ARP数据包,可以包括:
[0069] 通过第一线程循环向该待阻断设备发送第一虚假ARP数据包,以及,通过第二线程循环向该待保护设备发送第二虚假ARP数据包。
[0070] 示例性的,为了提高双向阻断效率和可靠性,可以通过不同的线程发送不同的虚假ARP数据包。
[0071] 示例性的,对于任一待阻断设备,以及任一待保护设备,向该待阻断设备发送的该待保护设备的虚假ARP数据包(即上述第一虚假ARP数据包),以及,向该待保护设备发送的该待阻断设备的虚假ARP数据包(即上述第二虚假ARP数据包)可以分别通过不同的线程发送。
[0072] 示例性的,可以通过第一线程循环向该待阻断设备发送第一虚假ARP数据包,通过第二线程循环向该待保护设备发送第二虚假ARP数据包。
[0073] 示例性的,向同一待阻断设备发送不同待保护设备的第一虚假ARP数据包可以分别通过不同的第一线程发送;向同一待保护设备发送的不同待阻断设备的第二虚假ARP数据包可以分别通过不同的第二线程发送。
[0074] 在一个示例中,本申请实施例提供的基于多任务的双向连接阻断方法还可以包括:
[0075] 记录第一线程的句柄标识、该待保护设备的设备标识以及该待阻断设备的设备标识的第一对应关系;以及,记录第二线程的句柄标识、该待阻断设备的设备标识以及该待保护设备的设备标识的第二对应关系;
[0076] 在接收到针对目标待阻断设备的放行指令的情况下,依据目标待阻断设备的设备标识,查询匹配的第一目标第一对应关系和第一目标第二对应关系;
[0077] 依据第一目标第一对应关系中的第一目标第一线程的句柄标识,关闭第一目标第一线程;以及,依据第一目标第二对应关系中的第一目标第二线程的句柄,关闭第一目标第二线程;
[0078] 将目标待阻断设备作为新的待保护设备加入所述待保护设备列表,并将目标待阻断设备从待阻断设备列表中删除。
[0079] 示例性的,为了在保证阻断可靠性的情况下,节省系统资源,可以记录发送虚假ARP数据包的线程的句柄标识与虚假ARP数据包的源/目的信息的对应关系。
[0080] 示例性的,对于任一待阻断设备和任一待保护设备,在通过第一线程循环向该待阻断设备发送该待保护设备的第一虚假ARP数据包的情况下,可以记录该第一线程的句柄标识、待保护设备的设备标识以及该待阻断设备的设备标识的对应关系(本文中称为第一对应关系)。
[0081] 在通过第二线程循环向该待保护设备发送该待阻断设备的第二虚假ARP数据包的情况下,可以记录该第二线程的句柄标识、待阻断设备的设备标识以及该待保护设备的设备标识的对应关系(本文中称为第二对应关系)。
[0082] 示例性的,待保护设备的设备标识可以包括IP地址和/或MAC地址,待阻断设备的设备标识可以包括IP地址和/或MAC地址。
[0083] 需要说明的是,记录的设备标识包括MAC地址的情况下,对于上述第一对应关系,记录的待保护设备的MAC地址可以为待保护设备本身的MAC地址(例如,通过周期性存活设备探测获取到的设备的MAC地址),或者,记录的待保护设备的MAC地址可以为按照上述方式为该待保护设备构造的第一虚假MAC地址。
[0084] 同理,对于上述第二对应关系,记录的待阻断设备的MAC地址可以为待阻断设备本身的MAC地址(例如,通过周期性存活设备探测获取到的设备的MAC地址,或,阻断配置指令中携带的MAC地址),或者,记录的待阻断设备的MAC地址可以为按照上述方式为该待阻断设备构造的第二虚假MAC地址。
[0085] 示例性的,对于任一待阻断设备(下文中称为目标待阻断设备),在需要对该目标待阻断设备放行,即不再对该待阻断设备进行阻断的情况下,例如,在该目标待阻断设备由未注册设备变为注册设备的情况下,可以对该目标待阻断设备进行放行。
[0086] 在该情况下,可以依据目标待阻断设备的设备标识,查询匹配的第一对应关系(本文中称为第一目标第一对应关系)和第二对应关系(本文中称为第一目标第二对应关系)。
[0087] 对于查询到的第一目标第一对应关系,可以依据第一目标第一对应关系中的第一线程(本文中称为第一目标第一线程)的句柄标识,关闭第一目标第一线程。
[0088] 对于查询到的第一目标第二对应关系,可以依据第一目标第二对应关系中的第二线程(本文中称为第一目标第二线程)的句柄,关闭第一目标第二线程。
[0089] 示例性的,对于放行之后的待阻断设备(即上述目标待阻断设备),可以将该目标待阻断设备作为新的待保护设备加入待保护设备列表,并将该目标待阻断设备从待阻断设备列表中删除,并按照上述实施例中描述的方式,针对该新的待保护设备,以及待阻断设备列表中的各待阻断设备,进行双向阻断处理。
[0090] 在一个示例中,本申请实施例提供的基于多任务的双向连接阻断方法还可以包括:
[0091] 在接收到针对目标待保护设备的阻断指令的情况下,依据目标待保护设备的设备标识,查询匹配的第二目标第一对应关系和第二目标第二对应关系;
[0092] 依据第二目标第一对应关系中的第二目标第一线程的句柄标识,关闭第二目标第一线程;以及,依据第二目标第二对应关系中的第二目标第二线程的句柄,关闭第二目标第二线程;
[0093] 将目标待保护设备作为新的待阻断设备加入待阻断设备列表,并将目标待保护设备从待保护设备列表中删除。
[0094] 示例性的,对于任一待保护设备(下文中称为目标待保护设备),在需要对该目标待保护设备进行阻断,即不再对该待保护设备进行保护的情况下,例如,该目标待保护设备被添加至黑名单,或者,该目标待保护设备的设备信息被篡改等情况下,可以对该目标待保护设备进行阻断。
[0095] 在该情况下,可以依据该待保护设备的设备标识,查询匹配的第一对应关系(本文中称为第二目标第一对应关系)和第二对应关系(本文中称为第二目标第二对应关系)。
[0096] 对于查询到的第二目标第一对应关系,可以依据第二目标第一对应关系中的第一线程(本文中称为第二目标第一线程)的句柄标识,关闭第二目标第一线程。
[0097] 对于查询到的第二目标第二对应关系,可以依据该第二目标第二对应关系中的第二线程(本文中称为第二目标第二线程)的句柄,关闭第二目标第二线程。
[0098] 示例性的,对于阻断之后的待保护设备(即上述目标待保护设备),可以将该目标待保护设备作为新的待阻断设备加入待阻断设备列表,并将该目标待保护设备从待保护设备列表中删除,并按照上述实施例中描述的方式,针对该新的待阻断设备,以及待保护设备列表中的各待保护设备,进行双向阻断处理。
[0099] 需要说明的是,在本申请实施例中,由于针对一个待保护设备和一个待阻断设备的双向阻断需要使用两个线程进行第一虚假ARP数据包和第二虚假ARP数据包的发送,因此,在存在待保护设备和/或待阻断设备的数量较多的情况下,会需要使用大量线程来进行虚假ARP数据包的发送,占用较多的系统资源。为了减少线程对系统资源的占用,可以依据第一ARP数据包的发送周期周期性关闭或提起第一线程,以及,依据第二ARP数据包的发送周期周期性地关闭或提起第二线程,并控制不同第一线程发送第一ARP数据包的时间不完全相同,以及,控制不同第二线程发送第二ARP数据包的时间不完全相同,减少同时运行的线程的数量,进而,减少系统资源的消耗。
[0100] 在一些实施例中,本申请实施例提供的基于多任务的双向连接阻断方法还可以包括:
[0101] 第一虚假ARP数据包的目的MAC地址为非广播地址,第二虚假ARP数据包的目的MAC地址为非广播地址。
[0102] 示例性的,为了避免发生广播风暴,在按照上述方式进行双向阻断的过程中,可以对MAC地址为广播地址的情况进行过滤。
[0103] 示例性的,对于任一待阻断设备,若该待阻断设备的MAC地址为广播地址,则可以拒绝生成目的MAC地址为广播地址的第一虚假ARP数据包。
[0104] 同理,对于任一待保护设备,若该待保护设备的MAC地址为广播地址,则可以拒绝生成目的MAC地址为广播地址的第二虚假ARP数据包。
[0105] 需要说明的是,为了实现上述避免广播风暴的目的,在生成待阻断设备列表以及待保护设备列表时,对于MAC地址为广播地址的设备,可以拒绝将其添加至待阻断设备列表或待保护设备列表。
[0106] 在一些实施例中,第一虚假MAC地址与目标网段内各设备的MAC地址均不同,第二虚假MAC地址与目标网段内各设备的MAC地址均不同。
[0107] 示例性的,为了避免虚假ARP数据包对目标网段内正常设备造成影响,在生成虚假ARP数据包时,构造的虚假MAC地址(如上述第一虚假MAC地址或第二虚假MAC地址)需与目标网段(即待保护设备及待阻断设备所在网段)内各设备的MAC地址均不同。
[0108] 为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
[0109] 如图3所示,为本申请实施例提供的一种具体应用场景的架构示意图,如图3所示,该应用场景中可以包括双向连接阻断设备以及视频物联网终端设备,该双向连接阻断设备与视频物联网终端设备处于同一网段。该双向连接阻断设备包括探测模块、消息接收模块以及双向连接阻断模块。
[0110] 基于图3所示应用场景,基于多任务的双向连接阻断方案实现流程如下:
[0111] 1、在视频物联网设备网段中使用探测模块周期性探测同网段的存活设备的IP地址和MAC地址,得到该网段存活(IP, MAC)地址列表(即上述存活设备列表):[(IP1,MAC1),(IP2,MAC2)……]。
[0112] 例如,通过探测模块探测视频物联网设备C网段中的设备,得到存活设备(IP, MAC)地址列表为:[(192.168.1.1,aa:aa:aa:aa:aa:aa),(192.168.1.2, bb:bb:bb:bb:bb:bb),……],记为A。
[0113] 2、消息接收模块实时接收上级设备发送的需要阻断的IP地址(即上述阻断配置志林),得到待阻断设备IP地址列表[IP,…]。
[0114] 例如,假设上级设备下发指令要阻断一个未注册的设备,IP地址为192.168.1.2,则待阻断设备IP地址列表为[192.168.1.2],记为N。
[0115] 3、依据存活设备(IP, MAC)列表中除去待阻断设备IP列表中的设备之外的其余设备,构建待保护设备(IP, MAC)地址列表:[(IP,MAC),……]。
[0116] 示例性的,假设待保护设备(IP, MAC)地址列表为P,则A‑N=P,P中的值为:[(192.168.1.1,aa:aa:aa:aa:aa:aa),……]。
[0117] 4、判断待阻断设备IP地址列表中的值是否存在存活设备(IP, MAC)列表中,若不存在,则将该待阻断设备IP地址从待阻断设备IP地址列表中剔除,从而保证后续操作过程中不会对离线的设备进行阻断操作,避免占用过多资源。
[0118] 示例性的,可以对A和N求交集,得到待阻断设备的(IP, MAC)列表B,则列表B为[(192.168.1.2,bb:bb:bb:bb:bb:bb)]。
[0119] 5、从待阻断设备IP地址列表中依次取出待阻断设备的IP堵住,并构造待阻断设备的虚假MAC地址,组装成虚假ARP数据包。
[0120] 例如,从列表B中取出192.168.1.2的IP地址,构造该IP的虚假MAC。
[0121] 示例性的,虚假MAC地址为同一网段中不存在的MAC地址。
[0122] 6、从待保护设备(IP,MAC)地址列表中依次取出待保护设备的IP地址和MAC地址,以待保护设备的IP地址和MAC地址为目的IP地址和目的MAC地址,分别发送待阻断IP地址列表中的虚假ARP数据包,则构成了一组数据包发送对(待阻断设备IP地址,虚假MAC地址,待保护设备的IP地址,待保护设备的MAC地址)(一个待阻断设备向一个待保护设备发送的虚假ARP数据包对应一个发送对)。
[0123] 其中,该发送对通过构建一个线程实现,该线程循环向待保护设备发送待阻断设备的虚假ARP数据包,并记录该线程句柄标识和发送对的对应关系。
[0124] 例如,从列表P中取出(192.168.1.1,aa:aa:aa:aa:aa:aa),从列表B中取出(192.168.1.2),并构造一个虚假MAC地址,例如为(xx:xx:xx:xx:xx:xx),形成的一组发送对为(192.168.1.2,xx:xx:xx:xx:xx:xx,192.168.1.1,aa:aa:aa:aa:aa:aa),构造发送线程,循环向192.168.1.1发送192.168.1.2的虚假ARP数据包,达到192.168.1.2不能主动与192.168.1.1发起连接的目的,并记录线程句柄标识和发送对的对应关系。
[0125] 7、从待保护设备(IP,MAC)地址列表中依次取出待保护设备的IP地址,并构造待保护设备的假MAC地址,形成虚假ARP数据包。
[0126] 例如,从列表P中取出192.168.1.1的IP地址,构造该IP的虚假MAC。
[0127] 示例性的,虚假MAC地址为同一网段中不存在的MAC地址。
[0128] 8、从待阻断设备IP地址列表中依次取出待阻断设备的IP地址和其MAC地址,以待阻断设备的IP地址和MAC地址为目的IP地址和目的MAC地址,分别发送待保护设备IP地址列表中的虚假ARP数据包,则构成了一组数据包发送对(待保护设备IP地址,虚假MAC地址,待阻断设备IP地址,待阻断设备MAC地址)。
[0129] 其中,该发送对通过构建一个线程实现,该线程循环向待阻断设备发送待保护设备的虚假ARP数据包,并记录该线程句柄标识和发送对的对应关系。
[0130] 例如,从列表B中取出(192.168.1.2,bb:bb:bb:bb:bb:bb),从列表P中取出(192.168.1.1),并构造一个虚假MAC地址,例如为(yy:yy:yy:yy:yy:yy),形成的一组发送队为(192.168.1.1, yy:yy:yy:yy:yy:yy,192.168.1.2,bb:bb:bb:bb:bb:bb),构造发送线程,循环向192.168.1.2发送192.168.1.1的虚假ARP数据包,达到192.168.1.1不能主动与192.168.1.2发起连接的目的,并记录线程句柄标识和发送对的对应关系,其示意图可以如图4所示。
[0131] 示例性的,假设列表B中待阻断设备的数量为len(B),列表P中待保护设备的数量为len(P),则线程的数量可以为:len(B)*len(P)。
[0132] 9、若任一待保护设备或待阻断设备的MAC地址为广播地址(如ff:ff:ff:ff:ff:ff:ff),则不构建针对该待保护设备或待阻断设备伪造ARP数据包,避免产生广播风暴。
[0133] 10、进一步地,若在循环探测过程中发现新的存活设备,或者接收到上级设备发送的阻断或者放行消息,则更新上述列表B和/或上述列表P。
[0134] 示例性的,若有新的设备需要保护,则分别构建针对该设备的双向虚假ARP数据包的发送线程进行保护,并记录线程句柄标识和发送对的对应关系;
[0135] 若有新的设备需要阻断,则同样构建双向虚假ARP数据包的发送线程进行阻断,并记录线程句柄标识和发送对的对应关系。
[0136] 11、进一步地,若需要放行已经阻断的设备(比如未注册的设备注册了),则需要找到该设备相关的发送对,并根据发送对和线程句柄标识的对应关系找到对应的发送线程,关闭该发送线程,并将该设备作为新的待保护设备,按照上述方式进行保护。
[0137] 12、进一步地,若需要对已经保护的设备进行阻断,则需要找到该设备相关的发送对,并根据发送对和线程句柄标识的对应关系,找到对应的发送线程,关掉线程,并将该设备作为新的待阻断设备,按照上述方式进行阻断。
[0138] 以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
[0139] 请参见图5,为本申请实施例提供的一种基于多任务的双向连接阻断装置的结构示意图,如图5所示,该基于多任务的双向连接阻断装置可以包括:
[0140] 列表维护单元510,用于确定待保护设备列表以及待阻断设备列表;
[0141] 生成单元520,用于对于所述待保护设备列表中的任一待保护设备,以及所述待阻断设备列表中的任一待阻断设备,依据该待保护设备的互联网协议IP地址、构造的第一虚假媒体访问控制MAC地址、该待阻断设备的IP地址以及该待阻断设备的MAC地址,生成第一虚假ARP数据包;以及,依据该待阻断设备的IP地址、构造的第二虚假MAC地址、该待保护设备的IP地址以及该待保护设备的MAC地址,生成第二虚假ARP数据包;
[0142] 阻断单元530,用于循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包。
[0143] 在一些实施例中,所述列表维护单元510确定待保护设备列表以及待阻断设备列表,包括:
[0144] 周期性探测目标网段中的存活设备,以得到存活设备列表;
[0145] 依据接收到的阻断配置指令中携带的设备标识,构建待阻断设备列表;
[0146] 依据所述存活设备列表中除待阻断设备之外的其余设备,构建待保护设备列表。
[0147] 在一些实施例中,所述列表维护单元510,还用于对于所述待阻断设备列表中的任一待阻断设备,若该待阻断设备的设备标识未包括在所述存活设备列表中,则将该待阻断设备从所述待阻断设备列表。
[0148] 在一些实施例中,所述阻断单元530循环向该待阻断设备发送所述第一虚假ARP数据包,以及,循环向该待保护设备发送所述第二虚假ARP数据包,包括:
[0149] 通过第一线程循环向该待阻断设备发送第一虚假ARP数据包,以及,通过第二线程循环向该待保护设备发送第二虚假ARP数据包。
[0150] 在一些实施例中,如图6所示,所述装置还包括:
[0151] 记录单元540,用于记录所述第一线程的句柄标识、该待保护设备的设备标识以及该待阻断设备的设备标识的第一对应关系;以及,记录所述第二线程的句柄标识、该待阻断设备的设备标识以及该待保护设备的设备标识的第二对应关系;
[0152] 查询单元550,用于在接收到针对目标待阻断设备的放行指令的情况下,依据所述目标待阻断设备的设备标识,查询匹配的第一目标第一对应关系和第一目标第二对应关系;
[0153] 线程维护单元560,用于依据所述第一目标第一对应关系中的第一目标第一线程的句柄标识,关闭所述第一目标第一线程;以及,依据所述第一目标第二对应关系中的第一目标第二线程的句柄,关闭所述第一目标第二线程;
[0154] 所述列表维护单元510,还用于将所述目标待阻断设备作为新的待保护设备加入所述待保护设备列表,并将所述目标待阻断设备从所述待阻断设备列表中删除。
[0155] 在一些实施例中,所述查询单元550,还用于在接收到针对目标待保护设备的阻断指令的情况下,依据所述目标待保护设备的设备标识,查询匹配的第二目标第一对应关系和第二目标第二对应关系;
[0156] 所述线程维护单元560,还用于依据所述第二目标第一对应关系中的第二目标第一线程的句柄标识,关闭所述第二目标第一线程;以及,依据所述第二目标第二对应关系中的第二目标第二线程的句柄,关闭所述第二目标第二线程;
[0157] 所述列表维护单元510,还用于将所述目标待保护设备作为新的待阻断设备加入所述待阻断设备列表,并将所述目标待保护设备从所述待保护设备列表中删除。
[0158] 在一些实施例中,第一虚假ARP数据包的目的MAC地址为非广播地址,所述第二虚假ARP数据包的目的MAC地址为非广播地址。
[0159] 在一些实施例中,第一虚假MAC地址与目标网段内各设备的MAC地址均不同,所述第二虚假MAC地址与目标网段内各设备的MAC地址均不同;
[0160] 其中,所述目标网段为待保护设备及待阻断设备所在网段。
[0161] 请参见图7,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可包括处理器701、存储有计算机程序的机器可读存储介质702。处理器701与机器可读存储介质702可经由系统总线703通信。并且,通过读取并执行机器可读存储介质702中与基于多任务的双向连接阻断逻辑对应的计算机程序,处理器701可执行上文描述的任意基于多任务的双向连接阻断方法。
[0162] 本文中提到的机器可读存储介质702可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0163] 在一些实施例中,还提供了一种机器可读存储介质,该机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上文描述的基于多任务的双向连接阻断方法。例如,所述机器可读存储介质可以是ROM、RAM、CD‑ROM、磁带、软盘和光数据存储设备等。
[0164] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0165] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。