生成网络白名单的方法和装置与流程

文档序号:12132402阅读:308来源:国知局
生成网络白名单的方法和装置与流程

本发明涉及信息技术领域,具体地,涉及一种生成网络白名单的方法和装置。



背景技术:

网络信息安全防护系统主要用于控制系统分层间的逻辑/物理隔离和安全防护上,控制系统一般分为现场层,监督控制层,和运营管理层。在现场层和监督控制层中,控制系统上可能会运行通用的实时/或非实时数据库、特殊工业控制系统的一种或几种单一协议,但在监督控制层之上,监督控制层和运营管理层之间,以及监督控制层之外,会运行各种办公,工业控制等定制和/或公开的协议。因此需要针对各种协议进行网络完全控制。现有技术中根据预先配置的条件生成网络白名单来控制网络中会话,但是该方法依赖人工配置进行,使得网络安全控制方式不够灵活而且效率较低。



技术实现要素:

本发明的目的是提供生成网络白名单的方法和装置,以解决上述技术问题,或者至少部分地解决上述技术问题。

为了实现上述目的,本发明提供一种生成网络白名单的方法,该方法包括:抓取网络中通过网络安全设备的数据包,所述数据包中携带地址、端口和应用层协议类型;根据所述数据包携带的应用层协议类型判断所述数据包相关联的会话是否具有子会话;当确定所述会话具有子会话时,为所述子会话创建动态端口范围;存储所述会话相应的传输层协议类型、地址和相关联的端口,所述相关联的端口包括用于所述会话的端口和用于所述会话的子会话的动态端口范围;利用所存储的会话相应的传输层协议类型、地址和相关联的端口生成网络白名单。

可选地,所述方法还包括:当确定所述会话不具有子会话时,直接存储所述会话相应的传输层协议类型、地址和相关联的端口,所述相关联的端口包括用于所述会话的端口。

可选地,所述存储所述会话相应的传输层协议类型、地址和相关联的端口包括:采用树状结构以传输层协议类型为根节点,分别以地址和相关联的端口为各级子节点进行存储。

可选地,所述存储所述会话相应的传输层协议类型、地址和相关联的端口包括:判断所述树状结构中兄弟节点中的地址或相关联的端口是否连续;当兄弟节点中的地址或相关联的端口连续时,将所述兄弟节点合并为存储地址或相关联的端口的连续范围的单一节点。

可选地,所述存储所述会话相应的传输层协议类型、地址和相关联的端口包括:判断树状结构中各级节点中是否存在存储相同地址或相关联的端口的节点;如果存在存储相同地址或相关联的端口的节点,则将存储相同地址或相关联的端口的节点合并为单一节点。

可选地,所述利用所存储的会话相应的传输层协议类型、地址和相关联的端口生成网络白名单包括:对于所述树状结构中从根节点到叶子节点的各条链路,从链路的节点中提取存储的传输层协议类型、地址和相关联的端口来组成信息条目;从所述信息条目中提取传输层协议类型、地址和相关联的端口填入白名单语句模板中生成网络白名单。

可选地,所述方法还包括:当数据包相关联的会话为子会话时,从所创建的动态端口范围中选择分配给所述子会话的端口;记录所述子会话相应的地址和端口以对所述子会话进行跟踪;在所述子会话结束时,释放分配给所述子会话的端口。

根据本发明的另一方面,提供了一种生成网络白名单的装置,该装置包括:抓取模块,用于抓取网络中通过网络安全设备的数据包,所述数据包中携带地址、端口和应用层协议类型;处理模块,用于根据所述数据包携带的应用层协议类型判断所述数据包相关联的会话是否具有子会话,当确定所述会话具有子会话时,为所述子会话创建动态端口范围,指示存储模块进行存储;所述存储模块用于存储所述会话相应的传输层协议类型、地址和相关联的端口,所述相关联的端口包括用于所述会话的端口和用于所述会话的子会话的动态端口范围;生成模块,用于利用所存储的会话相应的传输层协议类型、地址和相关联的端口生成网络白名单。

可选地,所述处理模块还用于当确定所述会话不具有子会话时,直接指示所述存储模块存储所述会话相应的传输层协议类型、地址和相关联的端口,所述相关联的端口包括用于所述会话的端口。

可选地,所述存储模块用于采用树状结构以传输层协议类型为根节点,分别以地址和相关联的端口为各级子节点进行存储。

可选地,所述存储模块用于判断所述树状结构中兄弟节点中的地址或相关联的端口是否连续;当兄弟节点中的地址或相关联的端口连续时,将所述兄弟节点合并为存储地址或相关联的端口的连续范围的单一节点。

可选地,所述存储模块用于判断树状结构中各级节点中是否存在存储相同地址或相关联的端口的节点;如果存在存储相同地址或相关联的端口的节点,将存储相同地址或相关联的端口的节点合并为单一节点。

可选地,所述生成模块用于对于所述树状结构中从根节点到叶子节点的各条链路,从链路的节点中提取存储的传输层协议类型、地址和相关联的端口来组成信息条目;从所述信息条目中提取传输层协议类型、地址和相关联的端口填入白名单语句模板中生成网络白名单。

可选地,所述处理模块还用于当数据包相关联的会话为子会话时,从所创建的动态端口范围中选择分配给所述子会话的端口;记录所述子会话相应的地址和端口以对所述子会话进行跟踪;在所述子会话结束时,释放分配给所述子会话的端口。

通过上述技术方案,抓取网络中通过网络安全设备的数据包;根据数据包携带的应用层协议类型判断所述数据包相关联的会话是否具有子会话;当确定会话具有子会话时,为子会话创建动态端口范围;存储会话相应的传输层协议类型、地址和相关联的端口,相关联的端口包括用于所述会话的端口和用于所述会话的子会话的动态端口范围;利用所存储的会话相应的传输层协议类型、地址和相关联的端口生成网络白名单;该方法自动收集通过网络安全设备的数据包,自动生成白名单,减少了网络安全控制的复杂性,并且无需操作人员了解现场实施的数据流细节,节省了实施成本并提高了实施效率。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是根据本发明实施方式的生成网络白名单的方法的流程图;

图2是根据本发明实施方式的存储会话的相关信息的树状结构的示意图;

图3是根据本发明实施方式的处理子会话的过程的流程图;以及

图4是根据本发明实施方式的生成网络白名单的装置的结构图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是根据本发明实施方式的生成网络白名单的方法的流程图,该方法可用于各种设备,例如网络防火墙、服务器等。如图1所示,该方法可包括如下步骤。

在步骤S110中,抓取网络中通过网络安全设备的数据包。

数据包中可携带地址、端口和应用层协议类型,例如携带源IP地址、目的IP地址、源端口号、目的端口号和应用层协议类型。

举例而言,设备可以对网络中数据流进行侦听,收集经过网络安全设备的数据包。该数据包已经被网络安全设备放行,说明该数据包相关联的会话为可靠的会话,因而可以将该数据包相关联的会话记入白名单。

在步骤S120中,根据数据包携带的应用层协议类型判断数据包相关联的会话是否具有子会话。

举例而言,可以维护会话表,在会话表中记录会话的五元组,即传输层协议类型、源IP地址、目的IP地址、源端口、目的端口。接收到数据包后,在会话中查找数据包相关联的会话,如果没有查找到,则在会话表中创建数据包的相应会话,并记录下会话的五元组。

根据解析出的数据包携带的应用层类型判断数据包相关联的会话在后续过程中是否会具有子会话。例如,http协议的会话不会具有子会话,ftp协议的会话可能会具有子会话。举例而言,存储应用层协议类型与是否具有子会话的对应关系,当应用层协议类型具有子会话时,对应标志位为1,当应用层协议类型不具有子会话时,对应标志位为0。在抓取到数据包从中获得应用层类型后,在对应关系中查找应用层协议类型,当查找到的对应标志位为1时,确定具有子会话,当查找到的对应标志位为0时,确定不具有子会话。

在步骤S130中,当确定会话具有子会话时,为子会话创建动态端口范围。

举例而言,当确定会话后续具有子会话时,创建动态端口范围来为该会话的后续子会话使用。

在步骤S140中,存储会话相应的传输层协议类型、地址和相关联的端口。

其中,相关联的端口包括用于会话的端口和用于会话的子会话的动态端口范围。

举例而言,对会话的相关信息进行存储,该会话的相关信息中可包括所创建的动态端口范围,会话的传输层协议类型,例如TCP、UDP、SCTP等,以及源IP地址、目的IP地址、源端口和目的端口。所创建的动态端口范围中端口可作为子会话的服务器端口使用,例如在从客户端到服务器的会话中,服务器端口为目的端口,即动态端口范围中端口可作为目的端口,在从服务器到客户端的会话中,服务器端口为源端口,即动态端口范围中端口可作为源端口。

在一实施例中,所述方法还可包括当确定会话不具有子会话时,直接存储会话相应的传输层协议类型、地址和相关联的端口。

相关联的端口包括用于会话的端口。

举例而言,对于从客户端到服务器的http协议会话,确定该会话不具有子会话,可以存储该会话的传输层协议类型、源IP地址(即客户端IP地址)、目的IP地址(即服务器IP地址)、源端口(即客户端端口)、目的端口(即服务器端口)。

在一实施例中,所述存储所述会话相应的传输层协议类型、地址和相关联的端口可包括:采用树状结构以传输层协议类型为根节点,分别以地址和相关联的端口为各级子节点进行存储。

如图2所示,采用树状结构对用于生成白名单的信息进行存储。在树状结构中以传输层协议为根节点,以“到服务器”和“到客户端”两个节点为二层节点,即区分从服务器到客户端的会话和从客户端到服务器的会话,以源IP地址为三层节点,以目的IP地址为四层节点,以源端口为五层节点,以目的端口为六层节点。

在树状结构中存储抓取的通过网络安全设备的数据包所关联的具有子会话和不具有子会话的会话相关信息,但不存储子会话的相关信息。对于具有子会话的会话,如果会话从客户端到服务器,则在“到服务器”节点分支上的会话对应的目的端口节点中存储用于子会话的动态地址范围;如果会话从服务器到客户端,则在“到客户端”节点分支上的会话对应的源端口节点中存储用于子会话的动态地址范围。

在一实施例中,所述存储会话相应的传输层协议类型、地址和相关联的端口可包括:判断树状结构中兄弟节点中的地址或相关联的端口是否连续;当兄弟节点中的地址或相关联的端口连续时,将所述兄弟节点合并为存储地址或相关联的端口的连续范围的单一节点。

其中,合并后的单一节点可以以之前各个兄弟节点的子节点为子节点,或者对于合并后的源IP地址节点或目的IP地址节点所在分支上的源端口节点或目的端口节点中端口简化为任意端口。举例而言,三个兄弟源IP地址节点中分别存储有源IP地址192.168.1.1、192.168.1.2、192.168.1.3,将上述三个源IP地址节点存储为一个IP地址节点192.168.1.1-192.168.1.3。

如此,可以减少节点遍历的复杂度,并减少白名单的生成条目。

例如,将如下所示的白名单条目进行合并。

pass udp 192.168.1.2 2569->192.168.1.1/32 1024(tid:598826;)

pass udp 192.168.1.3 43569->192.168.1.1/32 1024(tid:598827;)

pass udp 192.168.1.4 43343->192.168.1.1/32 1024(tid:598828;)

pass udp 192.168.1.5 12573->192.168.1.1/32 1024(tid:598829;)

pass udp 192.168.1.6 12573->192.168.1.1/32 1024(tid:598810;)

pass udp 192.168.1.7 13982->192.168.1.1/32 1024(tid:598811;)

pass udp 192.168.1.8 25573->192.168.1.1/32 1024(tid:598812;)

合并后生成的白名单为pass udp 192.168.1.2-192.168.1.8any->192.168.1.1/32 1024(sid:598846;rev:1;)。

其中,pass表示允许通过,192.168.1.2-192.168.8为源IP地址,192.168.1.1/32为目的IP地址,any表示源端口为任意端口,1024为目的端口,tid为条目标识ID,sid为合并后的标识ID。

在一实施例中,所述存储会话相应的传输层协议类型、地址和相关联的端口可包括:判断树状结构中各级节点中是否存在存储相同地址或相关联的端口的节点;如果存在存储相同地址或相关联的端口的节点,则将存储相同地址或相关联的端口的节点合并为单一节点。

除了对树状结构中节点做合并处理外,还可以对树状结构中节点做去重处理,将同一层的相同节点合并为单一节点,合并后的单一节点可以以合并前各个节点的子节点为子节点,或者对于合并后的源IP地址节点或目的IP地址节点所在分支上的源端口节点或目的端口节点中端口简化为任意端口。

通过去重操作,可以减少信息的存储空间,并提高遍历速度。

在一实施例中,如图3所示,所述方法还可包括如下步骤。

在步骤S302中,当数据包相关联的会话为子会话时,从所创建的动态端口范围中选择分配给子会话的端口。

在步骤S304中,记录该子会话的相应的地址和端口以对当前会话进行跟踪。

在步骤S306中,在子会话结束时,释放分配给该子会话的端口。

举例而言,当抓取的数据包相关联的会话为子会话时,从其父会话的动态端口中选择未被使用的端口分配给该子会话,在会话表中记录该子会话的五元组,并将该会话的属性标记为需要销毁,该子会话的记录不用于生成白名单,而用于跟踪子会话,并且在该子会话结束时,收回分配该该子会话的端口,并将会话表中记录的子会话的相关信息删除。

在步骤S150中,利用所存储的会话相应的传输层协议类型、地址和相关联的端口生成网络白名单。

在一实施例中,所述利用所存储的会话相应的传输层协议类型、地址和相关联的端口生成网络白名单可包括:对于树状结构中从根节点到叶子节点的各条链路,从链路的节点中提取存储的传输层协议类型、地址和相关联的端口来组成信息条目;从信息条目中提取传输层协议类型、地址和相关联的端口填入白名单语句模板中生成网络白名单。

其中,白名单语句模板为配置的语句模板,例如针对“到服务器”的会话配置对应的语句模板,针对“到客户端”的会话配置对应的语句模板。

举例而言,在如图2所示的树状结构中在从根节点到叶子节点的一条链路为一信息条目,从该信息条目中确定该条目是针对“到客户端”的会话还是针对“到服务器”的会话。如果是针对“到服务器”的会话,调用对应白名单语句模板,例如“从客户端A端口B到C服务器D端口E”,如果是针对“到客户端”的会话,调用对应白名单语句模板,例如“从C服务器A端口B到客户端D端口E”,其中,A表示源IP地址,B表示源端口,C表示传输层协议,D表示目的IP地址,E表示目的端口。A–E的信息可从信息条目中获得。

例如,对于信息条目pass udp toserver 192.168.1.2-192.168.1.8any->192.168.1.1/32 1024可生成白名单条目“从客户端192.168.1.2-192.168.1.8端口任意一个到UDP服务器192.168.1.1/32端口1024”。

通过上述实施例能够生成便于用户查看的白名单,增强了用户的可读性,便于用户使用。

通过上述技术方案,能够自动收集通过网络安全设备的数据包,自动生成白名单,减少了网络安全控制的复杂性,并且无需操作人员了解现场实施的数据流细节,节省了实施成本并提高了实施效率。

图4是根据本发明实施方式的生成网络白名单的装置的结构图,该装置可用于各种设备,例如网络防火墙、服务器等。如图4所示,该装置可包括如下模块。

抓取模块410,用于抓取网络中通过网络安全设备的数据包。

数据包中携带地址、端口和应用层协议类型。

处理模块420,用于根据数据包携带的应用层协议类型判断所述数据包相关联的会话是否具有子会话,当确定所述会话具有子会话时,为所述子会话创建动态端口范围,指示存储模块430进行存储。

存储模块430用于存储所述会话相应的传输层协议类型、地址和相关联的端口。

其中,相关联的端口包括用于会话的端口和用于会话的子会话的动态端口范围。

生成模块440,用于利用所存储的会话相应的传输层协议类型、地址和相关联的端口生成网络白名单。

在一实施例中,处理模块420还用于当确定所述会话不具有子会话时,直接指示存储模块430存储所述会话相应的传输层协议类型、地址和相关联的端口,相关联的端口包括用于会话的端口。

在一实施例中,存储模块430用于采用树状结构以传输层协议类型为根节点,分别以地址和相关联的端口为各级子节点进行存储。

进一步地,存储模块430用于判断树状结构中兄弟节点中的地址或相关联的端口是否连续;当兄弟节点中的地址或相关联的端口连续时,将所述兄弟节点合并为存储地址或相关联的端口的连续范围的单一节点。

进一步地,存储模块430用于判断树状结构中各级节点中是否存在存储相同地址或相关联的端口的节点;如果存在存储相同地址或相关联的端口的节点,将存储相同地址或相关联的端口的的节点合并为单一节点。

在一实施例中,生成模块440用于对于树状结构中从根节点到叶子节点的各条链路,从链路的节点中提取存储的传输层协议类型、地址和相关联的端口来组成信息条目;从信息条目中提取传输层协议类型、地址和相关联的端口填入白名单语句模板中生成网络白名单。

在一实施例中,处理模块420还用于当数据包相关联的会话为子会话时,从所创建的动态端口范围中选择分配给所述子会话的端口;记录所述子会话相应的地址和端口以对所述子会话进行跟踪;在所述子会话结束时,释放分配给所述子会话的端口。

上述装置与前述方法相对应,其具体实施方式可参见前述方法中详细描述,在此不再赘述。

通过上述技术方案,能够自动收集通过网络安全设备的数据包,自动生成白名单,减少了网络安全控制的复杂性,并且无需操作人员了解现场实施的数据流细节,节省了实施成本并提高了实施效率。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

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