一种ICMP隧道的检测方法、装置、存储介质和电子设备转让专利

申请号 : CN202011257029.X

文献号 : CN112437062B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘盈董叶豪

申请人 : 北京天融信网络安全技术有限公司北京天融信科技有限公司北京天融信软件有限公司

摘要 :

本申请实施例提供一种ICMP隧道的检测方法、装置、存储介质和电子设备,该检测方法包括:获取ICMP数据包;提取ICMP数据包中的有效载荷字段;根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量;利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道。本申请实施例通过提取ICMP数据包中的有效载荷字段,随后根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量,并使用预先训练好的检测模型来确定是否存在ICMP隧道,从而实现了基于ICMP数据报文的隐蔽通道的检测,从而能够提高网络安全性。

权利要求 :

1.一种因特网控制消息协议ICMP隧道的检测方法,其特征在于,包括:获取ICMP数据包;

提取所述ICMP数据包中的有效载荷字段;

根据所述有效载荷字段,计算字符串距离,并利用所述字符串距离构建特征向量;

利用预先训练好的检测模型对所述特征向量进行检测,以确定是否存在ICMP隧道;

其中,所述ICMP数据包包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包,且所述第二请求数据包为在所述第一响应数据包之后与所述第一响应数据包相邻的数据包;

所述字符串距离包括第一类字符串距离、第二类字符串距离和第三类字符串距离,所述第一类字符串距离是通过计算所述第一请求数据包中的有效载荷字段和所述第一响应数据包中的有效载荷字段之间的字符串距离确定的,所述第二类字符串距离是通过计算所述第一请求数据包中的有效载荷字段和所述第二请求数据包中的有效载荷字段之间的字符串距离确定的,所述第三类字符串距离是通过计算所述第一响应数据包中的有效载荷字段和所述第二响应数据包中的有效载荷字段之间的字符串距离确定的。

2.根据权利要求1所述的检测方法,其特征在于,在所述利用预先训练好的检测模型对所述特征向量进行检测之前,所述检测方法包括:利用特征矩阵样本对初始检测模型进行训练,获得所述预先训练好的检测模型,其中,所述特征矩阵样本是由特征向量样本构建的。

3.根据权利要求1所述的检测方法,其特征在于,所述获取ICMP数据包,包括:通过离线方式获取所述ICMP数据包。

4.一种因特网控制消息协议ICMP隧道的检测装置,其特征在于,包括:获取模块,用于获取ICMP数据包;

提取模块,用于提取所述ICMP数据包中的有效载荷字段;

计算创建模块,用于根据所述有效载荷字段,计算字符串距离,并利用所述字符串距离构建特征向量;

确定模块,用于利用预先训练好的检测模型对所述特征向量进行检测,以确定是否存在ICMP隧道;

其中,所述ICMP数据包包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包,且所述第二请求数据包为在所述第一响应数据包之后与所述第一响应数据包相邻的数据包;

所述字符串距离包括第一类字符串距离、第二类字符串距离和第三类字符串距离,所述第一类字符串距离是通过计算所述第一请求数据包中的有效载荷字段和所述第一响应数据包中的有效载荷字段之间的字符串距离确定的,所述第二类字符串距离是通过计算所述第一请求数据包中的有效载荷字段和所述第二请求数据包中的有效载荷字段之间的字符串距离确定的,所述第三类字符串距离是通过计算所述第一响应数据包中的有效载荷字段和所述第二响应数据包中的有效载荷字段之间的字符串距离确定的。

5.根据权利要求4所述的检测装置,其特征在于,所述检测装置包括:训练模块,用于利用特征矩阵样本对初始检测模型进行训练,获得所述预先训练好的检测模型,其中,所述特征矩阵样本是由特征向量样本构建的。

6.根据权利要求4所述的检测装置,其特征在于,所述获取模块,用于通过离线方式获取所述ICMP数据包。

7.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1‑3任一所述的因特网控制消息协议ICMP隧道的检测方法。

8.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1‑3任一所述的因特网控制消息协议ICMP隧道的检测方法。

说明书 :

一种ICMP隧道的检测方法、装置、存储介质和电子设备

技术领域

[0001] 本申请涉及网络安全技术领域,尤其是涉及一种因特网控制消息协议(Internet Control Message Protocol,ICMP)隧道的检测方法、装置、存储介质和电子设备。

背景技术

[0002] 目前,由于大多数ICMP流量可以躲避防火墙等安全网络设备的检测,攻击者可利用因特网控制消息协议将数据隐藏在ICMP报文的有效负载部分中,从而形成了ICMP隐蔽通道。
[0003] 例如,在恶意攻击中经常出现的一种情况是攻击者通过某种方式取得了一台主机的权限后,其可获得一些文件,例如,域哈希值和/或密码文件等,并且这些文件需要回传至本地进行破解。但是,防火墙阻断了由内网发起的请求,只有ICMP协议没有被阻断,而攻击者又需要回传文件,这个时候如果攻击者可以PING(Packet Internet Groper,因特网包探索器)远程计算机,就可以尝试建立ICMP隧道,并且ICMP隧道是将流量封装进PING数据包中,从而能够通过防火墙的检测。
[0004] 由此可见,现有的ICMP隧道利用了网络协议的特点来隐蔽的进行数据传输,严重威胁信息安全,故ICMP隧道的检测变得越来越重要。

发明内容

[0005] 本申请实施例的目的在于提供一种ICMP隧道的检测方法、装置、存储介质和电子设备,以提高网络安全性。
[0006] 第一方面,本申请实施例提供了一种ICMP隧道的检测方法,该检测方法包括:获取ICMP数据包;提取ICMP数据包中的有效载荷字段;根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量;利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道。
[0007] 因此,本申请实施例通过提取ICMP数据包中的有效载荷字段,随后根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量,并使用预先训练好的检测模型来确定是否存在ICMP隧道,从而实现了基于ICMP数据报文的隐蔽通道的检测,从而能够提高网络安全性。
[0008] 在一个可能的实施例中,ICMP数据包包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包,且第二请求数据包为在第一响应数据包之后与第一响应数据包相邻的数据包;字符串距离包括第一类字符串距离、第二类字符串距离和第三类字符串距离,第一类字符串距离是通过计算第一请求数据包中的有效载荷字段和第一响应数据包中的有效载荷字段之间的字符串距离确定的,第二类字符串距离是通过计算第一请求数据包中的有效载荷字段和第二请求数据包中的有效载荷字段之间的字符串距离确定的,第三类字符串距离是通过计算第一响应数据包中的有效载荷字段和第二响应数据包中的有效载荷字段之间的字符串距离确定的。
[0009] 因此,本申请实施例不需要提取ICMP数据包的预设特征,也不需要判断传输内容是否杂乱,而是直接提取ICMP数据包中的有效载荷字段,从而实现了基于ICMP数据报文的隐蔽通道的检测,从而能够提高网络安全性。
[0010] 在一个可能的实施例中,在利用预先训练好的检测模型对特征向量进行检测之前,检测方法包括:利用特征矩阵样本对初始检测模型进行训练,获得预先训练好的检测模型,其中,特征矩阵样本是由特征向量样本构建的。
[0011] 在一个可能的实施例中,获取ICMP数据包,包括:通过离线方式获取ICMP数据包。
[0012] 第二方面,本申请实施例提供了一种ICMP隧道的检测装置,该检测装置包括:获取模块,用于获取ICMP数据包;提取模块,用于提取ICMP数据包中的有效载荷字段;计算创建模块,用于根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量;确定模块,用于利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道。
[0013] 在一个可能的实施例中,ICMP数据包包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包,且第二请求数据包为在第一响应数据包之后与第一响应数据包相邻的数据包;字符串距离包括第一类字符串距离、第二类字符串距离和第三类字符串距离,第一类字符串距离是通过计算第一请求数据包中的有效载荷字段和第一响应数据包中的有效载荷字段之间的字符串距离确定的,第二类字符串距离是通过计算第一请求数据包中的有效载荷字段和第二请求数据包中的有效载荷字段之间的字符串距离确定的,第三类字符串距离是通过计算第一响应数据包中的有效载荷字段和第二响应数据包中的有效载荷字段之间的字符串距离确定的。
[0014] 在一个可能的实施例中,检测装置包括:训练模块,用于利用特征矩阵样本对初始检测模型进行训练,获得预先训练好的检测模型,其中,特征矩阵样本是由特征向量样本构建的。
[0015] 在一个可能的实施例中,获取模块,用于通过离线方式获取ICMP数据包。
[0016] 第三方面,本申请实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
[0017] 第四方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
[0018] 第五方面,本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
[0019] 为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0020] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0021] 图1示出了本申请实施例提供的一种应用场景的示意图;
[0022] 图2示出了本申请实施例提供的一种ICMP隧道的检测方法的流程图;
[0023] 图3示出了本申请实施例提供的一种第一设备和第二设备交互的示意图;
[0024] 图4示出了本申请实施例提供的一种ICMP隧道的检测装置的结构框图;
[0025] 图5示出了本申请实施例提供的一种电子设备的结构框图。

具体实施方式

[0026] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0027] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0028] 目前,现有的ICMP隧道的检测方法主要包括以下两种方法:一种是获取ICMP数据包,随后提取ICMP数据包的预设特征,并根据预设特征执行特征统计得到目标特征向量,最后利用检测模型对目标特性向量进行检测以确定是否存在ICMP隧道;另一种是通过对获取的ICMP流量报文进行解析得到传输标识和传输内容,判断传输内容是否为杂乱。如果传输内容为杂乱,判断目标传输标识对应的请求内容和响应内容是否相同。如果目标传输标识对应的请求内容和响应内容不相同,基于目标传输标识确定隐蔽信道通信行为。
[0029] 但是,对于利用检测模型对目标特征向量进行检测以确定是否存在ICMP隧道的方法来说,该方法需要提取ICMP数据包的预设特征,但是如何判断提取出的ICMP数据包的预设特征的准确性没有统一的标准,同时,在根据预设特征执行特征统计的过程中,可能会出现由于数据量较大导致的特征没有被统计上的情况,从而使得特征统计值会受到很大的影响;对于基于流量分析来识别是否存在基于ICMP协议的隐蔽信道通信行为的方案来说,其需要判断传输内容是否为杂乱,但是确定内容是否为杂乱的阈值是很难确定的,因此,其存在着将正常的传输内容判定为杂乱或者将非正常的传输内容判定为不杂乱的情况,从而会影响后续判断是否存在隐蔽信道通信行为的准确性。
[0030] 基于此,本申请实施例提供了一种ICMP隧道的检测方案,通过获取ICMP数据包,随后提取ICMP数据包中的有效载荷(payload)字段,随后根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量,最后利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道。
[0031] 因此,本申请实施例通过提取ICMP数据包中的有效载荷字段,随后根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量,并使用预先训练好的检测模型来确定是否存在ICMP隧道,从而实现了基于ICMP数据报文的隐蔽通道的检测,从而能够提高网络安全性。
[0032] 为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
[0033] “字符串距离”:它是将一个字符串变换成另外一个字符串所需要替换的字符个数。
[0034] 例如,字符串“1017101”与字符串“1007001”之间的字符串距离为2。
[0035] 请参见图1,图1示出了本申请实施例提供的一种应用场景的示意图。如图1所示的应用场景包括第一设备、网络安全设备和第二设备。
[0036] 应理解,第一设备的具体装置、网络安全设备的具体装置和第二设备的具体装置均可根据实际需求来进行设置,本申请实施例并不局限于此。
[0037] 例如,在第一设备为客户端的情况下,第二设备可以为服务器;在第一设备为服务器的情况下,第二设备可以为客户端。
[0038] 再例如,网络安全设备可以为防火墙,也可以为路由器等。
[0039] 为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
[0040] 具体地,网络安全设备可捕获第一设备和第二设备交互过程中使用的ICMP数据包,以及由于ICMP数据包包括payload字段,网络安全设备可提取ICMP数据包中的payload字段。随后,网络安全设备可根据payload字段,计算字符串距离,并利用字符串距离构建特征向量。最后,网络安全设备可利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道。
[0041] 需要说明的是,本申请实施例提供的ICMP隧道的检测方案还可以进一步拓展到其他合适的实施场景中,而不限于图1所示的应用场景。
[0042] 请参见图2,图2示出了本申请实施例提供的一种ICMP隧道的检测方法的流程图。如图2所示的检测方法包括:
[0043] 步骤S210,网络安全设备获取ICMP数据包。
[0044] 应理解,网络安全设备获取ICMP数据包的具体过程可根据实际需求来进行设置,本申请实施例并不局限于此。
[0045] 例如,网络安全设备可通过离线方式来获取ICMP数据包,从而网关设备可直接读取ICMP数据包。也就是说,本申请实施例中的ICMP隧道的检测方法可以不是实时检测的方案,其可以是一个离线检测方案。
[0046] 还应理解,ICMP数据包的具体数量可根据实际需求来进行设置,只要保证ICMP数据包的数量不少于第一设备和第二设备两次交互过程所对应的数据包的数量即可,即ICMP数据包至少要包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包,其中,第一响应数据包为与第一请求数据包对应的数据包(例如,在第一设备向第二设备发送第一请求数据包的情况下,第一响应数据包是第二设备根据第一请求数据包向第一设备回送的响应数据包),第二请求数据包为在第一响应数据包之后且与第一响应数据包相邻的数据包,第二响应数据包为与第二请求数据包对应的数据包,本申请实施例并不局限于此。
[0047] 例如,ICMP数据包可以包括第一设备和第二设备的十次交互过程所对应的数据包。
[0048] 这里需要说明的是,在第一设备和第二设备具有m次交互的情况下,第一请求数据包和第一响应数据包可以是与m‑1次中第n次交互过程所对应的数据包,对应地,第二请求数据包和第二响应数据包可以是第n+1次交互过程所对应的数据包。其中,m为大于等于2的正整数,n为大于等于1且小于等于m‑1的正整数。
[0049] 例如,在第一设备和第二设备具有10次交互的情况下,第一请求数据包和第一响应数据包可以是与第1次交互过程所对应的数据包,也可以是与第5次交互过程所对应的数据包,也可以是与第9次交互过程所对应的数据包。
[0050] 这里还需要说明的是,本申请实施例中的一次交互过程可以是指第一设备向第二设备发送一个请求数据包,以及第二设备向第一设备回送一个与该请求数据包对应的响应数据包。
[0051] 步骤S220,网络安全设备提取ICMP数据包中的有效载荷字段。
[0052] 具体地,在ICMP数据包的数量为多个的情况下,网络安全设备可提取多个ICMP数据包中每个ICMP数据包中的payload字段。
[0053] 步骤S230,网络安全设备根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量。
[0054] 应理解,字符串距离的获取方式可根据实际需求来进行设置,本申请实施例并不局限于此。
[0055] 可选地,请参见图3,图3示出了本申请实施例提供的一种第一设备和第二设备交互的示意图。如图3所示,第一设备先向第二设备发送一个数据类型为第8类型(即Type8)的请求数据包,第二设备回送一个数据类型为第0类型(即Type0)的响应数据包给第一设备。依次类推,则第一设备向第二设备发送的请求数据包和第二设备给第一设备回送的与该请求数据包对应的响应数据包可构成8‑0对,以及第一设备和第二设备的两次相邻交互过程中的请求数据包(或者说,第一设备给第二设备发送的连续两个的请求数据包)可构成8‑8对,以及第一设备和第二设备的两次相邻过程中的响应数据包(或者说,第二设备回送给第一设备的连续两个响应数据包)可构成0‑0对。
[0056] 此外,字符串距离可包括8‑0对对应的第一类字符串距离、8‑8对对应的第二类字符串距离和0‑0对对应的第三类字符串距离。
[0057] 也就是说,在ICMP数据包包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包,且第二请求数据包为在第一响应数据包之后与第一响应数据包相邻的数据包的情况下,第一类字符串距离是通过计算第一请求数据包中的payload字段和第一响应数据包中的payload字段之间的字符串距离确定的;第二类字符串距离是通过计算第一请求数据包中的payload字段和第二请求数据包中的payload字段之间的字符串距离确定的;第三类字符串距离是通过计算第一响应数据包中的payload字段和第二响应数据包中的payload字段之间的字符串距离确定的。
[0058] 这里需要说明的是,虽然ICMP数据包的类型有很多(例如,第3类型的数据包表示不可达等),但是只有Type8和Type0可形成一个匹配的状态。
[0059] 这里需要还说明的是,为了清楚地示出第一设备和第二设备的交互过程,图3中未示出网络安全设备。
[0060] 这里还需要说明的是,虽然图3仅示出了3次交互过程,但本领域的技术人员应当理解,第一设备和第二设备的交互次数也可根据实际需求来进行设置,本申请实施例并不局限于此。
[0061] 为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
[0062] 具体地,在ICMP数据包可包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包的情况下,网络安全设备可计算第一请求数据包中的payload字段和第一响应数据包中的payload字段之间的字符串距离a,以及网络安全设备还可计算第一请求数据包中的payload字段和第二请求数据包中的payload字段之间的字符串距离b,以及网络安全设备还可计算第一响应报文中的payload字段和第二响应数据包中的payload字段之间的字符串距离c。
[0063] 从而,对于第一设备和第二设备的两次交互过程,网络安全设备可利用字符串距离a、字符串距离b和字符串距离c构建一个特征向量[a,b,c]。
[0064] 对应地,在ICMP数据包还包括其他请求数据包和其他响应数据包的情况下,其可按照上述过程,依次求取对应的特征向量。
[0065] 为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
[0066] 可选地,继续参见图3,网络安全设备提取第一个8‑0对中两个数据包的payload字段,以及网络安全设备可计算第一个8‑0对中两个数据包的payload字段之间的字符串距离a1。
[0067] 以及,网络安全设备继续提取第二个8‑0对中两个数据包的payload字段。随后,网络安全设备可计算第一个8‑0对中第8类型的数据包的payload字段和第二个8‑0对中第8类型的数据包的payload字段之间的字符串距离b1,以及还可计算第一个8‑0对中第0类型的数据包的payload字段和第二个8‑0对中第0类型的数据包的payload字段之间的字符串距离c1。
[0068] 从而,对于前两个8‑0对来说,网络安全设备可利用三个字符串距离构建一个特征向量[a1,b1,c1]。
[0069] 以及,网络安全设备还可计算第二个8‑0对中第8类型的数据包的payload字段和第0类型的数据包的payload字段之间的字符串距离a2。以及,网络安全设备还可计算第二个8‑0对中第8类型的数据包的payload字段和第三个8‑0对中第8类型的数据包的payload字段之间的字符串距离b2。以及,网络安全设备还可计算第二个8‑0对中第0类型的数据包的payload字段和第三个8‑0对中第0类型的数据包的payload字段之间的字符串距离c2。
[0070] 从而,对于第二个8‑0对和第三个8‑0对来说,网络安全设备可利用三个字符串距离构建一个特征向量[a2,b2,c2]。
[0071] 以此类推,网络安全设备可对第三个8‑0对、第四个8‑0对和第五个8‑0对等采取上述类似的做法,以得到剩余的特征向量。
[0072] 步骤S240,网络安全设备利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道。
[0073] 应理解,检测模型的模型结构和训练过程等均可根据实际需求来进行设置,本申请实施例并不局限于此。
[0074] 可选地,获取多个特征向量样本,随后可利用多个特征向量样本构建用于训练检测模型的特征矩阵样本。以及,还可利用特征矩阵样本训练初始检测模型,以获得训练好的检测模型。其中,获取多个特征向量样本的过程与步骤S130的过程类似,在此不再详细描述,具体可参见步骤S130的相关描述。
[0075] 还应理解,利用多个特征向量样本构建特征矩阵样本的过程可根据实际需求来进行设置,本申请实施例并不局限于此。
[0076] 例如,在获取到第一特征向量样本、第二特征向量样本和第三特征向量样本的情况下,网络安全设备可将第一特征向量样本作为特征矩阵样本的最上端的行向量,以及将第二特征向量样本作为特征矩阵样本的中间行向量,以及将第三特征向量样本作为特征矩阵样本的最下端的行向量。其中,第一特征向量样本、第二特征向量样本和第三特征向量样本是按照第一设备和第二设备的交互顺序依次确定的。
[0077] 此外,训练好的检测模型的输出结果可为存在ICMP隧道的第一概率和不存在ICMP隧道的第二概率。从而后续网络安全设备可根据第一概率和第二概率的大小来确定是否存在ICMP隧道(例如,在第一概率大于第二概率且第一概率大于预设概率的情况下,网络安全设备确定存在ICMP隧道)。
[0078] 还应理解,确定是否存在ICMP隧道的具体过程可根据实际需求来进行设置,本申请实施例并不局限于此。
[0079] 可选地,在通过训练好的检测模型获得至少一个特征向量中每个特征向量的检测结果的情况下,只要在确定至少一个检测结果中包含有用于表示存在ICMP隧道的检测结果的情况下,则可直接确定存在ICMP隧道。
[0080] 例如,在获取到10个检测结果的情况下,通过查看10个检测结果确定其中一个检测结果是用于表示存在ICMP隧道的,则可直接确定存在ICMP隧道。
[0081] 可选地,在通过训练好的检测模型获得至少一个特征向量中每个特征向量的检测结果的情况下,可统计用于表示存在ICMP隧道的检测结果的第一总个数和用于表示不存在ICMP隧道的检测结果的第二总个数。以及,在第一总个数大于等于第二总个数的情况下,则可确定存在ICMP隧道;在第一总个数小于第二总个数的情况下,则可确定不存在ICMP隧道。
[0082] 例如,在获取到10个检测结果的情况下,通过查看10个检测结果确定6个检测结果是用于表示存在ICMP隧道的,则可确定存在ICMP隧道。
[0083] 这里需要说明的是,对于正常的ICMP数据包来说,一个请求数据包及其对应的响应数据包应该是相同的,而是对于异常的ICMP数据包来说,一个请求数据包及其对应的响应数据包是不一样的(例如,请求数据包很小,但响应数据包很大),从而本申请实施例可基于上述原理来检测ICMP隧道是否存在。
[0084] 因此,本申请实施例不需要提取ICMP数据包的预设特征,也不需要判断传输内容是否杂乱,而是直接提取ICMP数据包中的有效载荷字段,随后根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量,并利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道,从而实现了基于ICMP数据报文的隐蔽通道的检测,从而能够提高网络安全性。
[0085] 应理解,上述ICMP隧道的检测方法仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,该变形之后的方案也属于本申请的保护范围。
[0086] 请参见图4,图4示出了本申请实施例提供的一种ICMP隧道的检测装置400的结构框图,应理解,该检测装置400能够执行上述方法实施例中的各个步骤,该检测装置400具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该检测装置400包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在检测装置400的操作系统(operating system,OS)中的软件功能模块。具体地,该检测装置400包括:
[0087] 获取模块410,用于获取ICMP数据包;提取模块420,用于提取ICMP数据包中的有效载荷字段;计算构建模块430,用于根据有效载荷字段,计算字符串距离,并利用字符串距离构建特征向量;确定模块440,用于利用预先训练好的检测模型对特征向量进行检测,以确定是否存在ICMP隧道。
[0088] 在一个可能的实施例中,ICMP数据包包括第一请求数据包、第一响应数据包、第二请求数据包和第二响应数据包,且第二请求数据包为在第一响应数据包之后与第一响应数据包相邻的数据包;字符串距离包括第一类字符串距离、第二类字符串距离和第三类字符串距离,第一类字符串距离是通过计算第一请求数据包中的有效载荷字段和第一响应数据包中的有效载荷字段之间的字符串距离确定的,第二类字符串距离是通过计算第一请求数据包中的有效载荷字段和第二请求数据包中的有效载荷字段之间的字符串距离确定的,第三类字符串距离是通过计算第一响应数据包中的有效载荷字段和第二响应数据包中的有效载荷字段之间的字符串距离确定的。
[0089] 在一个可能的实施例中,检测装置400包括:训练模块(未示出),用于利用特征矩阵样本对初始检测模型进行训练,获得预先训练好的检测模型,其中,特征矩阵样本是由特征向量样本构建的。
[0090] 在一个可能的实施例中,获取模块410,具体用于通过离线方式获取ICMP数据包。
[0091] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0092] 图5示出了本申请实施例提供的一种电子设备500的结构框图。如图5所示,电子设备500可以包括处理器510、通信接口520、存储器530和至少一个通信总线540。其中,通信总线540用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口520用于与其他节点设备进行信令或数据的通信。处理器510可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器510也可以是任何常规的处理器等。
[0093] 存储器530可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read‑Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read‑Only Memory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read‑Only Memory,简称EEPROM)等。存储器530中存储有计算机可读取指令,当计算机可读取指令由处理器510执行时,电子设备500可以执行上述方法实施例中的各个步骤。
[0094] 电子设备500还可以包括存储控制器、输入输出单元、音频单元、显示单元。
[0095] 存储器530、存储控制器、处理器510、外设接口、输入输出单元、音频单元、显示单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线540实现电性连接。处理器510用于执行存储器530中存储的可执行模块,例如电子设备500包括的软件功能模块或计算机程序。
[0096] 输入输出单元用于提供给用户输入数据实现用户与服务器(或本地终端)的交互。输入输出单元可以是,但不限于,鼠标和键盘等。
[0097] 音频单元向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
[0098] 显示单元在电子设备与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
[0099] 可以理解,图5所示的结构仅为示意,电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
[0100] 本申请提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行实施例所述的方法。
[0101] 本申请还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
[0102] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0103] 需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0104] 本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0105] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0106] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0107] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0108] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。