用于工业控制基础设施的使用动态签名的安防系统的制作方法

文档序号:13759823阅读:196来源:国知局
用于工业控制基础设施的使用动态签名的安防系统的制作方法

本发明涉及控制工厂自动化和/或工业过程的工业控制器,并且具体地涉及为工业控制系统提供增强安防以防止恶意行为的系统。



背景技术:

在传统上,一直由用于保护工厂等的物理装备的相同保护措施来保护工业控制系统免受篡改或恶意活动,也就是说,限制对工业控制器及其相关联的装备的物理访问。

采用分布式处理以及网络和互联网连接的现代工业控制系统很容易受到攻击。尽管这样的系统在物理上可能是安全的,但是必须为分布式系统中建立多个安防点,并且与互联网的网络连接会使物理安防无关。近期证据是富有经验且资金雄厚的外国国家或组织充分利用通过互联网对工业控制系统的访问。在一个示例中,美国工业控制系统网络应急响应小组(ICS-CERT)提供了关于对用于管理和控制工业装备的可编程逻辑控制器的人机接口(HMI)进行攻击的恶意软件(Black Energy)的警告。存在基于互联网直接成功攻击工业控制系统的传闻证据。

不同于对标准计算机装备和服务器的攻击,对工业控制系统的攻击可以想象到会产生对实物财产的损害和对人类生命的危害。



技术实现要素:

本发明提供了一种用于通过监视可能仅在工业控制系统的操作的动态改变模式下明显的可能篡改来增加工业控制系统的安防的系统。

在一个实施方式中,本发明涉及具有根据控制程序进行协调的多个互通工业控制设备的工业控制系统。多个控制设备中的每个控制设备可以具有一个或更多个设备网络端口,用于与工业控制系统的其他元件进行通信;以及用于接纳电导体的电连接器,所述电导体与工业装备进行通信以从工业装备接收电信号或者向工业装备传送电信号用于工业过程的控制。

控制设备还提供与电子存储器系统通信的控制设备处理器,该电子存储器系统保存:操作软件,其描述控制设备的操作;数据表,其保存电连接器的电信号的表示;以及诊断程序,其提供用于监视控制设备的操作的输出。数据表与诊断程序的输出一起限定动态设备状态。

操作软件执行以:(i)读取设备动态状态的至少一部分以生成动态签名;对动态签名进行加密;以及通过网络端口来传送动态签名。

控制系统还提供了:安防控制器,该安防控制器具有用于与工业控制系统的其他元件进行通信的控制器网络端口;安防控制器处理器,其与控制器网络端口通信;以及控制器电子存储器系统,其能够由安防控制器处理器进行访问并且保存安防程序。

安防程序执行以:通过网络端口来接收来自给定控制设备的动态签名;对动态签名进行解密;针对用于建立可接受的动态签名值的多值范围的规则分析动态签名;以及提供用于指示接收到的动态签名是否在可接受的动态签名值的多值范围之外的输出。

因此,本发明的至少一个实施方式的特征是提供一种安防强化动态指纹,其可以用于检测对控制系统的操作进行干预的恶意活动。

动态设备状态的所述一部分可以包括指示电连接器的电信号的数据。

因此,本发明的至少一个实施方式的特征是通过使用对来自控制设备的I/O信号的分析来推断控制设备以及与控制设备附接的机器的可能篡改。

安防程序可以执行以:通过网络端口来接收来自给定控制设备的多个动态签名;以及针对集成规则来分析动态签名,所述集成规则与组合的动态签名相关并且建立可接受的动态签名值的多值范围。

因此,本发明的至少一个实施方式的特征是提供通过控制系统的不同部分的全局分析来检测恶意活动的能力。

动态签名可以包括多个时间变化量,其中所述规则建立关于每个量的多值范围。

因此,本发明的至少一个实施方式的特征是通过使用包含动态签名的多值范围并根据与静态指纹不符合的动态变量来检测篡改。

多值范围可以根据其他变化量进行变化。

因此,本发明的至少一个实施方式的特征是提供一种可以识别不同变 量之间的相关性或相互关系的一组复杂规则。

可以由利用来自正常操作工业控制系统的动态签名所训练的监督机器学习系统来应用该规则。

因此,本发明的至少一个实施方式的特征是提供一种可以管理用于洞察可能篡改的任意控制系统的多个维度的变量的复杂性的系统。

可以至少部分地由工业控制系统的历史操作来确定正常操作工业控制系统。

因此,本发明的至少一个实施方式的特征是提供一种在工业控制系统的操作期间持续学习的系统。

动态设备状态可以包括时间戳、数字签名、设备标识号以及改变随机码中的至少一个。

因此,本发明的至少一个实施方式的特征是提供一种用于减少所传送的动态设备状态在传送期间被篡改的风险的方法。

动态签名可以包括来自控制设备的诊断程序监视操作的输出。

因此,本发明的至少一个实施方式的特征是监视操作参数诸如CPU利用率、可用存储器、堆栈深度、预定间隔的端口流量、平均端口流量的改变,该操作参数可以指示超载控制设备的服务型攻击的拒绝性质的恶意活动。

所述规则可以至少部分地是日历数据的函数,该日历数据指示工业控制系统的时间表改变。可替代地或另外地,动态签名可以包括控制设备的操作模式,该操作模式选自:运行状态,该运行状态指示控制设备正在运行以执行控制程序;以及编程状态,该编程状态指示正在针对控制程序对控制设备进行编程。

因此,本发明的至少一个实施方式的特征是在编程以减少误报报警期间通知具有定期维护或改变的规则。

第一控制设备可以产生第一动态签名,并且第二控制设备可以接收第一动态签名并基于第二控制设备的动态设备状态和第一动态签名来产生第二动态签名并通过第二控制设备的控制系统通信端口来传送第二动态签名。

因此,本发明的至少一个实施方式的特征是允许动态安防数据的分布式处理,这可以洞察数据的分析并且减少需要传送的数据量。

这些特定的目的和优点可以仅应用于在所述权利要求范围内的一些实施方式,从而并未限定本发明的范围。

附图说明

图1是简化的工业控制系统,示出了多个控制器、分布式控制模块、与互联网的连接、以及适于与本发明一起使用的监督系统;

图2是示出各种功能部件的示例性控制设备的功能图,各种功能部件的数据可以被并入到指纹中,所述指纹显示这些组件的安防状态;

图3是在管理由控制设备生成的安防签名中所使用的安防设备和安防模板的功能图;

图4是描绘从各种设备文件填充图3的安防模板的步骤的流程图;

图5是由图3的控制器执行的配置工具或在构成本发明的安防系统中的其他安防设备和安防处理程序的操作的流程图;

图6是在执行响应脚本时的配置之后由安防处理程序执行的步骤的流程图;

图7是用于对所检测到的错误的显著性进行分析的显著性矩阵的逻辑表示;

图8是通知树的逻辑表示,通知树根据显著性级别和来自所通知个体的响应来提供不同通知;

图9是类似于图2的示出动态指纹的发展的图。

图10是图1的工业控制系统的层次结构的逻辑表示,其示出了通过层次结构向上传递背景信息以用于动态指纹数据的处理;

图11是用于将本地变量名称转换为模板变量名称的转换表;

图12是用于分析动态指纹的监督机器学习系统的训练的流程图;

图13是授权协议的流程图,该授权协议用于防止控制硬件的未经授权的改变;以及

图14是安防状态的全局显示的简化描述。

具体实施方式

示例性控制系统

现在参照图1,适合本发明应用的工业控制系统10可以提供一个或更多个控制器12a、12b,所述一个或更多个控制器12a、12b被操作成执行控制程序以如在本领域中通常理解的那样对工业过程14进行控制。该工业过程例如可以协调在装配线等上的一组机器;或者与工厂加工材料的致动器和传感器进行交互以控制该过程;或者进行其他类似的控制应用。

工业控制器12可以在下游与一个或更多个控制设备16a至16c进行通信,其中,一个或更多个控制设备16a至16c向工业过程14提供了直接接口。这样的控制设备16可以通过非限制性示例的方式包括一个或更多个I/O模块16a,所述一个或更多个I/O模块16a提供与工业过程14交互的输入和输出线18,从而使得能够与传感器20和致动器22进行通信。其他示例性控制设备16可以是:电机控制器16b,其对施加于电动机23的电力进行控制;或者电机驱动器16c,其例如通过合成电力波形来向电机23提供更精密的电机控制。

工业控制器12可以借助于工业控制网络24诸如由美国密歇根州的标准组织ODVA管理的通用工业协议(CIPTM)、以太网/IPTM和DeviceNetTM、CompoNetTM以及ControlNetTM与控制设备16进行通信。这样的网络提供用于数据的实时高可靠性传送,并且可以提供例如通过对通信资源诸如网络带宽、网络缓冲区等进行预调度来保证及时递送的特征。

工业控制器12也可以在上游通过数据网络26(其可以是但不一定是工业控制网络)经由一个或更多个路由器或开关28来与中央计算机系统30进行通信。这后一种监督型计算机系统30可以进一步经由互联网32与远程设备34诸如计算机终端、移动无线设备等进行通信。可替代地,可以存在工业控制器12与互联网32之间的直接连接。

如本领域中通常理解的,控制设备16、工业控制器12、开关28、计算机系统30和远程设备34中的每一个可以提供一个或更多个电子处理器和相关联的电子存储器,该电子存储器保存由处理器可执行的程序,下面对其中的一些进行描述。

现在参照图1和图2,代表性控制设备16提供I/O导体36,例如与传感器20、致动器22、电机23等进行通信的导线。这些I/O导体36可以经由一个或更多个端子或连接器系统38例如螺丝端子而可释放地连接至控制设备16。连接器系统38又可以与连接管理电路40进行通信,该 连接管理电路40能够例如通过以下方式来检测例如附接至连接器系统38的导体36的存在或不存在:监视电流回路或通过监视所施加的电压等、或导线断开、或通过监视的“停机(stuck at)”故障、以及经过预定的时间段或者在测试信号的应用期间信号状态不发生改变。

来自导体36的信号穿过连接器系统38和连接管理电路40并被获取并被存储在I/O表42中,该I/O表42是由易失性和非易失性存储器构成的机载计算机存储器45的一部分。从控制设备16输出的信号在传送到导体36上之前也可以被存储在I/O表42中。

在控制设备16内的处理器44可以执行如通过例如作为在非易失性存储器中所保存的固件的操作系统48介导(mediated)的例如在易失性存储器中所保存的控制程序46。控制程序46可以处理从导体36接收到的如存储在I/O表42中的输入。这些输入可以经由网络接口54被传送到工业控制器12,从而使得在通信网络24上的通信能够用于由在工业控制器12中所保存的控制程序进行处理。控制程序46和操作系统48可以被实施为固件或软件或者二者的组合。

相反,控制设备16的控制程序46还可以执行以:通过网络接口54接收来自工业控制器12的输出以生成输出值,该输出值被写入I/O表42并且最终经过导体36被输出。控制程序46还可以或可替选地执行一些控制逻辑,以根据所接收的输入来生成其自己的输出。

在本发明的一个实施方式中,控制设备16还在存储器45中保存了安防程序58,该安防程序58提供用于根据指纹表62和防御脚本64来生成“指纹”,所述指纹表62和防御脚本64这二者将在下文进一步讨论。

静态签名

控制设备16可以采用能够反映控制设备的状态、配置以及其程序的真实性的各种数据结构。

控制程序46和操作系统48可以包括信息诸如修订号和数字签名49,例如,操作系统48使用公钥或使得能够确定相关固件或软件来自受信任源或有效源的类似技术如非对称加密和加密安全散列函数。

一般地,修订号不一定是单个修订号,而是可以包括聚合的修订号集合,其表示例如与软件的部件不同或与附属软件不同或与连续修订的链不同的一组不同修订号。还可以如将在下面讨论的那样将修订号与所述设备 的固件或硬件相关联。

此外,可以如将在下面描述的那样将控制程序46和操作系统48的整个数据集合推敲为或以其他方式分类(digested)为缩减尺寸的子指纹。此整理过程与压缩完全不同之处在于:压缩预期了解压缩或恢复步骤,但是如本文中所使用的,利用此区别理解将该分类过程通常称为分类和/或压缩。

(在易失性或非易失性存储器45中实现的和/或作为物理开关位置实现的)硬件配置寄存器50可以保存用于控制所述控制设备16的操作的设置,并且还可以提供与控制设备16有关的制造数据,其中制造数据包括例如序列号、模块功能类型、制造商名称、制造日期等。此外,硬件配置寄存器可以提供只读存储器,该只读存储器包括由生产商嵌入的用于指示硬件的真实性的加密认证码。硬件配置寄存器还可以为来自由操作系统48执行的一个或更多个诊断程序的输出数据提供存储位置,其中诊断程序例如是用于指示存储器故障或其他故障、指令执行速度、存储器容量或校验结果的诊断程序。在一个实施方式中,诊断程序输出CPU使用率、空闲存储器和堆栈深度。诊断程序还可以监视网络通信,这包括经过预定间隔的端口流量和/或平均端口流量的改变,诸如可以指示对服务型攻击的拒绝。

在存储器45中还保存的事务日志52可以记录会影响控制设备16的某些活动,例如新的控制程序46和/或操作系统48的上传行为或者在硬件寄存器50中所存储的开关设置的改变,并且事务日志52可以记录这些活动和这些活动在改变的源(例如包括对经授权个体的识别)中发生的时间。

仍参照图2,在控制设备16的操作期间,在安防程序58的控制下,数字操作指纹70可以被定期生成并传送至安防设备31例如工业控制器12或计算机系统30中之一。该操作指纹70理想地捕获以上所描述的数据结构的一部分,所述一部分可以用于确定它们是否以某种方式被篡改或被损坏。为了获得最大的灵活性,数字操作指纹70的内容可以根据指纹表62进行变化,该指纹表62提供各自与不同数字指纹70相关联的各种传送模式72,所述不同数字指纹702具有不同的信息量并且由此表示控制设备16的状态数据的缩减尺寸的不同程度。正因如此,这些不同的数字操作指纹70提供指纹细节与计算和传送负担之间的权衡。

一般地,针对指纹表62的每个模式72的操作指纹70指定一组特定 的指纹源数据74,例如控制程序46、固件操作系统48、配置寄存器50、以及在控制设备16的各种部件中所保存的环境数据,所述环境数据包括连接管理电路40的导线连接状态、其在工厂环境中地址和/或位置(例如其被保存在通信模块或存储器模块中)、来自所分布的内部传感器的操作温度等。在一种示例性模式72中,例如使用循环冗余码或散列压缩将来自每个源的整个数据设置减小为分类,并且对这些压缩指示进行组合以生成一个或更多个数字操作指纹70。压缩过程可以是无损耗或有损耗的,但无需重建所分类的数据。

该数字操作指纹70然后被传送至远程安防监视设备,其中,将数字操作指纹70与所存储的对应指纹进行比较以根据其中控制设备16的源数据74还未被修改或篡改的汇集方案建立在合理概率内。

在不同的模式72下,可以减少在指纹表62中提供的数据量减少的量,或者对源数据74中的每一个源数据进行独立压缩,使得对操作指纹70的分析可以显示已改变或已损坏的特定源数据74。因此,例如,可以将控制程序46和操作系统48中的每一者独立压缩成子指纹78。在子指纹78与其在安防设备31处的相应副本之间的比较中的失配使得能够确定控制程序46和操作系统48的结构中的哪些结构已经改变为仅与这两种方案中的一个方案的改变相反。将在下面针对确定指纹的任何失配的显著性来说明这一点的显著性。类似地,连接管理电路40和硬件寄存器50的脱线信息可以未经压缩(例如作为未压缩的子指纹78)而被传送,因此任何检测到的子指纹78的改变立即指示哪些导线已断开或哪些硬件值发生改变。

操作指纹70还可以包括数字签名82,使得能够在已经从控制设备16传送操作指纹70之后检测该操作指纹70的篡改。在这方面,操作指纹70可以包括时间戳79、顺序值或随机生成值83,该顺序值或随机生成值83可以在接收安防设备31处同步地发展(例如,通过时钟或类似的算法),使得操作指纹70可以不被截取和替代,以使安防设备31相信已发送了操作指纹70或已发送了不同的操作指纹70。在操作指纹70中所编码的时间戳79和顺序值或随机生成值83可以防止在所截取的操作指纹70中的值的准备替代。操作指纹70还可以包括设备标识号71,该设备标识号71使得特定的控制设备16能够获知要明确确定的指纹。

已经仅关于控制设备16描述了操作指纹70,但是应当理解的是,控制系统10的每一个元件可以发展这些指纹,所述这些指纹可以被向上传 递至安防设备31。因此,控制器12还可以在安防设备31为计算机系统30时生成指纹。指纹70的准确内容和压缩将是设备特定(device-specific)的。

现在参照图3,用于对操作指纹70的分析进行管理的安防设备31通常将包括网络接口卡84,该网络接口卡84与网络24进行通信以定期地(例如,如从控制设备16推送的或响应于来自安防设备31的轮询)接收操作指纹70。在一个实施方式中,定期地(例如从来自控制设备16的最后传送消息开始进行定时)完成来自安防设备31的轮询。以此方式,当在预定时间之后尚未执行轮询时控,制设备16还根据必要来评估系统的健康或安防。可以通过采用其中使用认证证书的公钥加密等来完成轮询,以防止该轮询过程的欺骗。

通常,安防设备31还包括:处理器系统86;存储器88,其保存安防处理程序90,如将要描述的那样;以及用于安防分析的填充后的安防表92。

填充后的安防表92可以为如由输入字段94指示的每个控制设备16提供条目。填充后的安防表92还可以为每个签名模式72提供指纹数据98,该指纹数据98包括针对该签名模式72所存储的指纹100、之前的有效指纹108、以及指纹图110。在安防表92或相关联的数据结构中可以存储有时间戳值102,用以指示来自给定控制设备16的有效操作指纹70的最新副本的接收时间,并且可以提供通知树104,该通知树104提供与安防问题的通知有关的联系信息,这将在下面进行讨论。

指纹图110通常可以通过源数据74的功能112(例如:操作系统48、控制程序46、硬件寄存器50)来确定每个子指纹78,并且指纹图110将给出权重114,该权重114指示所存储的指纹100与所接收的指纹70或子指纹78之间的可能失配的显著性。指纹图110还可以提供响应脚本118,该响应脚本118指示对所检测到的在操作指纹70与所存储的指纹100之间的失配的可能响应。明显地,子指纹78的数目将根据特定模式72进行变化,并且因此指纹图110的数目也将根据特定模式72进行变化。

现在参照图4,可以通过从许多标准安防模板120中进行选择来快速生成填充后的安防表92的信息,其中,标准安防模板120通常是针对不同的通用类型的控制系统10来定义的。例如,给定包装线(packaging line)——其提供用于相对标准的控制设备16——可以提供标准化的模板120。

每个模板120可以提供用于工业控制系统10的每个部件的通用程序121,该通用程序121包括:通用控制程序123,其用于一个或更多个控制器12;通用设备程序125;以及安防程序131,其用于一个或更多个相关联的控制设备16。通用程序121将使用通用名称来定义通用I/O点,该通用I/O点允许与工业过程14的传感器或致动器之间的电连通。如下面将要讨论的,这些通用I/O点可以由用户进行修改,以将通用I/O点链接到在所配置的工业控制系统中的实际物理I/O。此后,可以将经修改的通用控制程序123和经修改的设备程序125加载到相关联的物理部件中,以提供一种快速配置的安防系统。

标准化模板120也可以与安防监视程序129相关联,其中可以将安防监视程序129上传到(图1所示的)监视计算机系统30中从而使安防监视程序129与安防程序131进行通信以协调安防过程。

一旦选择了标准化模板120,则填充模板的生成可以在控制系统10的调试期间通过例如在计算机系统30或控制器12上所执行的模板制作程序126来执行,如由过程块130所指示的那样。每个标准化模板120将具有基于采用的基础过程的预填充元件122,并且还需要用于特定工业过程14的附加信息。例如,预填充元件122中的一些可以识别由模板120假定的类型的控制系统10所需的一般功能块。用户然后可以在表示特定控制设备16的特定设备文件124中选择例如给定型号的电机控制器,该电机控制器符合标准化模板120的功能块要求(例如通用电机控制器),但是提供关于特定设备的细节。通过过程块132来指示:将设备文件124并入到标准化模板120中。在一些实施方式中,特定设备文件124可以将他们自己的版本或修改或补丁提供给通用设备程序125或安防程序131。通常,硬件制造商可以提供必要的设备文件124。

标准化模板120还将包括如上所述的可以由安防监视程序129使用的安防表92的元素。可以在所提供的框架内由用户手动添加或编辑数据来补充安防表92的通用要素例如以创建通知树104,该通知树104指示在指纹失配的情况下将会通知人。一些预填充要素例如权重114——其归因于特定控制设备16或子指纹78——可以被修改或者可以从标准化模板120中采用默认值。由过程块134来指示这些编辑的改变。

参照图4和图11,如预先建立的安防模板120的上述次序所述的,以提供不仅与安防模板120的通用过程一起工作而且还与实际的控制过程一起工作的规则,向每个过程块134填充模板值的过程可以采用模板转 换表208,该模板转换表208将通用控制设备的标准化模板设备名称220链接到工业控制系统10的实际控制装置16的实际设备名称219。可以在对由相应功能217引导的每个过程块136进行调试时执行该链接,其中相应功能217描述了与标准化设备名称220相关联的通用控制设备的功能。然后可以将如下所述的内置于与安防模板120相关联的预定义规则中的标准化模板设备名称220映射到实际设备名称219,使得安防模板120的预定义安防角色可以适于特定应用的设备,而不需要针对每个不同的应用开发规则。

此外,在过程块136处,可以例如通过在给定控制程序46中所使用的特定标记名称来识别由各种输入或输出变量实现的特定通用功能,使得安防设备31可以解释由特定导体36(导体36应当从连接器系统38断开)实现的功能,使得用户生成报告可以指示不仅仅任意导线编号丢失的功能。标准化安防模板120允许在许多设备和许多用户中利用:给定类型的控制系统的详细易损性分析的益处、可能识别故障、这些故障的显著性、以及对由失配指纹70指示的这些故障的响应。当在过程块137处完全填充标准化模板120时,可以将标准化模板120上传到激活的安防设备31和安防处理程序90。

现在参照图5,在工业控制系统10被投入使用之前,如由过程块140所指示的,可以对控制系统10进行配置,在此期间可以由网络24互连各种部件并且将必要的控制程序46加载到控制设备16和硬件寄存器值50以及在所安装的加载填充安防表92中初始化的其他部件中。

在过程块142处,可以创建公钥或类似的安防密钥诸如非对称加密并且将其分发给工业控制系统10的部件(例如控制设备16、控制器12等),以允许在上述关于指纹70的交换数据中附接数字签名。在过程块144处,将系统10的每个部件的所存储指纹100加载到为安防设备31生成的填充设备模板120。

在控制系统10的一般操作期间,如由过程块146所示的那样,从控制设备16向安防设备31请求指纹70或者由控制设备16将指纹70推送到安防设备31,其中,如判定块148所示的那样在适当模式72下将指纹70与所存储的指纹100进行比较。该比较是根据接收到操作指纹70的特定控制设备16。如果操作指纹70与所存储的指纹100相匹配,则在过程块150所示的延迟之后,重复该过程,使得可以近实时地确定控制设备16的任何潜在的篡改或故障。在所接收的指纹70与在填充安防表92中 所存储的对应指纹100不匹配的情况下,则在判定块148处安防处理程序90前进至过程块154,并且可以实现来自响应脚本118中的多个不同响应中的一个响应。该检测可以是实时的,或者可以定期或随机调度地发生。

可以预期的是,还可以将所存储的指纹100与其他存储值如在第二存储位置中所保存的例如在较早时间的存储值定期地比较,以检测所存储的指纹100的可能篡改。也就是说,可以执行安防指纹100的历史的跟踪,并且在此跟踪时所检测到的任何失配也可以根据过程块154调用响应。

现在参照图6,在判定块148失配的情况下,安防处理程序90通常将实施可存储在填充安防表92中的响应脚本118。该响应脚本118可以执行许多不同的任务,任务包括:根据过程块156生成通知报告、根据过程块158执行额外数据采集、在过程块160处评估失配的显著性、以及在过程块162处采取缓解或防御动作。每个具体步骤是可选的,并且通过特定的响应脚本118来确定是否执行每个具体步骤。每个过程块156至162可以在循环中被重复,使得响应和分析不断地与系统中的附加信息以及其他可能改变一起演变。

过程块156的报告可以根据过程块164在图3的通知树104中向个体或群体提供通知。暂时参照图8,在一个实施方式中,通知树104可以提供均与失配的显著性级别166相关联的多个条目。将每个显著性级别链接到确认级别169和联系信息175。确认级别169可以指示联系个体是否已确认收到了该联系。一般地,联系信息175可以是网络地址、人机接口、以及电子邮件地址、移动设备联系号码、或者通信向个体或群体和/或其他设备传送问题的各种不同方法中的任一种方法,其中所述其他设备包括控制器12或工厂指标器诸如灯及信标。

向个体的通知可以是例如经由电子邮件或用作网页,并且可以提供例如(图14所示的)图形显示,该图形显示针对例如指纹70的误差、错误的严重度、错误的定时或顺序、以及缓解动作通过颜色指示工业控制系统10的每个功能元件300及其状态。还可以将该信息局部地显示在人机接口等上,以提供在受控装备附近的系统安防的直接快照。

对于第一失配,在过程块156至162的循环的第一次迭代处,在过程块160处,因为尚未确定显著性,所以显著性级别166将为零。该低显著性级别的背景可以限于负责日常维护等的个体或者简单地限于日志文件。例如,指纹或子指纹的较小失配可以仅报告到负责维护系统的技术人员并且可以被指示为低优先级,而较显著的失配可以向快速响应和监督者提供 具有紧急指示的报告。随着附加的失配发生并且循环被多次执行,显著性级别166可以上升,并且用于识别要联系的个体的特定联系信息175将根据失配的显著性进行改变,并且一个或更多个参与者已经响应或确认是否收到了通知。在一个响应脚本118中,如果在给定时间段内没有参与者确认收到了该通知,则显著性级别166将上升,使得根据如在下面将讨论的潜在问题的严重度,可以增加附加的联系或者可以通知不同的人。

过程块156的报告还可以提供系统警报更新,该系统警报更新是可以由其他安防设备31读取以使得能够协调用力的全局可用系统安防值。由过程块167所示的该系统警报更新可以提供与失配有关的信息,所述信息包括失配部件、显著性级别166和正在采取的可能附加步骤的任何详细信息。如下面将要讨论的,针对设置特定失配的显著性级别166,还可以考虑来自其他安防设备31的或由其他控制设备16在不同的反应脚本118中所生成的系统警报状态。通过了解多个不同的失配,可以确定局部失配的显著性的更细致的视角。

在数据收集过程块158中,可以针对通常由显著性级别166驱动而且还通过失配的类型驱动的失配签名来收集附加数据。如由过程块168所示的,可以基于粗糙操作指纹70的识别来获得最显著性的较细粒度的操作指纹70(例如,更多的子指纹78)。因此,例如,如果操作指纹70具有非常低的粒度,则过程块168的细粒度数据收集将提供划分更细的子指纹78,使得可以更好地将特定失配的位置确定为例如特定的数据结构或设备,其中粒度指示仅数据结构的集合组的数据的失配。由指纹提供的细节的这种升级允许灵活设置与特定问题有关的知识与传送指纹所需的网络开销之间的权衡。

在数据采集过程块158的过程块170处,可以收集事务日志52以防止这些事务日志52的丢失或损害并且允许对事务日志52的分析使得可以指示错误的源(例如,在对系统做出改变的给定操作人员)。事务日志52还可以通知如将在下面所讨论的潜在缓解步骤,例如禁止某些人员改变控制设备16的软件。在过程块173处,可以读取系统显著性级别166以便获得经历签名失配的所有潜在控制设备16的理解(即在过程块167处上传系统警报)并且调整数据集合级别。

本发明设想到一些响应脚本将在“隐形”模式下进行操作,在该“隐形”模式下数据被收集并且可能被长时间存储在未证明警报或其他通知的活动中。该隐形模式满足在避免频繁误报和通知之间的权衡,同时确保仍 然充分评估和处理长期趋势和较小偏差。还可以在由所讨论的响应脚本提供的类型的隐形模式下自动执行系统安防的微小改变,而无需必要的通知。

可以例如经过较长的时间段对在隐形模式期间所收集的数据单独地进行分析,仅仅因为异常检测的长期性或者因为可以根据长期数据收集所评估的附加信息,所以最终可以将长期的较低级别的警报升级到较高级别。例如,则可以聚合和报告或使用长期趋势或关联性(例如,与特定个体对装备的访问相关联的或在另一种模式下的安防问题)来触发较高级别响应。

在过程块160处确定对失配的显著性的评估,并且该评估允许使对指纹70的失配的任何响应适合于派生严重度。当失配的类型指示对控制系统10的操作的可能篡改或干扰时,通过向任意失配分配严重度级别,可以减少误报,同时快速升级响应,即使对于较小失配也如此。通常,显著性级别166将源自在过程块160处可能被研究的许多因素。例如,在过程块174处,可以使用失配的位置(例如,控制设备16的特定部件)来获得上述权重114,该权重114指示错误的抽象显著性。因此,例如,导线导体36的断开可以具有低权重,而控制程序46或操作系统48的实质性错误可以被赋予较高的权重,其中导线导体36提供来自冗余传感器的或向致动器提供对于工业控制系统10的操作不是关键的信息。

在过程块176处,可以分析系统状态的改变(例如,源自用于多个控制设备16的过程块167的系统提醒更新),以查看特定失配是否为贯穿控制系统10的失配的图案的一部分并且分析这些失配的任何趋势,使得由不断增加的失配构成的失配被赋予较大的权重。权重可以受失配的数目或表现出失配的不同结构的数目所影响。可以将对在不同的独立的控制设备16之间的失配的模式的分析并入到响应脚本中以识别特定的改变,所述特定的改变可能单独看起来为良性,但是一起暗示较多的显著性和较高的显著性级别166。

在过程块178处,例如使用冗余控制设备16或使用备份信息来对缓解选项进行评估以查看是否可以容易地缓解特定的失配,其中备份信息可以通过来自安防设备31的指令而被付诸实施。如果可以缓解失配,则可以分配较低的显著性级别166。

在过程块180处,针对例如在日历类型的应用中已向安防设备31预先登记的任何预定的改变,对当前指纹70与所存储的指纹100的失配进 行比较。通常将与已预先登记的改变相关的失配的显著性级别分配给较低的显著性级别166。将在控制设备16处于配置或维护模式时发生的同样未预定的改变(如从控制设备16的控制面板中所设置的)可以被登记为与在运行时期间检测到相同的配置改变时相比没有那么严重。以此方式可以减少误报。

现在还参照图7,可以通过简单地将与每个失配相关联的指纹图110的权重114求和来实现用于评估当前指纹70与所存储的指纹100的失配的显著性级别166的过程块160。可替代地,可以通过一组规则来实现显著性级别166的计算,所述一组规则提供了权重和其他因素的较复杂的布尔组合(Boolean combination)。最一般地,可以开发显著性矩阵182以将多个条件184映射到特定的显著性级别166。因此,例如,可以将低显著性(例如为0)映射到条件,诸如仍然被指示为可信的或在预定的维护升级期间发生的失配控制程序46、或与以前的指纹108匹配的子指纹78。同样,被指示为低显著性功能的导线损耗可能也会得到较低的显著性级别166。可以建立用于指示例如通常为良性的改变或改变组合的白名单,例如硬件寄存器50的改变的预期模式可以被映射到低显著性级别166。在系统的低警报状态期间发生的改变可以被赋予低的显著性级别166。低警报状态可以起因于在不同的控制设备16处或在硬件上发生的未失配或低数目的失配或具有低显著性级别166的失配,所述失配是多余的并因此可以容易地缓解,或者当联系人已经利用其中高显著性不被保证或不应被重写的指示来确认失配的发生。此外,出于建立其他错误的重要性的目的,可以接收被确定为重要的特定输入或输出点或者严重故障的导致指示(或指示正确的操作)作为输入。

相反,由控制程序46或操作系统48引起的、同样失配之前的指纹108的、在未预定时间发生的、或者作为关键功能的由导线断开信号引起的失配可以被赋予高的显著性。正是因为可以建立白名单,所以被怀疑的、或暗示篡改而已预定的配置改变的黑名单可以产生高的显著性级别166。单独良性或低显著性的改变(但所述改变发生在其他高显著性级别166的环境中期间)或与其他类似的控制设备16的失配的预定模式相关联的改变也可以被提升到较高的显著性级别166。明显地其中没有可用的冗余硬件并且没有来自被联系的个体的响应的情况(其作为报告过程块156的部分)可以赋予较大的显著性。

暂时参照图13,控制设备16和控制器12中的每一个或任何一个可 以在操作系统48的固件或软件中执行改变监督者190,该改变监督者190需要特定的步骤以便对工业控制器12或控制设备16进行修改。这些步骤可以在控制设备16自身上或被指定为网关的代理设备上被实现意用于这样的改变。在判定块192处,改变监督者190可以监视对经受指纹70(例如控制程序46、固件操作系统48和配置寄存器50)的部件中的任意者的改变的任何请求。当请求改变时,如由过程块194所示的那样,个体可以请求授权寻求进行改变。该授权可以是密码或多因素授权,例如请求口令信息和物理键等。在理想情况下,授权识别特定的责任个体。

在判定块196处,可以针对授权个体和/或个体间隙(individual clearance)的列表来比较所接收的授权。如果如由判定块196确定的那样授权级别不够,则如由过程块198所示的那样可以生成报告,并且如由过程块200所示的那样在事务日志52中记录该尝试。否则,如由过程块202所示的那样实现该改变,并且再次记录在过程块200的记录过程中记录该改变。

在过程块156处使用在过程块160处所确定的失配的显著性级别166的评估来生成报告,潜在地抑制了较小事项的报告的广泛传播,同时如已经讨论的那样使较高显著性级别166的事项的报告升级。由于循环通过过程块156至162,所以失配的显著性级别166也可以根据过程块162来驱动缓解动作。

现在参照图6,在所接收的指纹70与所存储的指纹100之间的失配的情况下执行缓解动作的过程块162可以修改改变监督者190作为由过程块204所示的一个潜在缓解动作。具体地,在失配的情况下,过程块204可以改变或增加特定操作所需的安防级别。例如,特别是在看起来可能发生大规模篡改的情况下,可以增加控制程序46或操作系统48的改变的安防级别。如在过程块170处收集的从与失配相关联的事务日志52所确定的特定个体可以将其授权撤销。在请求可在可控环境下发布的新密码的条件下,可以重置用于授权的密码值。

过程块162的缓解步骤还可以执行其他操作。如由过程块206所示的那样,可以锁定控制设备16的操作模式(例如,运行状态与编程状态)以防止执行等待程序改变。

一些类型的失配可以引起将指示从安防设备31发送至具有失配的控制设备16,其中,所述指令使控制设备16转变为安全状态并且一直保持。安全状态是可能安全的一组预定输入和输出值,即不会产生毁坏装备或用 户的风险或者使风险最小化,并且使控制系统10的其他部件的故障传播最小化。安全状态可以是在上面讨论的标准安防模板120中预定义的。这样的安全状态可以是例如将装备等移动到安全位置并且可以禁用某些活动。

过程块162的缓解步骤的附加过程可以指示控制设备16运行以上所提到的防御脚本64,该防御脚本64支持各种传感器20和致动器22以用于防御目的。在一个示例中,防御脚本64可以使得与各种控制设备16相关联的相机被激活,以开始记录区域中的潜在可疑活动。通过控制设备16执行的照明控制可以被开启以显示侵入等。并且可以锁定由控制设备16控制的用于用户安全的通道闸(access gate)以防止访问装备或设备。

如由过程块209所示的,过程块162的缓解步骤方还可以指示冗余装备的激活,该冗余装备可以服务所危及的(compromised)控制设备16的功能。可替代地或另外地,缓解步骤可以指示控制设备16防止软件更新或者例如通过人机接口元件例如面板灯、信标、音频报警器等来向在控制设备16的区域中的操作员提供本地信号。

此外,过程块162的这些缓解活动中的每个活动可以由专门起草的一组规则来驱动或者更一般地通过以上关于过程块160所确定的显著性级别166来驱动。

动态数据

现在参照图9,上述说明涉及到获得基本上是“静态”的数据的签名(即,在正常操作期间缓慢改变或一点也没改变)或“准静态”(即,正在改变但具有基本上静态的状态表征)例如动态变量(不过其通常保持在预定范围内)。可以设想到,本发明可以扩展至例如如下“动态”数据:来自I/O表42的当前I/O数据,该当前I/O数据随控制设备16的操作而迅速改变;来自网络接口55的网络数据,该网络数据包计端口数、报文计数等以及实际接收的数据包;以及来自处理器44的处理器数据,例如处理器利用率百分比、处理器故障标志等。此外,该数据可以与时间戳79、数字签名80、设备标识号71和/或改变随机码83链接以提供在动态操作指纹70'的传送中的安防。

该动态操作指纹70'不易针对静态存储指纹来比较,但可以针对以下规则来比较,例如该规则建立其中操作指纹70'或基础数据应有所不同的 值范围,或者可用于检测与正常模式的偏差和这些动态值的偏移的基础数据值之间的相关性。在此情况下,可以用较复杂的动态签名来替代以上所描述的所存储的指纹100,以提供如以上已经描述的所用到的失配的检测。现在参照图12,用于实施动态存储指纹100'的一种方法利用机器学习系统201等。如本领域中所理解的,可以将正常动态操作指纹70'的教学设置205与这些正常动态指纹70'或者用于执行假想篡改的方案的故意制造指纹的故意损坏一起使用来训练该机器学习系统201。在使用教学设置205对机器学习系统201进行训练之后,然后机器学习系统201接收实际动态指纹70'以产生输出203,该输出203可以由图5的判定块148使用。

动态存储指纹100'包括一组规则或者机器学习系统还可以用于静态指纹70的分析,例如以分析在工业控制系统所预期的静态工作状态中的较小演变(否则被适应为升级等)。

有时,动态存储指纹100'的规则可以允许在一定范围内演变,以便消除由控制系统的状态的自然演变所引起的误报。可以例如通过使用历史数据来产生用于不断更新动态存储指纹100'的新训练集合来提供这种演变。在此情况下,可以例如用较长的时间帧来执行动态存储指纹100'的分析的第二级别,以针对可被检测的潜在基本问题来评估动态存储指纹100'的演变以触发上述过程块154的响应脚本。

动态存储指纹100'的隐式规则还可以在范围阈值处随机地受扰动以改变精确阈值,在该精确阈值处过程块154的响应脚本被调用。该随机化可以帮助例如在独立的工业控制系统10上击败(defeat)对动态存储指纹100'的“探查”,其中,所述探查被用于收集用以击败其他工业控制系统10的信息。可以执行随机化:例如通过在教学设置的不同要素之间进行随机选择以提供由机器学习系统201生成的稍有不同的教学规则,或者通过随机地将用于评估动态存储指纹100'的规则的范围的阈值进行少量调节,这仍保证了针对超出范围条件进行测试的范围的功能仍大大满足。

参照图10,在本发明中可以通过提供分布式安防设备31来管理由许多动态变量占据的潜在大组合空间,在该分布式安防设备31中,由紧接着的上游设备针对下游设备分析根据(图5的)判定块148的失配,从而限制了动态指纹70'的传播。在一定程度上不能以其他方式压缩这些动态指纹70',用于动态值的局部分析——例如本地监督的机器学习系统的范围检查或使用——的这种分布可以用于将动态指纹转换70'转变为静态或 准静态指纹70',以用于在安防设备31处使用如上所述的方法进行常规分析。可以通过将动态指纹70'与背景数据一起传送来提升用于精确地检测动态指纹70'的数据的复杂图案的能力,所述背景数据例如为与动态指纹70'相关的特定控制任务或本地时钟值,其使得能够将动态操作指纹70'聚集为可单独分析的有限子集,例如与时间接近度相关的子集或与特定控制任务相关的子集。

因此,可以通过由背景包络211(C)建立的背景来链接与给定控制任务相关联的分别由控制设备16a和16b生成的动态操作指纹70a'和动态操作指纹70b',其中背景包络211(C)用于包封动态指纹70a'和70b'并且与指纹70a'和70b'一起被传送。背景包络211可以将指纹70a'和70b'链接为与共同控制任务或相似的本地时钟存在相关。可以增加该背景包络作为附加指纹70c',将附加指纹70c'向上传递到安防设备31,最终使得接收到具有背景包络213的动态操作指纹70d',该背景包络213将背景包络211(C)中的动态指纹70a'和70b'收集到一起并且通过背景包络213(E)将背景包络211(C)与操作指纹70c'相连接。背景包络211和213的这种层级使得能够将专门的规则应用于每个单独的背景,从而使分析过程的复杂性最小化。

可以将类似的方法用于静态指纹70,其中,上游设备215b(例如控制器12)可以从下游设备215a(例如16)聚合静态指纹70,其中上游设备215b生成自身的静态指纹70,该静态指纹70是从下游设备215a接收到的指纹70的分类。然后,将这些新的静态指纹70进一步向上游转发至上游设备215c,并且此过程可以重复。指纹72与存储指纹100的初步匹配可以发生在中间的上游设备215b处,其中,仅这些匹配的结果(根据图5的判定块148)向上游发送至设备215c,假定在失配的情况下或在任何时间,较高级别的安防设备31可以请求:可以通过中间设备215b和215c来传递原始接收指纹70,而无需在较高级别处分类以进行分析。后一步骤有助于防止通过在中间设备215b和215c处攻击来篡改安防机构。

安全监视

在监视工业控制系统免受恶意攻击的背景下提供了以上描述。应当理解的是,还可以使用上述系统的元件来检测工业控制系统的操作中的不规则,所述不规则不一定起源于恶意企图,但仍可能影响工业控制系统的操作的完整性和安全。

如本文所用的“安全”是指在其中人的安全要求控制系统的正常运转的环境中所使用的专门工业控制系统(“安全系统”)的操作。安全系统可以包括与紧急停止按钮、光幕以及其他机器封锁相管理的电子装置。传统上,已经通过与用于控制与安全系统相关联的工业过程的工业控制系统分离的一组冗余电路实现了安全系统。这样的安全系统是从开关和继电器“硬连线的(hardwired)”,该继电器包括专门的“安全继电器”,其提供了故障情况(诸如焊接接触或卡住接触)的冗余信号和内部检查。

可以使用例如由通过引用并入本文的美国专利6,631,476、6,701,198、6,721,900、6,891,850和6,909,923所教导的专门的计算机硬件和网络协议来实现当前的安全系统。美国专利7,027,880——其也通过引用并入本文并且已被转让给本发明的受让人——描述了一种安全系统,该安全系统使用由安全系统执行的软件的“签名”,其中可以将所述“签名”与相同软件的先前认证版本的签名进行比较。该比较过程使得安全系统能够进行快速重新认证(或适当认证的确定)。本发明可以通过使用上述的作为安全签名的安防签名来扩展此构思,该安全签名提供工业控制系统的改变的完整指示,所述控制系统的改变不仅包括操作软件的改变而且还包括配置数据和环境数据的改变,其中,操作软件、配置数据和环境数据一起限定工业控制器的控制状态。另外地或可替代地,来自控制设备的多个元件的安全签名的聚合使得能够更全面地保证由多个元件构成的安全系统的完整性。此外,如上所述,安全系统可以通过在故障的原因方面调整归零(zeroing in)以帮助纠正该故障来提供用于安全系统通常不存在的诊断。该调整归零是通过上述方式获得越来越详细的安全签名来完成的。

与来自工业控制系统的安全认证状态相关联的任何元件的安全信号和对应存储签名之间不配合可以使系统按照以上讨论的方式向适当人员发送警报,并且还使得该系统转变为安全状态(也如上所述)。

仅出于参考的目的,在本文中适用了某些术语,因此这些术语不旨在进行限制。例如,术语诸如“上”、“下”、“上方”和“下方”是指在所参照的附图中的方向。术语诸如“前”、“背”、“后”,“底”和“侧”在一致但任意的参考系内描述了所述部件的一部分的取向,这通过参考对所讨论部件进行描述的文本和相关附图而变得明确。这样的用语可以包括以上特别提到的词、它们的衍生词、以及类似含义的词。同样,除非在上下文中明确地指出,否则提及结构的术语“第一”、“第二”以及其他这样数字性的术语不暗示次序或顺序。

当介绍本公开内容和示例性实施方式的要素或特征时,冠词“一”、“一个”、“该”和“所述”旨在表示存在一个或更多个这样的要素或特征。术语“包括”、“包含”和“具有”旨在是包容性的,并且表示除了具体指出的要素或特之外还可以存在附加的要素或特征。还应当理解的是,除非明确地被确定为执行的顺序,否则本文中所描述的方法步骤、过程和操作不被解释为必需要求其以所讨论的或所示出的具体顺序执行。还应当理解的是,可以采用附加的或可替选的步骤。

所提及的“控制器”、“工业控制器”和“计算机”应当理解为包括适于所述功能的任何通用计算设备,包括相对于本发明的其他元件而言本地地或远程地操作的工作站、工业控制器、个人计算机或台式计算机、服务器、云计算机等。

所提及的“微处理器”和“处理器”或“该微处理器”和“该处理器”应当理解为包括一个或更多个微处理器,所述一个或更多个微处理器可以在独立环境和/或分布式环境中进行通信并且因此被配置为经由有线或无线通信来与其他处理器进行通信,其中,这样的一个或更多个处理器可以被配置为对一个或更多个处理器控制设备进行操作,所述一个或更多个处理器控制设备可以是类似的或不同的设备。此外,除非另有说明,否则所提及的存储器可以包括一个或更多个处理器可读和可访问的存储器元件和/或部件,其可以在处理器控制设备的内部、在处理器控制设备的外部并且可以通过有线或无线网络进行访问。

术语“网络端口”不应被解释为限于特定类型的网络或端口,而是旨在广泛地涵盖经由有线和无线端口、与分离媒介(诸如电缆和光纤以及底板)连接的端口的通信以及各种协议,所述各种协议包括但不限于RS-232/422、USB、IEEE1394和1756-EN2T协议。

旨在本发明不限于本文所包含的实施方式和图示,并且权利要求书应当被理解为包括下述实施方式的修改形式,所述实施方式包括在所附权利要求的范围内的实施方式的部分和不同实施方式的要素的组合。本文中所述的包括专利出版物和非专利出版物的所有出版物通过引用整体并入本文。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1