一种基于规则树的工控网络白名单异常检测方法技术

技术编号:23514867 阅读:34 留言:0更新日期:2020-03-18 01:24
本发明专利技术提出一种基于规则树的工控网络白名单异常检测方法,首先建立白名单规则集,所述白名单规则集为记录正常模式下报文深度解析值,所述正常模式下报文深度解析值为正常模式下每一条网络流中包含的工控协议、动作、操作地址、操作数值,然后进行异常检测,报文深度解析值在白名单规则集中无法匹配的为异常数据。

An anomaly detection method of white list in industrial control network based on rule tree

【技术实现步骤摘要】
一种基于规则树的工控网络白名单异常检测方法
本专利技术涉及一种异常检测方法,尤其涉及一种基于规则树的工控网络白名单异常检测方法。
技术介绍
工业控制系统网络化过程中,系统中原有设备的传统网络安全问题逐渐被暴露,简单的物理隔离在万物互联、“互联网+”的时代背景下已不再具有可行性,而与此同时工业控制系统的安全风险及入侵威胁也在不断增加。从外部网络环境观察,工业控制系统多基于TCP/IP协议进行通信,普通的网络攻击也同样能够作用于工业控制系统,而工控网络采用的专有应用层协议往往使用明文传输,缺乏必要的认证、加密机制,导致攻击者更容易获取系统内部环境信息,更易发起攻击;从内部系统结构观察,工业控制系统的开发不同与传统网络信息系统,其缺少通用的开发规范和安全测试流程,而由于运行平台、版本等限制原因,相关系统安全补丁升级周期过长,系统及协议存在的大量固有缺陷及漏洞等容易被攻击者利用,进而会造成破坏性操作。内外均存在众多安全漏洞,使得工业控制系统面临着前所未有的安全挑战。现有技术中,工业控制系统网络流量的高度周期性、循环性使得合法通信处在一个有限集合中,而此场景下黑名单通常具有无穷性,无法覆盖全部合法网络通信,规模庞大且需要不断更新。
技术实现思路
本专利技术提出一种基于规则树的工控网络白名单异常检测方法。本专利技术针对工业控制系统,基于工控协议深度解析及高性能规则树,构建一个相对规模较小的白名单规则集,进行匹配检测,检测包括恶意注入、人员误操作等各类异常,以达到比黑名单更高的检测准确率、更高效的匹配速率、及更小的存储空间等。附图说明图1为白名单数据结构图;图2为本专利技术白名单匹配流程图图3为白名单模糊匹配流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。工业控制网络具有高度周期性、循环性的特点,即使大型工控环境具有较大的网络流量,网络中每一条网络流(HMI-PLC,PLC-PLC)也都由于该设备在生产流程中的固定动作,而具有相对固定的一组询问、控制请求报文。白名单通过记录正常模式下,每一条网络流中包含的工控协议、动作、操作地址、操作数值等报文深度解析值,刻画正常工控网络环境中可能出现、被允许出现的白名单规则集。异常检测过程中,凡是报文深度解析值在白名单规则集中无法匹配的,即视为异常,并根据匹配程度,可以为异常划分等级。为满足工业控制系统实时性的要求,以及专家、用户自定义不同层次白名单的需求,本专利技术设计了一种基于二进制位存储的规则树数据结构,以减少规则的存储空间,并支持快速的精确、模糊规则匹配。图1为白名单数据结构示意图,规则树从根至叶分为5层,以下将逐层介绍其数据结构及功能:(1)规则树层规则树层是数据结构最高层,在系统实现中,白名单匹配与用户定义的审计规则匹配具有相同的匹配逻辑,因此也可复用该数据结构,规则树层用于区分该规则树的使用场景。(2)协议层在规则树中,对每种工控协议,构建一棵子树,其可在规则匹配时缩减匹配范围。在协议层,将存储非离散型规则信息,如操作数值数组(集合、区间等)、规则有效位数组(表示规则是否有效,在申请空间后暂未有规则填充,或规则被删除后,规则无效)、JSON缓存数组(规则的JSON缓存数组,用于提升规则获取速率)等。在协议层中,操作数值数组,将记录每条规则中操作数值的类型及取值,如表格1所示的规则树操作数值类型表,操作数值类型通常由规则中操作数值的个数来决定,n为界定集合型或区间型的边界,通常取值为6。在学习阶段,若两条规则除操作数值字段以外均一致,则两条规则会进行合并,同时对操作数值类型进行更新。表1操作数值类型取值离散型单一离散数值集合型2-n个离散数值集合区间型大于n个数值组成的区间(3)字段层字段层用以表示在所属协议中,存在的字段集合,对于深度解析的工控协议,其都能够抽象映射到源IP、目的IP、协议、动作、操作地址等离散取值字段(操作数值字段取值类型可为离散、范围、区间,会使用单独的数据结构),字段层在规则树初始化时生成,后续规则的增删改均不会改变该层,等同于数据库中的表头字段。(4)字段值层字段值层用以存储在所属的字段下,自学习阶段捕获到该字段的所有离散取值,同时使用hash表提升检索速率,每一个字段都会在字段值层有一个通配*的取值,其作用在于占位及模糊匹配,表示某条规则无需考虑该字段取值。(5)储存位层储存位层使用二进制位对规则离散取值信息进行存储,图1中储存位层的每一列二进制位表示一条规则。若在规则z下,字段A,字段值x对应的二进制位为1,则表示规则z中字段A的取值为x,若此时x为通配符*,则表示规则中不存在字段A的信息。以此可确认图1中S7子树的第三列规则表示为<proto:S7,源IP:10.0.0.9,目的IP:10.0.0.3,动作:读寄存器,操作数区间:[10.2,11.6]>。储存位层在代码实现时,每行中64个二进制位作为一个块(block),使用一个uint_64数据类型表示,每当储存位层规则满容量时,会统一进行64条规则的扩容,进行匹配时也会通过按位于、按位或等操作进行64条规则的同时匹配,以同时达到节省空间、提高匹配速率的目的。在白名单自学习、检测阶段,均需要将深度解析后的报文与规则树进行匹配,以确定是否需要增加新的规则、是否检测出异常等。匹配算法中主要设计了精确匹配、模糊匹配两种以满足不同逻辑需求,如删除白名单、更新白名单操作数值等需要精确匹配,检测白名单是否存在需要模糊匹配。匹配算法步骤大致如下:步骤1:提取待匹配规则中协议字段,进入其对应的协议树。步骤2:根据协议树中规则数量n,构建长度为的uint_64数组,并全部赋值0xFFFFFFFF作为临时匹配数组,二进制位取值为1的位置编号表示待检测规则在当前能够匹配到的规则编号,所述n为正整数。步骤3:通过将临时匹配数组与有效位数组按位与,获取有效规则编号。步骤4:对协议树下字段逐个进行匹配,该步骤为匹配算法核心步骤,分为精确匹配、模糊匹配两种以满足不同逻辑需求。对于当前待匹配字段为A,规则树中该字段取值集合为S={v1,v2,…,vn,统配*},临时匹配数组为[temp]bin,字段值x对应的二进制位数组为xbin,通配符*对应的二进制位数组为[*]bin。精确匹配的步骤为:1)若待匹配规则中无字段A,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配本文档来自技高网...

【技术保护点】
1.一种基于规则树的工控网络白名单异常检测方法,其特征在于,首先建立白名单规则集,所述白名单规则集为记录正常模式下报文深度解析值,所述正常模式下报文深度解析值为正常模式下每一条网络流中包含的工控协议、动作、操作地址、操作数值,然后进行异常检测,报文深度解析值在白名单规则集中无法匹配的为异常数据。/n

【技术特征摘要】
1.一种基于规则树的工控网络白名单异常检测方法,其特征在于,首先建立白名单规则集,所述白名单规则集为记录正常模式下报文深度解析值,所述正常模式下报文深度解析值为正常模式下每一条网络流中包含的工控协议、动作、操作地址、操作数值,然后进行异常检测,报文深度解析值在白名单规则集中无法匹配的为异常数据。


2.如权利要求1所述的方法,其特征在于,所述白名单的数据结构为5层,从最高层到最底层依次为规则层,协议层,字段层,字段值层,存储位层;其中,所述规则树层用于区分该规则树的使用场景;所述协议层存储非离散型规则信息,所述非离散型规则信息包括操作数值数组,规则有效位数组,JSON缓存数组;所述字段层表示在所属协议中存在的字段集合,包括源IP、目的IP、协议、动作、操作地址,所述字段层在规则树初始化时生成,后续规则的增删改均不会改变字段层;所述字段值层用以存储在所属的字段下,自学习阶段捕获到该字段的所有离散取值,使用hash表提升检索速率,每一个字段在字段值层均有一个通配*的取值;所述储存位层使用二进制位对规则离散取值信息进行存储。


3.如权利要求2所述的方法,其特征在于,所述报文深度解析值与白名单规则集进行匹配的步骤为,步骤1,提取待匹配规则中协议字段,进入其对应的协议树;步骤2,根据协议树中规则数量n,构建长度为的uint_64数组,并全部赋值0xFFFFFFFF作为临时匹配数组,二进制位取值为1的位置编号表示待检测规则在当前能够匹配到的规则编号;步骤3,通过将临时匹配数组与有效位数组进行按位与逻辑计算,获取有效规则编号;步骤4,对于当前待匹配字段为A,规则树层中该字段取值集合为S={v1,v2,...,vn,统配*},临时匹配数组为[temp]bin,字段值x对应的二...

【专利技术属性】
技术研发人员:李博葛彬彬张钟熙
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1