基于机器学习的工控环境智能安全检测系统与方法
技术领域
[0001] 本发明涉及工控安全技术领域,具体的说是一种基于机器学习的工控环境智能安全检测系统与方法。
背景技术
随着网络无线化、移动化的发展,网络信息安全给工业控制网络设施带来了巨大隐患,加上各种智能仪表、操作终端入网能力的提高,使得工业控制系统固有漏洞和攻击面日益增加。
文献《基于机器学习的可感知序列型工控入侵检测技术研究》对中国国家信息安全漏洞共享平台(China National Vulnerability Database,CNVD)、中国国家信息安全漏洞库(China NationalVulnerability
Database of Information Security,CNNVD)发布的漏洞进行了分类以及统计分析,结果表明:2010年以来工控漏洞数量增长态势明显。2010年全年公开工控漏洞数量为77条,而2018年全年公开工控漏洞数量为628条。
“震网病毒”、“火焰病毒”等事件表明,某些国家已能够破坏具有战略价值的民用行业信息系统,并且攻击和破坏能力逐步增大。迫于此,全球各国均开始重视工控系统网络安全问题。
常用的工控安全网络保护技术是采用工业防火墙、网络安全漏洞扫描、白名单技术等方式。文献《基于多核处理器的工业控制系统硬件防火墙研究》提到工业防火墙主要是在工业控制网络和信息网络之间设置防护系统,串联在网络中,将工业控制网络和信息网络分隔开,主要起到过滤的作用。工业防火墙虽然能够阻止对工控系统的一些非法访问,但对系统的一些恶意入侵抵御性差。工控安全漏洞扫描技术主要是先扫描系统中的端口,从而得到系统的目标设备和软件信息,然后通过获取的信息识别出种类、型号、版本等,最后将这些信息与网络漏洞库进行一一列表,查询相关安全漏洞,降低系统的安全风险。文献《A practical flow white list approach for SCADA systems》提到的白名单主要是指一个管理员或者用户授权的应用程序列表,当有应用程序需要运行时,系统会自动查询该列表,若在该列表中,则运行此程序。
文献《基于FCM-SVM的工控网络异常检测算法研究》提到入侵检测技术是一种主动防御技术,该技术通过对工控系统网络进行检测对系统中可能存在的异常行为进行分析,在网络中呈并联状态,将防护、检测、响应融为一体,具有智能监控、实施探测等特点,构建了工业控制系统可靠的运行环境。入侵检测技术能够分析、识别很多的攻击行为,是非常重要的一种安全防护技术,该技术的发展趋势对工控网络信息的安全性有重大的影响。
随着工控安全技术的发展,新的工业控制系统病毒也在不断地繁衍、传播和进化,隐藏程度逐步加深。显然,针对互联网病毒通常采用的“发作一补救一防范”的措施对工业控制系统的安全防护是无效的。
离线建立的模型、列表等难以适应工业过程网络环境变化中的新情况,如基于旧规则建立的入侵检测模型难以检测新的入侵手段,基于旧的异常协议列表难以检测新出现的异常协议的入侵。因此,需要基于机器学习方法来监测网络数据变化并自适应即时更新模型、列表等。综上所述,有必要将机器学习技术用于工业控制网络的安全监测与防护,建立具有智能安全检测的工控系统迫在眉睫。
发明内容
鉴于上述的分析,本发明提出了一种基于机器学习的工控环境智能安全检测系统与方法,用于不同工控环境下的安全检测与态势感知。
本发明的目的主要通过以下技术方案实现:一种基于机器学习的工控环境智能安全检测系统,基于工业控制内部网部署安全探针装置,所述安全探针装置包括数据采集模块、基线形成模块和安全检测模块;
所述数据采集模块,用于采集工业控制内部网应用层协议的数据包;
所述基线形成模块,用于对采集的数据包进行预处理,将预处理后得到的数据作为训练数据集进行机器学习,生成适应当前工控环境的合法行为基线;
所述安全检测模块,用于根据所述合法行为基线在不同工控环境下进行安全检测,当检测到不符合所述基线形成模块学习的行为则告警。
所述安全探针装置部署在主节点上。
所述数据采集模块通过PF_RING进行数据包流量采集,将所述数据包按照既定的通信协议规则解析出各个不同意义的字段,并将解析出来的每个字段的数据进行标记。
所述基线形成模块包括预处理模块、机器学习模块和安全检测基线形成模块;
所述预处理模块,用于对所述数据采集模块采集的数据包进行预处理;
所述机器学习模块,用于通过机器学习算法对所述预处理模块处理后得到的数据作为训练数据集进行机器学习;
所述安全检测基线形成模块,用于根据所述机器学习模块的训练结果生成适应当前工控环境的合法行为基线。
所述预处理模块基于本体将数据聚合,即,将工业控制系统中具有相同概念和语义的数据进行归类和抽取,将聚合得到新的数据分类,所有分类构成的集合作为机器学习的训练数据集;
所述机器学习模块基于CNN/RNN学习与建模;
所述安全检测基线形成模块根据机器学习训练结果形成符合安全规范的协议特征、设备对象信息,并生成可供参考的网络通信特征列表,通过对协议分布和流量信息的匹配形成安全检测基线。
所述安全检测模块的安全检测包括:实施应用白名单、配置合规性检查与补丁扫描、正常工控协议与异常工控协议列表。
所述配置合规性检查是对工控系统的配置文件进行解析,将功能代码与具体业务操作、国家标准和行业标准进行关联,用于实现合规性检查功能。
所述正常工控协议与异常工控协议列表针对不同行业工控网络进行异常监测;
所述正常工控协议包括:DNP3、IEC104、IEC61850-GOOSE、IEC61850-MMS、MODBUS、S7COMM、IEC62351。
本发明还提供一种基于机器学习的工控环境智能安全检测方法,包括以下步骤:
创建连接与创建列表:确定连接的客户端与服务器端,并根据八元组汇总连接形成列表;
学习阶段:在一段时间内通过网络流量的收集,对所有合法的数据流进行统计,自动建立并初始化白名单;或,对工控系统的配置文件等进行解析,将功能代码与具体业务操作、国家标准和行业标准进行关联,针对不同的工控环境使用预先准备好的模板进行配置合规性检查;或,针对不同行业工控网络增加正常工控协议与异常工控协议列表进行异常监测;
生成阶段:针对形成的初始化白名单信息进行阈值范围设定,形成稳定空间范围白名单;或,结合生产标注形成具有约束条件的信号上下限;
检测阶段:使用在学习阶段所创建的白名单去识别非法流并告警;或,对运维人员下发的工控协议报文产生的非法操作进行检测,对未知协议、越权操作、关键控制行为进行检测并警告;或,基于异常工控协议列表对异常工控协议进行检测检测并警告。
所述八元组包括源MAC地址、目的MAC地址、源IP、目的IP、源端口、目的端口、协议类型和工控协议解析指令字段。
本发明提供的所述的上述技术方案,与现有的技术相比,至少具有如下优点:
1.本发明是基于工业控制内部网络部署安全探针装置,可用于实现工控环境的信息安全状况与态势感知。
2.本发明提出的基于机器学习的工控环境智能安全检测框架及实施方法安全探针装置内置机器学习算法,用于对当前环境下的合法行为进行学习,当检测到不符合之前学习后的行为则告警。
3. 本发明安全探针的检测算法因素增加包括实现应用白名单、配置合规性检查与补丁扫描、正常工控协议与异常工控协议列表等内容。
4.本发明提出的探针设备可广泛应用于工业生产的高热、粉尘等恶劣环境,相较于传统标准机房环境的工控探针更具有部署优势。
附图说明
图1是本发明的总体架构图;
图2是本发明实施例中安全检测因素的实施应用白名单的一个具体示例的流程图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种基于机器学习的工控环境智能安全检测系统,应用于钢铁、稀土、化工等不同工控环境下的安全监测。在更细粒度的内网(车间等)网络中部署安全探针装置,可用于网络即时监控,当发现可疑传输时发出警报或者采取主动反应措施的网络安全设备;可用于实现工控环境的信息安全状况与态势感知,辅助实现态势信息采集、病毒事件处理等业务。
作为本发明的一个实施例,针对高热、粉尘的较极端环境下,安全探针装置可采用耐高温的外壳材料,全密闭、紧凑、坚固的设计结构。当需要散热时,探针设备或可采用无风扇散热系统,在散热方式上采用低功耗、性能优越的CPU。设备可采用厚实的散热铝块或铜块配合外部大面积散热铝鳍片,能够高效有序地将设备内部产生的热能及时有效地传送到外部。
安全探针装置的架构图如图1所示,包括:
数据采集模块:采集工业控制内部网应用层协议中的多个数据包,通过PF_RING进行数据包流量采集以支持高流量的数据传输,将所述数据包按照既定的通信协议规则解析出各个不同意义的字段,并将解析出来的每个字段的数据进行标记。上述数据包内包含了工控系统监测区域的所有上下行流量、设备状态、配置信息等信息。
基线形成模块:对采集的多个数据包进行预处理,将上述多个数据包进行数据分析,对当前环境下的合法行为进行学习,建立安全检测基线;
进一步地,上述模块以对采集的多个数据包进行预处理后得到的数据为训练数据集进行机器学习,根据训练结果生成工控环境下的安全检测基线;
进一步地,上述机器学习可基于以事件序列为数据源的离散时间马尔科夫链(DTMC)模型或模糊C均值聚类和支持向量机结合的FCM-SVM模型等进行快速建模;
具体地,离散时间马尔科夫链(DTMC)模型是对于事件序列中的每一个事件,根据其现有DTMC情况进行处理。如果DTMC中不存在与之相同的状态,则建模算法会在DTMC中新增一个状态,状态计数为1;如果DTMC中已存在与之相同的状态,则建模算法会更新该状态,将状态计数和最近时间戳等信息更新。除此之外,当出现新的状态转换时,建模算法会新增一个转换。如果出现了已存在的转换,则更新该转换的信息。
具体地,模糊C均值聚类和支持向量机结合的FCM-SVM模型是根据聚类中心和隶属度计算聚类中心距离D,与阈值比较,设定优化参数后进行SVM检测,建立模型。
所述基线形成模块包括预处理模块、机器学习模块和安全检测基线形成模块;所述预处理模块,用于对所述数据采集模块采集的数据包进行预处理,基于本体将数据聚合,即,将工业控制系统中具有相同概念和语义的数据进行归类和抽取,将聚合得到新的数据分类,所有分类构成的集合作为机器学习的训练数据集;所述机器学习模块,用于通过机器学习算法对所述预处理模块处理后得到的数据作为训练数据集进行机器学习,基于CNN/RNN学习与建模;所述安全检测基线形成模块,用于根据所述机器学习模块的训练结果生成适应当前工控环境的合法行为基线,具体地,根据机器学习训练结果形成符合安全规范的协议特征、设备对象信息,并生成可供参考的网络通信特征列表,通过对协议分布和流量信息的匹配形成安全检测基线。
安全检测模块:基于检测算法在当前工控环境下进行安全检测,当检测到不符合之前学习后的行为则告警。
进一步地,上述安全检测模块的检测算法因素增加实现应用白名单,比如传统白名单、基于机器学习的白名单,还包括配置合规性检查与补丁扫描、正常工控协议与异常工控协议列表;
具体地,上述传统白名单:指一个管理员或者用户授权的应用程序列表,当有应用程序需要运行时,系统会自动查询该列表,若在该列表中,则运行此程序。
具体地,所述配置合规性检查是对工控系统的配置文件进行解析,将功能代码与具体业务操作、国家标准和行业标准进行关联,用于实现合规性检查功能。
具体地,所述正常工控协议与异常工控协议列表针对不同行业工控网络进行异常监测;所述正常工控协议包括:DNP3、IEC104、IEC61850-GOOSE、IEC61850-MMS、MODBUS、S7COMM、IEC62351。
一种基于机器学习方法的白名单工作流程如图2所示,包括创建连接与创建列表、学习阶段、检测阶段;
创建连接与创建列表:创建连接是将捕获到的包聚集,以TCP状态机或超时作为创建连接的结束标志。在创建列表阶段确定了连接的客户端与服务器端,并根据八元组(源MAC地址、目的MAC地址、源IP、目的IP、源端口、目的端口、协议类型和工控协议解析指令字段)进一步汇总连接;
学习阶段:在一段时间内通过网络流量的收集,对所有合法的数据流进行统计,自动建立并初始化白名单;或,对工控系统的配置文件等进行解析,将功能代码与具体业务操作、国家标准和行业标准进行关联,针对不同的工控环境使用预先准备好的模板进行配置合规性检查;或,针对不同行业工控网络增加正常工控协议与异常工控协议列表进行异常监测;
生成阶段:针对形成的初始化白名单信息进行阈值范围设定,形成稳定空间范围白名单;或,结合生产标注形成具有约束条件的信号上下限;
检测阶段:使用在学习阶段所创建的白名单去识别非法流并告警;或,对运维人员下发的工控协议报文产生的非法操作进行检测,对未知协议、越权操作、关键控制行为进行检测并警告;或,基于异常工控协议列表对异常工控协议进行检测检测并警告。当与白名单相匹配,则正常运行,否则会产生报警信息。实际生产环境中,管理员可在误报时将其添加到白名单中,或在漏报时限制这个信息流,或对异常数据进行合规性安全检测以防因生产异常导致的数据误报。
进一步地,上述安全检测模块的检测算法因素增加的配置合规性检查是对工控系统的配置文件等进行解析,将功能代码与具体业务操作、国家标准和行业标准等进行关联,用于实现合规性检查功能。
具体地,可对工控设备进行扫描,做好工控资产的评估,可以针对不同的工控环境使用预先准备好的模板进行配置合规性检查;可工控协议合规性进行检查;对运维人员下发的工控协议报文产生的非法操作进行检测;可对未知协议、越权操作、关键控制等行为进行告警。
进一步地,上述安全检测模块的检测算法因素增加的正常工控协议与异常工控协议列表需针对不同行业工控网络进行异常监测。
具体地,所述正常的工控协议包括:DNP3、IEC104(南方电网DL/T634.5104-2002远动协议实施细则(Q/CSG110006-2012)中IEC104通信规约部分)、IEC61850-GOOSE、IEC61850-MMS、MODBUS、S7COMM、IEC62351。
具体地,当针对变电站场景时,可对IEC 61850协议簇进行深度解析,对应到特定场景下的关键操作行为(遥控操作,改定值操作)。