首页> 中国专利> 一种基于十字链表的工业防火墙规则库分析方法

一种基于十字链表的工业防火墙规则库分析方法

摘要

本发明属于工业防火墙网络安全领域,涉及一种基于十字链表的工业防火墙规则库分析方法,现有技术都是从规则来解析包,在规则差异极大的情况下,无法避免对包的反复解析提取指定内容的操作。本发明将工业控制网络规则集以十字链表结构构建,规则组成横轴,规则判断条件组成纵轴,同一类节点进行合并,减少需要处理的节点,根据十字链表中规则协议情况动态调用数据包深度分析引擎,十字链表分析过程中通过已分析节点情况,动态排除不需要处理节点。本发明通过采用十字链表的组织形式将协议,内容,规则有机组合,达到一次解析数据包,遍历工业防火墙全部规则的目的,很好的提高了工业防火墙数据包处理能力,提高了工业控制网络中数据包规则库分析速度,达到了工业控制网络对数据包低延迟要求的目的。

著录项

  • 公开/公告号CN104717088A

    专利类型发明专利

  • 公开/公告日2015-06-17

    原文格式PDF

  • 申请/专利权人 北京中科网威信息技术有限公司;

    申请/专利号CN201310690270.5

  • 发明设计人 刘兵;郑铁峰;

    申请日2013-12-17

  • 分类号H04L12/24(20060101);H04L29/06(20060101);G06F17/30(20060101);

  • 代理机构

  • 代理人

  • 地址 100094 北京市海淀区西北旺东路10号院15号楼C座2层

  • 入库时间 2023-12-18 09:33:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-23

    专利权的转移 IPC(主分类):H04L12/24 登记生效日:20181102 变更前: 变更后: 申请日:20131217

    专利申请权、专利权的转移

  • 2018-01-16

    授权

    授权

  • 2015-07-15

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20131217

    实质审查的生效

  • 2015-06-17

    公开

    公开

  • 2014-03-05

    文件的公告送达 IPC(主分类):H04L12/24 收件人:北京中科网威信息技术有限公司 文件名称:补正通知书 申请日:20131217

    文件的公告送达

说明书

技术领域

本发明属于工业防火墙网络安全领域,具体地说,涉及一种基于十字链表的 工业防火墙规则库分析方法。

背景技术

工业防火墙在部署到工业控制网络后,保护工业控制网络环境安全。被保护 的环境包括环境中特定的资产,也包括资产之间的关系。资产之间的关系往往通 过资产间交互的数据流体现。

管理员明确定义资产间数据流的关系来保证资产间正常的交流被允许。例 如:工控网中炼油测温系统定期获取某高压阀门当前压力值。

管理员明确定义资产间某种数据流关系为异常情况被阻断。例如:工控网中 炼油测温系统给系统中控压力检测仪发送重置命令。

管理员定义的全部针对资产数据流允许或阻断,形成了工业防火墙的规则 库。工业防火墙通过针对特定工业控制网络环境的规则库,来进行特定工业控制 网络环境安全管控。

在工业控制网络被保护环境中通过工业防火墙的每一个数据包都会被工业 防火墙处理,通过或阻断。

工业控制网络中有很多关键业务对实时性要求高,反应速度要求在秒、毫秒 级。

一个复杂的工业控制网络环境中,规则条数大于8千条。而数据包工业协议 种类丰富,涉及格式、识别内容更是千差万别。如何提高规则匹配速度,在不降 低工业防火墙安全能力的前提下提高处理性能,是工业防火墙迫切需要处理的问 题。

数据包过滤(Packet Filtering)是指在网络层对数据包进行分析、选择。通 过检查数据流中每一个数据包的源IP地址、目的IP地址、源端口号、目的端口 号、协议类型等因素或它们的组合来确定是否允许该数据包通过。

状态检测包过滤是传统包过滤上的功能扩展。状态检测防火墙在网络层有一 个检查引擎截获数据包并抽取出与应用层状态有关的信息,并以此为依据决定对 该连接是接受还是拒绝。

深度包检测技术即DPI技术是一种基于应用层的流量检测和控制技术,当 IP数据包、TCP或UDP数据流通过基于DPI技术的带宽管理系统时,该系统通 过深入读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而 得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。

现有技术主要有三种,其各自有显著的优点,但缺点也很严重。

第一种如图1所示,为不对规则进行处理的技术,针对每一条规则进行一次 数据包解析,直到匹配某条规则,则处理结束。每一条规则都是一个包解析过滤 器。采用此方法程序结构清晰,逻辑简单。针对每条规则要求进行包解析,完成 规则匹配判断,整体过程效率低。

第二种如图2所示,为根据协议类型对规则进行一定整理技术。根据协议类 型,对规则集进行一定整理,针对每组规则处理数据包,直到匹配某条规则,则 处理结束。规则组一般采用链表组织结构,通常根据协议类型形成一些数组式规 则数据结构,当解析到数据包的某一层时处理对应协议的规则组。采用此技术能 减少一定的包解析次数,但对于应用多样的深度内容分析则同样需要反复多次进 行包解析,整体过程效率有一定提高。

第三种为根据协议类型对规则进行一定整理的技术。通常根据协议类型形成 一些数组式规则数据结构,当解析到数据包的某一层时处理对应协议的规则组。 采用此技术能减少一定的包解析次数,但对于应用多样的深度内容分析则同样需 要反复多次进行包解析,整体过程效率有一定提高。

现有的各种技术,都是从规则来解析包。在规则差异极大的情况下,无法避 免对包的反复解析提取指定内容的操作。

发明内容

为解决背景技术中的问题,本发明提出了一种具体的应用在工业控制网络中 规则库分析方法,通过采用十字链表的组织形式将协议,内容,规则有机组合, 达到一次解析数据包,遍历工业防火墙全部规则的目的,很好的提高了工业防火 墙数据包处理能力,提高了工业控制网络中数据包规则库分析速度,达到了工业 控制网络对数据包低延迟要求的目的。

本发明的技术方案为:

一种基于十字链表的工业防火墙规则库分析方法,其特征在于:其步骤如下:

步骤一:在工业控制网络环境下,系统管理员对网络环境进行安全分析后,确定 安全规则集,安全规则集由具体规则0~规则N组成,N为大于1的正整数,对 每条规则进行定义,其中规则N为缺省会加的末条规则,定义为阻断数据包并 上报;

步骤二:系统根据系统管理员输入的安全规则集生成对应的十字链表;

步骤三:系统对十字链表进行归并操作,将相同内容进行归一,归并后,数据结 构仍然是一个十字链表;

步骤四:根据十字链表的行索引数据,确定此安全规则集下需要从数据包中提取 的数据集;

步骤五:依次检查十字链表各列节点,根据协议提取数据集内容判断节点匹配 情况;

步骤六:取各节点匹配规则集的交集,确定是否有匹配规则,及匹配的规则号; 如果有且只有一条匹配规则,则数据包按照该规则定义执行,如果匹配规则多于 一条,则数据包按照第一条匹配规则定义执行,并报告管理员;如果无匹配规则, 则执行规则N,即阻断数据包并上报。

在进一步改进的方案中,N=8,十字链表为9行7列,9行对应8条规则及 行头,7列对应6种字段及列头,该6种字段分别为:协议、服务器IP地址、 客户端IP地址、网址、网页内容、工控协议内容。

工控协议指工控网络中设备间消息传递协议。通过工控协议,上位机完成对 工控网络测量仪表等设备的操作。工控协议内容指工控协议中包含的具体指令性 内容。一般包含:功能码+内容+CRC校验码例如:功能码:写操作内容:1 号寄存器。或者功能码:读操作内容:1号寄存器。

本发明的创新之处在于:

1、将工业控制网络规则集,以十字链表结构构建。

2、规则组成横轴,规则判断条件组成纵轴。

3、同一类节点进行合并,减少需要处理的节点。

4、根据十字链表中规则协议情况动态调用数据包深度分析引擎。

5、十字链表分析过程中通过已分析节点情况,动态排除不需要处理节点。

本发明的有益效果为:

本发明通过十字链表的方式组合规则库里的规则。在保留规则(行)形式的 前提下,进行各规则条件(列)的分析,获取规则集中各规则的关系,形成规则 集十字链表。通过规则集十字链表能一次解析数据包完成规则库分析。减少了数 据包反复解析过程。特别是规则库中包含大量需要深度分析规则时,效率提升效 果更加显著。

通过十字链表的规则灵活组合形式,提高了规则库数据包分析过程的时间, 空间利用率。

规则十字链表理顺了规则条件之间的依赖,互斥,包含,相等关系,在十字 链表节点分析过程中,可以动态去除依赖,互斥关系节点,简单判断包含关系节 点,合并相同关系节点,达到了减少规则库分析节点,提高分析效率的目的。

采用本发明技术极大的提高了工业控制网络中数据包规则库分析速度,满足 工业控制网络对数据包低延迟要求的目的。

附图说明

图1为现有技术中不对规则进行处理的技术的流程图。

图2为现有技术中根据协议类型对规则进行一定整理技术的流程图。

图3为本发明整体技术方案的流程图。

图4为本发明方案中步骤二的具体流程图。

图5为本发明方案中步骤三的具体流程图。

图6为本发明方案中步骤四的具体流程图。

图7为本发明方案中步骤五中对根据获取的内容处理规则十字链表的流程 图。

具体实施方式

图3描述了本发明的整体技术方案。

一种基于十字链表的工业防火墙规则库分析方法,步骤如下:

步骤一:在工业控制网络环境下,系统管理员对网络环境进行安全分析后,确定 安全规则集,安全规则集由具体规则0~规则N组成,N为大于1的正整数,对 每条规则进行定义,其中规则N为缺省会加的末条规则,定义为阻断数据包并 上报;

步骤二:系统根据系统管理员输入的安全规则集生成对应的十字链表;

步骤三:系统对十字链表进行归并操作,将相同内容进行归一,归并后,数据结 构仍然是一个十字链表;

步骤四:根据十字链表的行索引数据,确定此安全规则集下需要从数据包中提取 的数据集;

步骤五:依次检查十字链表各列节点,根据协议提取数据集内容判断节点匹配 情况;

步骤六:取各节点匹配规则集的交集,确定是否有匹配规则,及匹配的规则号; 如果有且只有一条匹配规则,则数据包按照该规则定义执行,如果匹配规则多余 一条,则数据包按照第一条匹配规则定义执行,并报告管理员;如果无匹配规则, 则执行规则N,即阻断数据包并上报。

下面结合图4-7具体来阐述本发明的技术方案。

第一步:在工业控制网络环境下,系统管理员对网络环境进行安全分析后, 确定了具体安全规则:

规则0:分析数据包

命令参数:--analyze

说明:这是缺省加入的规则,在所有其它过滤规则之前。

规则1:允许统计部门防问历史数据管理服务器(假定为192.168.100.22,以 http形式访问)

--filter http--where:server-ip:192.168.100.22;client-ip:@统计部门-j ACCEPT_LOG

--filter http--where:server-ip:192.168.100.22-j DROP_LOG

说明:″@统计部门″为一个IP地址组,可包含一个或多个IP或IP范围, 命令配置如:“--add ip.统计部门:192.168.1.0/24,192.168.2.0/24”

规则2:不允许访问禁止网站,或允许网站中不应出现禁止词,而放过其它 所有http(网页访问,允许员工查资料等)

命令参数:

--filter http--where:url:@禁止网站;client-ip:@全公司-j DROP_LOG

--filter http--where:content:@禁止词;client-ip:@全公司-j DROP_LOG

--filter http--where:client-ip:@全公司-j ACCEPT_LOG

规则3:监控工控协议,只允许生产部门发出操作动作,监督部门和管理部门 可以查看(不能操作),其余部门则完全不允许访问:

命令参数:

--filter工控协议--where:工控命令:@操作;client-ip:@生产部门-j  ACCEPT_LOG

--filter工控协议--where:工控命令:@查看;client-ip:@监督部门,@管理 部门-j ACCEPT_LOG

--filter工控协议-j DROP_LOG

规则N:其余所有数据包,阻断并log上报

命令参数:

-j DROP_LOG

说明:这是缺省会加的末条规则。

注:@动作:代表动作集合。

第二步:如图4所示,系统根据管理员输入的规则集生成对应的十字链表:

十字链表为9行7列。

9行对应8条规则及行头,

7列对应6种字段及列头:(1)协议(2)服务器IP地址(3)客户端IP地址(4)网 址(5)网页内容(6)工控协议内容

第三步:如图5所示,系统对十字链表进行归并操作,将相同内容进行归一。 归并后,数据结构仍然是一个十字链表。

服务器IP地址合并成为一条192.168.100.22,同时记录节点匹配对应的规则1,2; 客户端IP地址合并成为一条,同时记录不同的匹配结果对应的规则;

工控协议 合并为一条,同时记录不同的匹配结果对应的规则;

协议 合并成两条,同时记录不同的匹配结果对应的规则;

第四步:如图6所示,根据十字链表行索引数据,确定此规则集下需要从数 据包中提取的数据集。

通过一次解析数据包,获取对应的内容。数据解析过程是标准的数据包 ISO/OSI去封装过程。根据数据包属于的协议不同,解析后形成的数据集的内容 会有差异。

结合HTTP数据包解析过程解释如下:

从管理部门访问资料网站操作中获得一个数据包。此包为HTTP协议,服务 器IP地址为192.168.100.56,客户端IP地址为@管理部门组,网址不在@禁止 网站中,网页内容不在@禁止词中。

第五步:如图7所示,依次检查十字链表各列节点,根据协议提取数据集内 容判断节点匹配情况。

第一列需要分析协议,这里只出现了“http”和“工控协议”两种协议,于是将 只启用这两种协议分析模块做深度监测,而不会启用其它协议的分析。

监测到本客户端IP不属于@生产部门,则规则6在第三列(client-ip)处就 被否定,于是在“工控协议”这一列上,就只需要判断“@查看”动作,而不需要判 断“@操作”动作。而传统分析引擎中,处理规则6和7时,每次处理都需要详细 解析工控协议,从中提取操作动作,再分别比较是否“操作”和是否“查看”。减少 了不必要的重复的深度数据包检测动作。

根据获取的内容处理规则十字链表如图7所示。

根据处理十字链表节点匹配结果,遍历规则列,各节点匹配规则集如下:

规则12345

规则345678

规则345728

规则1245678

规则1235678

规则123458

第六步:取各节点匹配规则集的交集,确定是否有匹配规则,及匹配的规则号。 规则5->各节点全匹配。则此条HTTP数据包按照规则5定义的允许数据流通 过操作。

在具体方案实现中可以不合并十字链表节点。而是抽取十字链表中节点信 息,再形成一个链表结构保存抽取后的信息。后续规则库分析过程针对信息链表, 处理方式同上述技术方案,规则匹配结果放入十字链表中保存。判断规则是否匹 配,需要根据十字链表的纵向索引,判断每一行是否有不匹配。

上述方法是本发明技术的一个变化,处理基础仍然是十字链表。只是不在十 字链表中保存规则条件信息,使用其它的某种数据结构保存规则条件信息。如: 数组,集合,链表等。

以上实施方法仅用以说明本发明的技术方案,而非对其限制;本领域的专业 技术人员能够根据前述的技术方案进行修改,或者对其中部分技术特征进行等同 替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明技术方案的 精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号