首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原创-基于工业流程分析的工控网络安全审计

[背景介绍]

笔者现为网藤科技“藤”安全实验室研究员,主要负责工控协议DPI,以及工控安全策略研究,在工业控制领域有较深厚的理论基础和较丰富的实践经验。

01

工控安全现状

1

工业控制系统安全现状

现代工业控制企业不仅包括生产控制系统,同时还包括生产管理和质量控制等的信息管理系统,控制系统和信息系统的两化融合已经成为大势所趋,生产控制系统与管理信息系统的互联已经成为ICS的基本架构,据监测统计数据显示,截止到2017年11月,全球范围内直接暴露在互联网上的工业控制系统数量已超过10万个,相比2016年上升了43%。

据卡巴斯基发布的关于ICS系统威胁的报告显示,其研究的约188019套ICS中,91.1%存在漏洞,超过87%的系统具有中等或以上安全漏洞,7%的系统具有严重安全漏洞。国家信息安全漏洞库(CNNVD)公布的2017年全年漏洞数量为14,748个,2016年全年的漏洞总数为8,753个,年增长率至少上升70%。而CNNVD自正式统计漏洞数量以来,从2010年至2016年,增长率最高才为20%。另外,美国国家漏洞库(NVD)以及公共漏洞披露平台(CVE)公布的漏洞数量统计数据如下表示:

由于黑客大会、白帽社区、开源社区的出现,可以越来越容易地获得工控系统的攻击方法,同时大量的工控系统的安全漏洞及利用方法也都可通过公开或半公开的渠道获得,这些都极大的降低了针对工控系统进行网络攻击的难度。

2

工业控制系统的安全漏洞分析

工业控制系统在设计之初,由于资源受限,非面向互联网等原因,为保证实时性和可用性,工业控制系统各层普遍缺乏安全性设计,具体表现在以下几个方面:

工控协议通信没有加密,所有通信报文明码传输,没有认证机制;

关键主机操作系统基于windows平台,而windows平台本身就存在大量的安全漏洞,但是工业控制系统为了稳定运行,通常不打补丁。杀毒软件在工控系统上使用之前必须经过严格的离线检测,所以为了控制系统的可用性,很多现场的关键主机也通常不装杀毒软件,导致大量的工控主机运行在无杀毒软件,不打补丁的环境下,极大的增加了安全风险;

工控系统设计上追求可用性而牺牲安全性,普遍缺乏完整的安全策略和管理流程,给安全带来极大隐患;

缺乏对工业控制系统的安全审计,事故分析困难

§

§

02

工控安全审计产品简介

1

工控安全审计产品的必要性

工控安全审计系统是通过对工业控制系统网络中实际通信流量进行采集,并基于对工业控制协议(如OPC Classic、Modbus TCP、IEC 60870-5-104、DNP3、S7等)的通信报文进行深度解析,通过实时动态分析、数据流监控、网络行为审计等技术,快速识别工业控制网络中存在的异常行为,实现实时检测针对工业协议的网络攻击、用户误操作、用户违规操作、非法设备接入以及蠕虫、病毒等恶意软件的传播的行为并实时报警,同时详实记录一切网络通信行为,包括指令级的工业控制协议通信记录,为工业控制系统的安全事故调查提供坚实的基础。工控安全审计产品已经成为现阶段工业控制系统信息安全防护的一个非常重要的组成部分。

工控安全审计产品专门针对工业控制网络的信息安全进行审计。它采用旁路部署,对工业生产过程“零风险”。

2

工控安全审计产品基本功能汇总

工控安全审计产品实现的核心功能包括:

网络实时流量审计:不间断地采集并实时监测网络数据流量,发现异常、实时告警(可监测网络风暴,ARP攻击等网络事件)。

异常数据告警:基于对工控协议的深度数据包解析,通过自学习算法建立正常通信行为基线,然后对工控网络中实际采集的工控协议数据包的解析结果与正常行为基线进行比较,当实际行为偏离正常行为基线时实施报警。

通信行为追溯:对获取的网络通信数据包进行全方位的记录,并支持对记录进行回溯,支持生成所有网络行为的审计日志记录,为工业控制系统的安全事故调查提供详实的依据。

§

§

03

工控安全审计的技术实现

1

当前工控安全审计产品技术实现的现状

基于对现阶段大多数工控安全审计产品的实际调研,汇总现阶段相关产品的主要技术实现如下:

指令级审计

针对工控协议中核心的功能指令进行指令级审计,审计内容包括:非法指令码审计,与可能的攻击有关联关系的指令码审计,与特定行为事件有关联关系的指令码审计,基于频数统计分析的异常指令码审计等等指令级审计。

参数阈值级审计

针对工控协议中数据字段区的实现读或写功能指令的数据值进行参数阈值级审计,审计内容包括:数据值是否超过设定的上限值或下限值审计,数据值是否偏离历史均值超过设定的最大偏差范围的审计等等参数阈值级审计。

工控协议审计

审计通信协议违规端口,畸形协议报文审计(包括不符合协议规约规定格式的工业控制协议报文,异常的控制命令,异常的控制点位,异常的控制值等等),协议携带数据异常审计(包括整体报文数据携带异常和数据区数据携带异常)等等基于工控协议的审计。

环境级审计

IP无流量事件审计,工控网络内工控协议流量分析审计,出现未知设备审计,原有存活设备丢失审计,IP地址和MAC地址绑定变化审计,设备之间的访问关系变更审计,基于五元组的异常审计,基于时间段流量阈值审计,发现邮箱服务(识别邮箱服务器),发现FTP访问(识别FTP服务器),发现Telnet访问,发现Http访问(源IP、MAC地址,目的URL)等等环境相关的变更审计。

行为级审计

关键行为事件审计,包括数据采集行为,组态变更行为、应用程序下载、控制指令下发行为,负载变更行为等等行为级事件审计。

2

当前工控安全审计产品技术实现的不足之处

上述列举的审计技术是目前工控网络安全审计产品的一个总体技术实施思路。这种传统的思路应用于不同的实际工业环境下时显示出一些不足之处。具体表现在不同的行业都有各自不同于其它行业的独特工艺,冶金行业和石油石化行业在控制工艺上就会有很大的差别。现有的安全审计的审计深度最多只能达到行为级,而且完全基于对工控协议的深度解析,没有考虑到不同工艺应用环境,也就是说如果现场实际使用的工控协议是相同的情况下,在冶金行业使用的安全审计产品和在石油石化行业使用的其实是同一个产品,这显然与实际上两个行业很大的工艺差异是明显不符的,其实际的审计效果也很难真实的精准的满足用户的需求。

不同的行业都有各自不同于其它行业的独特工艺,而基于这些独特控制工艺的控制业务流程也同样具有独特性,某一种数据特征或行为特征对某一个行业工艺来说是可以允许的,但对于另外一个行业工艺而言,它很可能是有害的,甚至是危险的。如何让安全审计产品在进行安全审计过程中能区别对待这两种不同的业务流程应用环境,在该告警的时候告警,在不该告警的时候不告警,有效减少漏报和误报的发生,这就要求工控安全审计产品在技术实现上需要考虑到基于控制工艺的控制业务流程因素,否则势必会造成控制业务流程差异很大的两个应用环境下使用相同的安全审计技术手段,其实际效果可想而知。

鉴于上述列举的常规工控网络安全审计产品在实际工业行业应用中的不足之处,我们提出了基于业务审计的工控安全审计的思路。

§

§

04

基于业务审计的工控安全审计的必要性

在冶金行业,一座高炉会配置多座热风炉交替进行燃烧和送风控制。当一座热风炉送风一段时间后,输出的热风温度满足不了高炉所需的风温时,需要进行热风炉换炉操作,将另外一座已经燃烧好的热风炉投入送风状态,而后再将原送风的热风炉转为燃烧作业,燃烧好后改为焖炉状态等待下一次换炉操作,因此热风炉有燃烧、焖炉、送风这3种工作状态。假设一座高炉配置了三座热风炉,那么一般情况下采用 “两烧一送”的工作方式。

在高炉热风炉控制过程中,热风炉换炉控制和热风炉燃烧控制是两个重要的控制过程,其中换炉控制主要包含燃烧转送风和送风转燃烧两个不同的控制阶段,这两个换炉阶段的具体控制工艺要求是:

①燃烧转送风:关煤气调节阀→关煤气阀→关助燃空气调节阀→关燃烧阀→关助燃阀→开支管放散阀及蒸汽阀→关烟道阀→开冷风旁通阀(充压)待炉内压力充满后→开热风阀→开冷风阀→关冷风旁通阀;

②送风转燃烧:关冷风阀→关热风阀→开废气阀,待放净废气后→开烟道阀→关废气阀→关支管放散阀及蒸汽阀→开助燃空气阀→开燃烧阀→开煤气阀→开助燃空气调节阀→调节煤气与空气配比。

热风炉燃烧控制方面,主要的控制工艺要求是在燃烧控制初期应尽量加大煤气量和空气量,实现快速烧炉,使炉顶温度尽快达到规定值,炉顶温度达到规定值后应加大空气量来保持炉顶温不在上升,使炉子中、下部温度上升,扩大蓄热量,满足高炉的需要。

下面就以高炉热风炉控制中的这两个典型控制过程作为假想的场景简要说明基于业务审计的工控安全审计的必要性:

1

孤立的指令正常,但组合起来构成行为异常

高炉热风炉控制中的换炉控制会涉及到多个阀门的控制,所有这些阀门必须要按照规定的顺序动作,孤立地来看,关闭燃烧阀和打开送风阀均是正常的操作,但是如果它们之间的动作的先后顺序发生改变时,其结果就完全不同了,以燃烧转送风为例,该阶段的控制工艺要求是:关煤气调节阀→关煤气阀→关助燃空气调节阀→关燃烧阀→关助燃阀→开支管放散阀及蒸汽阀→关烟道阀→开冷风旁通阀(充压)待炉内压力充满后→开热风阀→开冷风阀→关冷风旁通阀。在燃烧转送风控制阶段,如果出现在各燃烧阀没有全关的情况下就开启与送风相关的阀门,那么对热风炉的控制将会是危险的,从实际工艺要求的角度,上述情况一旦发生,审计系统是应该有告警输出的。而现阶段的安全审计产品在进行安全审计时没有将上述工艺业务流程中相关阀门动作顺序的因素考虑进去,如果实际中真的发生了上面描述的情形时审计系统将不会告警,出现严重的漏报,如果能将上述的工艺要求融合进审计规则的制定,同时对网络中采集的真实数据包做解析,将结果进行过滤和排序,发现动作的顺序异常即告警,这样当上面描述的危险情形发生时就不会出现这种漏报。

2

孤立的数值正常,但组合起来构成的行为异常

同样以高炉热风炉的换炉控制为例,在热风炉换炉时,由于冲压不当或换炉操作失误等多种原因可能造成风压波动,但是风压波动范围必须小于5Kpa,一旦出现风压波动超过范围的情形,会对热风炉控制产生较严重的影响,从实际业务的角度,上述情况一旦发生,审计系统是应该有告警输出的。但是对于常规的安全审计产品,只要风压的绝对值不超过风压设定的上限值或下限值,无论实际发生什么,均会视为正常而不会告警输出,但实际情况是,如果孤立地看数值正常的参数的数值变化率超过工艺规定的数值,同时该情形发生在特定的控制阶段时,对热风炉控制会产生较严重的影响,它的出现就很可能预示着一种恶意的攻击行为,是需要告警输出的,如果没有告警即为漏报。而如果将工艺业务流程中有关这种涉及正常数据的特定组合违背控制工艺要求的因素考虑进去的话,那么实际中真的发生了上面描述的情形时审计系统就会告警,避免出现严重的漏报。

3

关键工艺参数设置违反工艺要求

同样是高炉热风炉控制,在烧炉阶段的控制原则是:在烧炉初期应尽量加大煤气量和空气量,实现快速烧炉,使炉顶温度尽快达到规定值,炉顶温度达到规定值后,应加大空气量来保持炉顶温度不再上升,使炉子中、下部温度上升,扩大蓄热量,满足高炉的需要。如果在炉顶温度已经达到规定值的情况下依然尝试提高炉顶温度的行为,对于热风炉的控制而言是危险的,是需要审计系统告警提示的。但是常规的基于工控协议解析的审计系统只会单纯的判断设定值是否超限,因为它没有考虑相关的工艺信息,也就不知道要判断两个合理的设定值在特定的工艺环境下是否合理,因而会出现漏报。

4

缺乏专门针对控制业务流程的更加有效的告警信息

常规的工控安全审计产品基于工控协议解析发现网络异常后的告警信息,往往只是反映其非常浮于表面的信息提示,无法让操作人员非常直观和直接的了解到告警所表达的实质的信息,只有将工艺业务流程信息融入到安全审计产品的审计规则中,审计产品才有可能生成以实际符合控制工艺的语言进行告警信息的输出。以上面的热风炉换炉控制的实例为例,常规的单纯基于协议解析(假设为Modbus协议)的安全审计产品提供的告警信息很可能会是【1、寄存器000001被写入数值1】、【2、寄存器000002被写入数值1】,该告警信息的可观显然较低,如果融入相关的工艺业务流程信息后,同样的情形下,提供的报警信息将会是【热风炉换炉过程中先打开了送风阀,后关闭了燃烧阀,属于违规操作】,该告警信息的可观性显然高了许多,而且紧紧贴合现场实际的控制业务流程,具体操作人员对告警信息的了解会非常清晰,也会是现场操作人员非常希望看到的告警信息。

§

§

05

基于业务审计的工控安全审计的具体技术实现设想

基于业务审计的工控安全审计的技术实现的核心是将基于控制工艺的控制业务流程融入安全审计产品的技术策略中,在具体的技术实现上需要将重点的工艺控制要求进行梳理和汇总,提供给工控网络安全审计产品的设计人员,设计人员结合汇总的工艺要求和对协议的深度解析,定制化的进行工控网络安全审计产品攻击告警规则库的更新,制定与实际应用环境的控制工艺深度融合的定制化的规则库,具体的实现步骤可简单的概括为以下几个步骤:

1

实现变量地址到工艺变量表述的转换

工控安全审计产品必须输出与现场实际工艺深度融合的告警信息,而要实现这个目标,首要的基本前提是必须将采集的工控网络真实数据包直接解析的变量地址翻译成实际控制工艺中对应的工艺变量表述后使用到审计产品的告警信息中,例如:将保持寄存器地址 400001 翻译成为1#热风炉炉温,寄存器 00001 翻译成 1#热风炉燃烧阀关闭命令,应用于告警信息中。实现的方法可以是将软件编程中的变量申明表导出成一个Excel文件,工控安全审计产品将解析到的变量地址与Excel文件进行检索查询,获得该变量地址在本项目配置中的变量描述,在后期的告警信息生成的过程中使用该变量描述替代所有对应于变量地址的位置,实现变量地址与工艺变量表述之间的转换。

2

梳理工控业务流程并汇总关键工艺控制要求

实现该步骤功能有三种具体的实现方法:① 现场的工艺专家提供支持和配合,由工艺专家将重点的工艺控制要求进行梳理和汇总,提交给工控网络安全审计产品的设计人员;② 现场人员尽可能详细地提供现场的相关工艺设计文档,由审计产品设计人员进行梳理和汇总;③ 完全由审计产品设计人员自己根据通用的业务工艺梳理和汇总。就最终实现结果的有效性和准确性而言,方法①是最佳的实现方法,但该方法需要现场积极配合,实际实施具有一定的不确定性;方法②和③对审计产品设计人员会提出很高的要求,他必须熟悉现场生产的通用控制工艺,同时还要清楚实际工艺现场的特殊性,准确性会因不同人而产生不同程度的偏差,但该类方法对现场配合度的要求很低。

3

生成告警规则库

安全审计产品的设计人员依据步骤2汇总的工艺控制要求,定制化的编制工控网络安全审计产品攻击告警规则库。同时设计人员可以以操作界面的形式提供在线的根据工艺要求变更的灵活的添加和删除告警规则库的功能。

§

§

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180522G0Z2SQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券