CN110891055B - 一种基于规则树的工控网络白名单异常检测方法 - Google Patents
一种基于规则树的工控网络白名单异常检测方法 Download PDFInfo
- Publication number
- CN110891055B CN110891055B CN201911139213.1A CN201911139213A CN110891055B CN 110891055 B CN110891055 B CN 110891055B CN 201911139213 A CN201911139213 A CN 201911139213A CN 110891055 B CN110891055 B CN 110891055B
- Authority
- CN
- China
- Prior art keywords
- matching
- field
- rule
- value
- bin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Abstract
本发明提出一种基于规则树的工控网络白名单异常检测方法,首先建立白名单规则集,所述白名单规则集为记录正常模式下报文深度解析值,所述正常模式下报文深度解析值为正常模式下每一条网络流中包含的工控协议、动作、操作地址、操作数值,然后进行异常检测,报文深度解析值在白名单规则集中无法匹配的为异常数据。
Description
技术领域
本发明涉及一种异常检测方法,尤其涉及一种基于规则树的工控网络白名单异常检测方法。
背景技术
工业控制系统网络化过程中,系统中原有设备的传统网络安全问题逐渐被暴露,简单的物理隔离在万物互联、“互联网+”的时代背景下已不再具有可行性,而与此同时工业控制系统的安全风险及入侵威胁也在不断增加。从外部网络环境观察,工业控制系统多基于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:提取待匹配规则中协议字段,进入其对应的协议树。
步骤3:通过将临时匹配数组与有效位数组按位与,获取有效规则编号。
步骤4:对协议树下字段逐个进行匹配,该步骤为匹配算法核心步骤,分为精确匹配、模糊匹配两种以满足不同逻辑需求。
对于当前待匹配字段为A,规则树中该字段取值集合为S={v1,v2,…,vn,统配*},临时匹配数组为[temp]bin,字段值x对应的二进制位数组为xbin,通配符*对应的二进制位数组为[*]bin。
精确匹配的步骤为:
1)若待匹配规则中无字段A,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配;
2)若待匹配规则中有字段A,但字段A取值x不在集合S中,则匹配失败;
3)若待匹配规则中有字段A,且字段A取值x在集合S中,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配。
模糊匹配的步骤为:
1)若待匹配规则中无字段A,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配;
2)若待匹配规则中有字段A,但字段A取值x不在集合S中,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配;
3)若待匹配规则中有字段A,且字段A取值x在集合S中,则先执行[*]bin&[x]bin,再执行执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配。
步骤5:对在临时匹配数组中取值仍为1的规则,进行操作数值匹配,逐条规则匹配是否有属于其离散型、集合型或区间型的数值,若有则匹配成功,若所有规则都没有则匹配失败。
如图2所示为白名单模糊匹配流程图,展示了以{proto:s7,源IP:10.0.0.8,目的IP:10.0.0.4,动作:写寄存器,操作数数值:25}作为待匹配规则,进行白名单模糊匹配的过程。
白名单模型在其匹配过程中按照一定顺序进行匹配,若匹配失败,可依据其失败位置确定异常种类,异常种类包括:1)未知IP;2)未知连接;3)操作数值异常;4)协议或功能码异常;5)其他普通异常。
本发明针对工业控制网络通信具有高度周期性、循环性,通信模式相对固定的特点,构建了一种基于二进制位存储的规则树数据结构,能够使用较少的存储空间,记录工控网络报文中协议、动作、操作地址、操作数值等关键信息,并根据学习、检测需求能够进行快速的精确、模糊规则匹配(在实验室环境下白名单匹配吞吐量超过30万条/秒)。同时作为异常检测模型,能够有效检测出离散、连续字段的恶意注入攻击、人员误操作异常等,能够对潜在威胁进行实时警告。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种基于规则树的工控网络白名单异常检测方法,其特征在于,首先建立白名单规则集,所述白名单规则集为记录正常模式下报文深度解析值,所述正常模式下报文深度解析值为正常模式下每一条网络流中包含的工控协议、动作、操作地址、操作数值,然后进行异常检测,报文深度解析值在白名单规则集中无法匹配的为异常数据;所述白名单的数据结构为5层,从最高层到最底层依次为规则层,协议层,字段层,字段值层,储存位层;其中,所述规则层用于区分该规则树的使用场景;所述协议层存储非离散型规则信息,所述非离散型规则信息包括操作数值数组,规则有效位数组,JSON缓存数组;所述字段层表示在所属协议中存在的字段集合,包括源IP、目的IP、协议、动作、操作地址,所述字段层在规则树初始化时生成,后续规则的增删改均不会改变字段层;所述字段值层用以存储在所属的字段下,自学习阶段捕获到该字段的所有离散取值,使用hash表提升检索速率,每一个字段在字段值层均有一个通配*的取值,所述通配*是对字段数据进行统一的算法匹配;所述储存位层使用二进制位对规则离散取值信息进行存储。
2.如权利要求1所述的方法,其特征在于,所述报文深度解析值与白名单规则集进行匹配的步骤为,步骤1,提取待匹配规则中协议字段,进入其对应的协议树;步骤2,根据协议树中规则数量n,构建长度为的uint_64数组,并全部赋值0xFFFFFFFF作为临时匹配数组,二进制位取值为1的位置编号表示待检测规则在当前能够匹配到的规则编号;步骤3,通过将临时匹配数组与有效位数组进行按位与逻辑计算,获取有效规则编号;步骤4,对于当前待匹配字段为A,规则树层中该字段取值集合为S={v1,v2,…,vn,通配*},临时匹配数组为[temp]bin,字段值x对应的二进制位数组为xbin,通配符*对应的二进制位数组为[*]bin,然后对协议层下字段分两种方式逐个进行匹配,所述方式包括精确匹配、模糊匹配;步骤5,对在临时匹配数组中取值仍为1的规则,进行操作数值匹配,逐条规则匹配是否有属于离散型、集合型或区间型的数值,若有则匹配成功,若没有则匹配失败。
3.如权利要求2所述的方法,其特征在于,所述精确匹配的步骤为:
步骤4-1,若待匹配规则中无字段A,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配,所述[temp]bin&[*]bin为两个数组的二进制与运算;步骤4-2,若待匹配规则中有字段A,但字段A取值x不在集合S中,则匹配失败;步骤4-3,若待匹配规则中有字段A,且字段A取值x在集合S中,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配。
4.如权利要求3所述的方法,其特征在于,所述模糊匹配的步骤为,步骤5-1,若待匹配规则中无字段A,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配;步骤5-2,若待匹配规则中有字段A,但字段A取值x不在集合S中,则执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配;步骤5-3,若待匹配规则中有字段A,且字段A取值x在集合S中,则先执行[*]bin&[x]bin,再执行[temp]bin&[*]bin,若匹配结果全0则匹配失败,否则进行下一字段匹配。
5.如权利要求2所述的方法,其特征在于,所述步骤5中,若匹配失败,可依据其失败位置确定异常种类,异常种类包括未知IP,未知连接,操作数值异常,协议或功能码异常,其他普通异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911139213.1A CN110891055B (zh) | 2019-11-20 | 2019-11-20 | 一种基于规则树的工控网络白名单异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911139213.1A CN110891055B (zh) | 2019-11-20 | 2019-11-20 | 一种基于规则树的工控网络白名单异常检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110891055A CN110891055A (zh) | 2020-03-17 |
CN110891055B true CN110891055B (zh) | 2020-12-25 |
Family
ID=69747991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911139213.1A Active CN110891055B (zh) | 2019-11-20 | 2019-11-20 | 一种基于规则树的工控网络白名单异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110891055B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614611B (zh) * | 2020-04-01 | 2022-11-08 | 中国电力科学研究院有限公司 | 一种用于电网嵌入式终端的网络安全审计方法及装置 |
CN112468488B (zh) * | 2020-11-25 | 2023-05-23 | 杭州安恒信息技术股份有限公司 | 工业异常监测方法、装置、计算机设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131041A (zh) * | 2016-07-29 | 2016-11-16 | 北京匡恩网络科技有限责任公司 | 一种工控网络安全检测装置和未知漏洞检测方法 |
CN107612733A (zh) * | 2017-09-19 | 2018-01-19 | 杭州安恒信息技术有限公司 | 一种基于工控系统的网络审计和监测方法及其系统 |
CN108055282A (zh) * | 2017-12-28 | 2018-05-18 | 国网浙江省电力有限公司电力科学研究院 | 基于自学习白名单的工控异常行为分析方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702584B (zh) * | 2013-12-10 | 2017-11-28 | 中国科学院沈阳自动化研究所 | 一种基于自学习规则的Modbus通信访问控制方法 |
CN105208018B (zh) * | 2015-09-09 | 2018-08-17 | 上海三零卫士信息安全有限公司 | 一种基于漏斗式白名单的工控网络信息安全监控方法 |
CN110049004B (zh) * | 2019-03-03 | 2021-05-14 | 北京立思辰安科技术有限公司 | 工控环境流量白名单基线的生成方法 |
CN110266680B (zh) * | 2019-06-17 | 2021-08-24 | 辽宁大学 | 一种基于双重相似性度量的工业通信异常检测方法 |
-
2019
- 2019-11-20 CN CN201911139213.1A patent/CN110891055B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131041A (zh) * | 2016-07-29 | 2016-11-16 | 北京匡恩网络科技有限责任公司 | 一种工控网络安全检测装置和未知漏洞检测方法 |
CN107612733A (zh) * | 2017-09-19 | 2018-01-19 | 杭州安恒信息技术有限公司 | 一种基于工控系统的网络审计和监测方法及其系统 |
CN108055282A (zh) * | 2017-12-28 | 2018-05-18 | 国网浙江省电力有限公司电力科学研究院 | 基于自学习白名单的工控异常行为分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110891055A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104677B (zh) | 一种基于知识图谱的受控主机检测方法和装置 | |
CN109450842B (zh) | 一种基于神经网络的网络恶意行为识别方法 | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
CN106603519B (zh) | 一种基于证书特征泛化和服务器变迁行为的ssl/tls加密恶意服务发现方法 | |
JP5417179B2 (ja) | コンピュータネットワークセキュリティを支援するための、アセットモデルのリアルタイム識別およびアセットの分類 | |
CN112003870A (zh) | 一种基于深度学习的网络加密流量识别方法及装置 | |
CN109040130B (zh) | 基于属性关系图的主机网络行为模式度量方法 | |
US20180034837A1 (en) | Identifying compromised computing devices in a network | |
CN111866024B (zh) | 一种网络加密流量识别方法及装置 | |
CN112468347B (zh) | 一种云平台的安全管理方法、装置、电子设备及存储介质 | |
CN111224941B (zh) | 一种威胁类型识别方法及装置 | |
CN107122221A (zh) | 用于正则表达式的编译器 | |
CN110891055B (zh) | 一种基于规则树的工控网络白名单异常检测方法 | |
CN110768946A (zh) | 一种基于布隆过滤器的工控网络入侵检测系统及方法 | |
Ma et al. | Discovering suspicious APT families through a large-scale domain graph in information-centric IoT | |
CN113111951A (zh) | 数据处理方法以及装置 | |
CN112507336A (zh) | 基于代码特征和流量行为的服务端恶意程序检测方法 | |
Seth et al. | MIDS: Metaheuristic based intrusion detection system for cloud using k-NN and MGWO | |
Patgiri et al. | Hunting the pertinency of bloom filter in computer networking and beyond: A survey | |
CN110493253B (zh) | 一种基于树莓派设计的家用路由器的僵尸网络分析方法 | |
Zheng et al. | Two-layer detection framework with a high accuracy and efficiency for a malware family over the TLS protocol | |
CN113965393B (zh) | 一种基于复杂网络和图神经网络的僵尸网络检测方法 | |
Boulaiche et al. | An auto-learning approach for network intrusion detection | |
CN117061254B (zh) | 异常流量检测方法、装置和计算机设备 | |
Aldwairi et al. | n‐Grams exclusion and inclusion filter for intrusion detection in Internet of Energy big data systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |