用于在工业控制系统内识别已泄密设备的系统和方法与流程

文档序号:14958710发布日期:2018-07-18 00:05阅读:129来源:国知局

工业控制系统常常用于控制在工业环境中执行制造和/或生产作业的设备和/或机器的功能。例如,核电站可实施和/或依靠工业控制系统来调节电力的生产和/或分配。该工业控制系统可包括传感器、致动器、控制器、控制阀、电机、机器人设备和/或计算设备的集合。在这个示例中,由于在系统故障和/或故障情况下受到严重破坏,核电站可表示恐怖袭击的主要目标。

不幸的是,由于某些工业控制系统的高安全性需求,这些工业控制系统与之通信的网络协议很少有文档记录和/或为公众所用。结果,传统的安全技术可能无法有意义地监视工业控制系统内的网络流量,和/或检测到暗示特定设备可能已经泄密的可疑行为。因此,传统的安全技术在识别工业控制系统内的已泄密设备时可能在一定程度上是无效的,这可能使此类系统易于受到攻击。因而,本公开识别并解决了用于识别工业控制系统内的已泄密设备的改进系统和方法的需求。



技术实现要素:

如将在下文更详细地描述的,本公开描述了用于在工业控制系统内识别已泄密设备的各种系统和方法。在一个示例中,用于识别工业控制系统内的已泄密设备的计算机实现的方法可包括:(1)监视网络内的网络流量,该网络流量促进了包括至少一个工业设备的工业控制系统的通信;(2)至少部分地基于该网络流量创建用于工业设备的消息协议配置文件,该消息协议配置文件描述了(a)经由该网络用于与工业设备通信的网络协议和(b)工业设备的正常通信模式;(3)检测该网络内涉及工业设备和包括在工业控制系统中的至少一个其他计算设备的至少一条消息;(4)通过将该消息与工业设备的消息协议配置文件进行比较来确定该消息表示与工业设备的正常通信模式可疑地不一致的异常,并且然后(5)至少部分地基于表示异常的该消息来确定其他计算设备可能已经泄密。

在一个示例中,该方法也可包括响应于确定其他计算设备可能已经泄密而相对于其他计算设备执行至少一个安全操作。安全操作的示例包括而不限于:向至少一个附加计算设备发出其他计算设备已经泄密的警报通知;从工业网络隔离其他计算设备,以防止其他计算设备与工业控制系统内的任何附加计算设备进行通信;关闭其他计算设备,以防止其他计算设备与工业控制系统内的任何附加计算设备通信;阻断其他计算设备和工业控制系统内的任何附加计算设备之间的所有消息;通过将其他计算设备的至少一个计算任务传输到工业控制系统内的至少一个附加计算设备来替换工业网络内的其他计算设备;这些操作中的一个或多个操作的变型或组合,或任何其他合适的安全操作。

在一个示例中,该方法也可包括检测网络内源自或者去往该工业设备的消息。在该示例中,该方法还可包括识别包括在消息的字段中的参数。在一个示例中,消息协议配置文件可包括和/或表示包括在消息的字段中的参数其工业设备的正常通信模式的基线表示。此类参数的示例包括而不限于,包括在源自或者去往工业设备的消息中的操作码,源自或者去往工业设备的消息的大小,源自或者去往工业设备的消息的结构,源自或者去往工业设备的消息的序号,识别源自或者去往工业设备的特定数量的消息的计数器,包括在源自或去往工业设备的消息中的事务标识符,这些参数中的一个或多个参数的变型或组合,或任何其他合适的参数。

在一个示例中,该方法也可包括创建相对于该工业设备具有某些共同特征的消息集合。在该示例中,该方法还可包括通过分析消息的集合和/或将在消息的字段中识别的参数的表示插入到基线表示中来构建工业设备的正常通信模式的基线表示。除此之外或作为另外一种选择,该方法可包括确定消息和消息集合共享某些共同特征。

在一个示例中,该方法也可包括识别包括在消息的至少一个字段中的至少一个参数。在该示例中,该方法还可包括确定在该消息的字段中识别的参数与工业设备的正常通信模式的基线表示可疑地不一致。

在一个示例中,该方法也可包括至少部分地基于在消息的字段中所识别的参数来形成一组策略规则,该组策略规则表示工业设备的正常通信模式的参考。在该示例中,该方法还可包括在促进计算与工业设备通信的计算设备的风险评分的数学公式中进行加权,该数值表示与违反该组策略规则中的至少一个策略规则相关联的风险级别。

作为另一个示例,用于实现上述方法的系统可包括:(1)存储在存储器中的监视模块,其监视网络内的网络流量,该网络流量促进了用于包括至少一个工业设备的工业控制系统的通信;(2)存储在存储器中的配置文件模块,该配置文件模块至少部分地基于网络流量创建用于工业设备的消息协议配置文件,该消息协议配置文件描述了:(a)经由该网络用于与工业设备通信的网络协议和(b)工业设备的正常通信模式;(3)存储在存储器中的检测模块,该检测模块检测网络内涉及工业设备和至少一个其他计算设备的至少一条消息;(4)存储在存储器中的确定模块,该确定模块(a)通过将该消息与工业设备的消息协议配置文件进行比较来确定该消息表示与工业设备的正常通信模式可疑地不一致的异常,和(b)至少部分地基于表示异常的消息来确定其他计算设备可能已经泄密;以及(5)至少一个物理处理器,该至少一个物理处理器执行监视模块、配置文件模块、检测模块和确定模块。

作为又一个示例,可将上述方法编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,当该一个或多个计算机可执行指令由计算设备的至少一个处理器执行时可致使计算设备:(1)监视网络内的网络流量,该网络流量促进了包括至少一个工业设备的工业控制系统的通信;(2)至少部分地基于该网络流量创建用于工业设备的消息协议配置文件,该消息协议配置文件描述了(a)经由该网络用于与工业设备通信的网络协议和(b)工业设备的正常通信模式;(3)检测该网络内涉及工业设备和包括在工业控制系统中的至少一个其他计算设备的至少一条消息;(4)通过将该消息与工业设备的消息协议配置文件进行比较来确定该消息表示与工业设备的正常通信模式可疑地不一致的异常,并且然后(5)至少部分地基于表示异常的该消息来确定其他计算设备可能已经泄密。

来自上述实施方案中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施方案、特征和优点。

附图说明

附图示出了多个示例性实施方案并且为说明书的一部分。这些附图结合下面的描述展示并且说明本公开的各种原理。

图1为用于识别工业控制系统内的已泄密设备的示例性系统的框图。

图2为用于识别工业控制系统内的已泄密设备的另外示例性系统的框图。

图3为用于识别工业控制系统内的已泄密设备的示例性方法的流程图。

图4为从促进工业控制系统的通信的网络内所检测到的消息而创建的示例性消息协议配置文件的图示。

图5为从促进工业控制系统的通信的网络内所检测到的示例性消息的图示。

图6为能够实现本文所描述和/或例示的一个或多个实施方案的示例性计算系统的框图。

图7为能够实现本文所描述和/或例示的一个或多个实施方案的示例性计算网络的框图。

在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案可以接受进行各种修改和替代形式,但在附图中以举例的方式示出了特定实施方案并且将在本文详细描述这些实施方案。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。

具体实施方式

本发明整体涉及用于识别工业控制系统内已泄密设备的系统和方法。如将在下面更详细地解释的,即使通信协议未被记录和/或对公众不可用,通过监视工业网络内的网络流量,本文描述的各种系统和方法能够对经由工业网络进行通信的工业控制系统所使用的通信协议进行学习和/或逆向工程。在以这种方式对通信协议进行学习和/或逆向工程时,本文描述的各种系统和方法可将相似的流量分为具有共同特定特征的消息组(例如,相同的通信协议、相同的目的地因特网协议(ip)地址和/或相同的目的地端口号)。然后,这些系统和方法可构建消息协议配置文件,该配置文件描述了源设备或目的地设备的正常通信模式和/或用于通过工业网络与相应消息组通信的通信协议。

此外,通过以这种方式为源设备或目的地设备构建消息协议配置文件,然后将未来消息与消息协议配置文件进行比较,这些系统和方法可以能够确定任何未来消息是否表示与源设备或目的地设备的正常通信模式可疑地不一致的异常。假使一个或多个未来消息表示此类异常,则这些系统和方法可确定源设备或目的地设备可能已经泄密。

下面将参考图1至图2提供用于识别工业控制系统内已泄密设备的示例性系统的详细描述。将结合图3提供对应计算机实现的方法的详细描述。示例性消息协议配置文件和示例性消息的详细描述将分别结合图4和图5来提供。此外,将分别结合图6和图7提供能够实现本文所述实施方案中的一个或多个的示例性计算系统和网络体系结构的详细描述。

图1为用于识别工业控制系统内的已泄密设备的示例性系统100。如该图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如下面将更详细地解释的,示例性系统100可包括监视模块104,该监视模块监视网络内的网络流量,该网络流量促进用于包括至少一个工业设备的工业控制系统的通信。示例性系统100也可包括配置文件模块106,该文件模块至少部分地基于网络流量创建用于工业设备的消息协议配置文件,该消息协议配置文件描述了(1)经由网络用于与工业设备通信的网络协议和(2)工业设备的正常通信模式。

另外,并且如下面将更详细地描述的,示例性系统100可包括检测模块108,该检测模块检测网络内涉及工业设备和包括在工业控制系统中的至少一个其他计算设备的至少一条消息。示例性系统100可包括确定模块110,该确定模块(1)通过将该消息与工业设备的消息协议配置文件进行比较来确定该消息表示与工业设备的正常通信模式可疑地不一致的异常,以及(2)至少部分地基于表示异常的该消息来确定其他计算设备可能已经泄密。尽管被示为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。

在某些实施方案中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,所述软件应用程序或程序在被计算设备执行时,可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述,模块102中的一个或多个可表示存储并且被配置为在一个或多个计算设备上运行的软件模块,该计算设备诸如图2中示出的设备(如,计算设备202(1)-(n)、服务器206和/或工业设备208)、图6中的计算系统610,和/或图7中的示例性网络架构700的部分。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。

如图1所示,示例性系统100也可包括一个或多个消息协议配置文件,诸如消息协议配置文件120。在一个示例中,消息协议配置文件120可识别、表示和/或描述用于经由工业网络和/或与包括在工业控制系统中的设备进行通信的专有网络协议。在该示例中,消息协议配置文件120可识别、表示和/或描述设备之间交换的消息的结构、此类消息的字段和/或此类消息的序号。

除此之外或作为另外一种选择,消息协议配置文件120可识别、表示和/或描述包括在工业控制系统中的一个或多个工业设备的正常通信模式。例如,消息协议配置文件120可包括发送到一个或多个工业设备的消息中包括的典型有效载荷、参数和/或内容的基线表示。此类通信模式可包括和/或由通常包括在由设备交换的消息中的操作码、通常包括在此类消息中的数据参数和/或值、通常彼此通信的设备、和/或通常由设备在一天中的一段时间和/或某个时间进行交换的消息数量所表示。虽然图1仅示出了单个消息协议配置文件,但是其他实施方案可包括和/或涉及相应于包括在工业控制系统中和/或与工业控制系统接口的各种设备的多个消息协议配置文件。

图1中的示例性系统100可用多种方式来实现。例如,示例性系统100的全部或一部分可表示图2中的示例性系统200的部分。如图2所示,系统200可包括促进计算设备202(1)-(n)、服务器206和/或工业设备208之间通信的网络204。在一个示例中,计算设备202(1)-(n)中的一个或多个计算设备可用模块102中的一个或多个模块进行编程。除此之外或作为另外一种选择,服务器206和/或工业设备208可以用模块102的一个或多个模块进行编程。

在一个示例中,计算设备202(1)-(n)中的一个或多个计算设备可存储消息协议配置文件120(1)-(n)中的一个或多个消息协议配置文件。除此之外或作为另外一种选择,服务器206和/或工业设备208可存储消息协议配置文件120(1)-(n)中的一个或多个消息协议配置文件。

在一个实施方案中,图1的模块102中的一个或多个当由服务器206的至少一个处理器执行时,使得服务器206能够识别工业控制系统内的已泄密设备。例如,并且如下面将更详细地描述的,模块102中的一个或多个模块可使得服务器206:(1)监视网络204内的网络流量;(2)至少部分地基于网络流量创建用于工业设备208的消息协议配置文件120(1),该消息协议配置文件描述了:(a)用于经由网络204与工业设备208进行通信的网络协议和(b)工业设备208的正常通信模式;(3)检测网络204内涉及工业设备208和包括在工业控制系统中的计算设备202(1)的至少一条消息;(4)通过将该消息与工业设备208的消息协议配置文件120(1)进行比较来确定该消息表示与工业设备208的正常通信模式可疑地不一致的异常,并且然后(5)至少部分地基于表示异常的该消息来确定其他计算设备202(1)可能已经泄密。

计算设备202(1)-(n)通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202(1)-(n)的示例包括而不限于工业设备、控制器、笔记本电脑、平板电脑、台式机、服务器、蜂窝电话、个人数字助理(pda)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏控制台、这些设备中一个或多个设备的变型或组合、图6中的示例性计算系统610或任何其他合适的计算设备。

服务器206通常表示能够识别工业控制系统内的已泄密设备的任何类型或形式的计算设备。服务器206的示例包括而不限于,网络设备(诸如路由器和/或交换器)、网络服务器、应用服务器、安全服务器、web服务器和/或数据库服务器,所述服务器被配置为运行某些软件应用程序和/或提供各种网络、安全、web和/或数据库服务。虽然在图2中被示为单个实体,但是服务器206可另选地包括和/或表示在示例性系统200内运行的多个服务器。

工业设备208通常表示能够执行制造、服务和/或生产作业的任何类型或形式的计算机控制的机械设备。工业设备208的示例包括而不限于,传感器、致动器、控制器、控制阀、电机、机器人设备、嵌入式系统、计算设备、控制器,这些设备中的一者或多者的变型或组合,或任何其他合适的工业设备。

网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的示例包括而不限于内联网、专用网、工业网络、广域网(wan)、局域网(lan)、个域网(pan)、互联网、电力线通信(plc)、蜂窝网络(例如,全球移动通信系统(gsm)网络)、图7中的示例性网络体系结构700等等。网络204可使用无线或有线连接来促进通信和/或数据传输。在一个实施方案中,网络204可促进计算设备202(1)-(n)、服务器206和/或工业设备208之间的通信。

图3为用于识别工业控制系统内的已泄密设备的示例性计算机实现的方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图3中示出的步骤可通过图1中的系统100、图2中的系统200、图6中的计算系统610和/或图7中的示例性网络体系结构700的部分的组件中的一者或多者来执行。

如图3所示,在步骤302处,本文描述的一个或多个系统可监视网络内的网络流量,该网络流量促进了用于包括至少一个工业设备的工业控制系统的通信。例如,监视模块104可作为图2中的服务器206的一部分,监视网络204内的网络流量,该网络流量促进了用于包括工业设备208的工业控制系统的通信。本文所用的术语“网络流量”通常是指从一个计算设备传递到另一个计算设备的任何类型或形式的通信、消息和/或数据传输。

本文所用的术语“工业控制系统”通常是指控制和/或执行制造、服务和/或生产作业的任何类型或形式的系统和/或机构。在一个示例中,工业控制系统可包括图2中系统200包括的组件的全部或一部分。例如,工业控制系统可包括计算设备202(1)-(n)、网络204、服务器206和/或工业设备208中的一者或多者。

本文所描述的系统可以以各种方式执行步骤302。在一些示例中,监测模块104可以通过检测和/或识别在工业控制系统中包括的设备之间交换的消息来监测网络204内的网络流量。例如,监视模块104可检测和/或识别由计算设备202(1)发送到计算设备202(n)和/或工业设备208的消息。除此之外或作为另外一种选择,监视模块104可检测和/或识别由工业设备208发送到计算设备202(1)-(n)中的一个或多个计算设备的消息。因此,监视模块104可检测和/或计数源自或者去往工业设备208的消息。

在一些示例中,配置文件模块106可确定、推导和/或推断工业控制系统内的设备所使用的网络协议经由网络204彼此通信。例如,配置文件模块106可解析和/或分解包括在网络204内检测到的消息的有效载荷中的数据。在该示例中,配置文件模块106可查找和/或识别包括在这些消息的有效载荷中的数据内找到的某些模式。配置文件模块106然后可以从这些消息的有效载荷内找到的模式中对该网络协议进行学习和/或逆向工程。

在一些示例中,监视模块104可创建具有共同特定特征的消息的集合。例如,监视模块104可至少部分地基于消息的组件层(诸如因特网协议组的传输层4)、消息的目的地ip地址和/或消息的目的地端口号以将一组消息集合在一起。作为具体示例,监视模块104可对(1)根据传输层4封装的所有消息,(2)去往ip地址192.168.2.17的所有消息,以及(3)去往网络204内的端口号80的所有消息进行集合。一旦监视模块104以这种方式将消息组集合在一起,则配置文件模块106就能够对具有这些特定特征的设备所使用的网络协议进行学习和/或逆向工程。

因此,可以在工业控制系统内的单个设备(例如,工业设备208)发送和/或接收的消息中具体地对网络协议进行学习和/或逆向工程。除此之外或作为另外一种选择,可以在由工业控制系统内的几个或全部设备(例如,计算设备202(1)-(n)和工业设备208)发送和/或接收的消息中对网络协议进行学习和/或逆向工程。

在一个示例中,在检测到和/或识别网络流量内的此类消息时,监视模块104可识别包括在消息的字段中的参数。例如,在配置文件模块106已经从在某些消息的有效载荷中找到的模式中推导出和/或推断出网络协议之后,监视模块104可识别包括在通过网络204传播的消息的字段中的参数。在该示例中,消息的字段可表示和/或相应于网络协议的结构,该网络协议用于与包括在工业控制系统中的设备进行通信。此类参数的示例包括而不限于操作码、数据、消息大小、消息结构、消息计数、事务标识符、有效负载内容、序号、值、元数据,这些参数中的一个或多个参数的变型或组合,或任何其他合适的参数。

返回图3,在步骤304处,本文描述的系统中的一个或多个系统可至少部分地基于网络流量来创建用于工业设备的消息协议配置文件。例如,配置文件模块106可作为图2中服务器206的一部分至少部分基于网络流量以创建图2中用于工业设备208的消息协议配置文件120(1)。在该示例中,消息协议配置文件120(1)可识别和/或描述用于与工业设备208通信的网络协议。除此之外或作为另外一种选择,消息协议配置文件120(1)可识别和/或描述工业设备208的正常通信模式。换句话讲,消息协议配置文件120(1)可识别和/或描述包括在由工业设备208发送和/或接收的消息中的典型的有效载荷、参数和/或内容。

本文所描述的系统可以以各种方式执行步骤304。在一些示例中,配置文件模块106可从消息的字段中包括的参数来构建工业设备208的正常通信模式的基线表示。例如,配置文件模块106可识别特定组件层(如,传输层4)中携带的消息的集合,该消息去往工业设备208的ip地址(例如,192.168.2.17),和/或去往工业设备208上的特定端口号(例如,端口号80)。在该示例中,配置文件模块106可分析该集合以学习和/或识别包括在发送到工业设备208的消息中的典型的有效载荷、参数和/或内容。配置文件模块106然后可在工业设备208的正常通信模式的基线表示中插入和/或包括那些有效负载、参数和/或内容的表示。

除此之外或作为另外一种选择,配置文件模块106可在消息协议配置文件120(1)中包括和/或插入用于与工业设备208通信的网络协议的结构的描述。在一个示例中,网络协议的结构可以是特定于工业设备208。在另一个示例中,网络协议的结构可以对于包括在工业控制系统中的所有设备是通用的。

作为具体示例,配置文件模块106可创建和/或构建图4中用于工业设备208的消息协议配置文件120(1)。如图4所示,消息协议配置文件120(1)可包括和/或识别:相应的设备(在本示例中为“工业设备208”)、该设备的ip地址(在本示例中为“192.168.2.17”)、该设备上的相应端口号(在本示例中为“80”)、其中携带消息的组件层(在本示例中为“传输层4”)、指示哪些字节表示操作码的网络协议消息的有效载荷结构(在本示例中为“字节1和2”)、其中字节表示事务标识符(在本示例中为“字节3和4”)、其中字节表示参数或值(在本示例中为“字节5至10”)、其中字节代表序号(在本示例中为“字节11”)、序号方案(在本示例中为“request:0”、“requestacknowledge:1”、“datatransmission:2”和“datareceiptacknowledge:3”)、指示通常包括在传入消息中的操作码的设备的正常通信模式(在本示例中为“0x010f”、“0x00ff”、“0x00aa”和“0x1234”)、通常包括在传入消息中的参数(在本示例中为“0x000000至0x000fff”)、通常包括在传出消息中的操作码(在本示例中为“0x0002”、“0x121f”、“0xff00”和“0x1234”)和/或通常包括在传出消息中的参数(在本示例中为“0x010101和0xffffff”)。

在一些示例中,配置文件模块106可形成和/或开发一组策略规则,该组策略规则表示用于工业设备208的正常通信模式的参考。例如,配置文件模块106可分析在消息的字段中所识别的参数。在该示例中,配置文件模块106然后可基于对这些字段内所识别的参数的分析来形成和/或开发一组策略规则。除此之外或作为另外一种选择,配置文件模块106可结合参数被识别的消息来标记那些策略规则。这组策略规则可指示和/或表示工业设备208的正常通信模式。因此,这组策略规则可以通过比较的方式用来确定涉及工业设备208的未来消息是否表示异常通信。

在一个示例中,该组策略规则可以被并入数学公式和/或由数学公式表示,该数学公式促进了与工业设备208通信的设备的风险评分的计算。例如,配置文件模块106可形成和/或开发包括某些数值的数学公式,这些数值表示与违反每个策略规则相关联的风险级别。在该示例中,配置文件模块106可根据违反相应策略规则的重要性对一个或多个数值进行加权。换句话讲,加权可以相应于和/或与如何告知和/或有意义的违反以确定某个设备是否已经泄密相称。

返回图3,在步骤306处,本文描述的一个或多个系统可检测网络内涉及工业设备和包括在工业控制系统中的至少一个其他计算设备的至少一个消息。例如,检测模块108可作为图2中服务器206的一部分在网络204内检测涉及工业设备208和计算设备202(1)-(n)中的一个或多个计算设备的至少一条消息。在一个示例中,该消息可以通过计算设备202(1)-(n)中的一个计算设备经由网络204发送到工业设备208。在另一个示例中,该消息可以通过工业设备208经由网络204发送到计算设备208(1)-(n)中的一个或多个计算设备。

本文所描述的系统可以以各种方式执行步骤306。在一些示例中,检测模块108可在监视网络204内的网络流量的同时检测和/或拦截该消息。例如,检测模块108可在到达网络204内的工业设备208的途中检测和/或拦截图5中的消息500。如图5所示,消息500可识别目的地ip地址(在本示例中为“192.168.2.17”),目的地端口号(在本示例中为“80”),携带消息的组件层(在本示例中为“传输层4”),包括字节1和2(在本示例中为“0x4f32”)、字节3和4(在本示例中为“0x000f”)、字节5至10(在本示例中为“0x071830ab6e”)和字节11(在本示例中为“0x02”)的有效载荷参数。

在一个示例中,确定模块110可确定该消息与去往工业设备208的消息集合所共享的某些特性。例如,确定模块110可根据相同的组件层(例如,传输层4)进行封装,去往相同的ip地址(例如,192.168.2.17)和/或去往与创建消息协议配置文件120(1)的消息集合相同的端口号(例如,端口号80)。在该示例中,确定模块110可以通过将该消息中发现的元数据与消息协议配置文件120(1)进行比较来实现该确定。

返回图3,在步骤308处,本文描述的系统中的一个或多个可通过将该消息与工业设备的消息协议配置文件进行比较来确定该消息表示的异常。例如,确定模块110可以作为图2中服务器206的一部分,通过将该消息与消息协议配置文件120(1)进行比较来确定该消息表示的异常。这种异常可能表示和/或暗示该消息与工业设备208的正常通信模式可疑地不一致。如本文所用的关于正常通信模式的术语“可疑地不一致”通常是指任何类型或形式的偏差,其相应于和/或引起关于消息的正常状态和/或合法性的某种级别的怀疑和/或质疑。

本文所描述的系统可以以各种方式执行步骤308。在一些示例中,确定模块110可至少部分地基于包括在消息的字段中的参数来确定消息表示的异常。例如,确定模块110可识别消息的某些参数,诸如操作码、有效载荷大小、序号和/或事务标识符。在该示例中,确定模块110可确定该消息内所识别的那些参数中的至少一个与工业设备208的正常通信模式的基线表示可疑地不一致。

返回图3,在步骤310处,本文描述的系统中的一个或多个系统可至少部分地基于表示异常的消息来确定其他计算设备可能已经泄密。例如,确定模块110可作为图2中服务器206的一部分至少部分地基于表示异常的消息来确定计算设备202(1)-(n)中的一个计算设备可能已经泄密。换句话讲,由于(1)该消息涉及计算设备和工业设备208并且(2)该消息表示相对于工业设备208的正常通信模式的异常,因此确定模块110可确定该计算设备已经受到攻击者的泄密。作为这种泄密状态的结果,该计算设备可能正在向工业设备208发送包括非法指令的消息。

本文所描述的系统可以以各种方式执行步骤310。在一些示例中,确定模块110可至少部分地基于计算设备的风险评分来确定该计算设备已经泄密。例如,确定模块110可对计算设备202(1)的风险评分进行计算,该模块计算由计算设备202(1)向工业设备208发送的一条或多条消息。在该示例中,可以通过将该消息的某些参数应用于数学公式来计算风险评分。如上所述,该数学公式可并入和/或计算一组策略规则,该组策略规则表示用于工业设备208的正常通信模式的参考。

继续该示例,风险评分可反映由计算设备202(1)发送的消息是否违反了并入到数学公式中的任何策略规则。因此,假使该消息违反了并入到数学公式中的那些策略规则到足够的程度,则确定模块110可确定该风险评分超过了某个阈值。结果,确定模块110可确定计算设备202(1)已经泄密。

响应于确定计算设备202(1)-(2)中的一个计算设备已经泄密,安全模块112可以相对于已泄密的计算设备执行一个或多个计算设备安全操作。此类安全操作的示例包括而不限于:向至少一个附加计算设备发出关于已经泄密其他计算设备的警报通知;从工业网络隔离已经泄密计算设备,以防止其他计算设备与工业控制系统内的任何附加计算设备进行通信;关闭已泄密计算设备,以防止其他计算设备与工业控制系统内的任何附加计算设备通信;阻断已泄密计算设备和工业控制系统内的任何附加计算设备之间的所有消息;通过将已泄密计算设备的至少一个计算任务传输到工业控制系统内的至少一个附加计算设备来替换工业网络内的已泄密计算设备;这些操作中的一个或多个操作的变型或组合,或任何其他合适的安全操作。

作为具体示例,监视模块104可监视网络内的网络流量,该网络流量促进了用于工业控制系统的通信,该工业控制系统包括分配192.168.2.17作为其ip地址的臂致动器。在该示例中,监视模块104可检测和/或识别根据传输层4封装并且去往ip地址192.168.2.17.处的端口号80的各种消息。监视模块104可至少部分地基于它们的共同特征将这些消息集合在一起。在将这些足够量的共享特征的消息集合在一起时,监测模块104可将该消息集合馈送给配置文件模块106,以创建用于臂致动器的消息协议配置文件。

在该示例中,配置文件模块106可通过分析该消息集合来构建臂致动器的正常通信模式的基线表示。例如,配置文件模块106可在这些消息中识别由臂致动器接收的所有有效操作码。除此之外或作为另外一种选择,配置文件模块106可在这些消息中识别由臂致动器接收的所有数据和/或值。此类数据和/或值可表示臂致动器的有效移动角度。分析模块106可在用于臂致动器的消息协议配置文件中包括和/或插入臂致动器的正常通信模式的基线表示。

假使工业控制系统中包括的控制器受到攻击者的泄密,则控制器可能会开始向臂致动器发送非法消息。此类非法消息可包括无效的操作码和/或无效的数据或值。因此,此类非法消息可包括如果由臂致动器执行则使得臂致动器执行无效动作(诸如将臂致动器移动到无效角度)的指令。

继续该示例,检测模块108可检测和/或识别由工业网络内的控制器发送的这些非法消息中的一个非法消息。确定模块110可通过将该非法消息与臂致动器的消息协议配置文件进行比较来确定该非法消息表示与臂致动器的正常通信模式可疑地不一致的异常。确定模块110也可确定控制器已经泄密,因为该非法消息表示异常。

如上面结合图1至图5所解释的,工业安全技术可通过实施两阶段法来识别工业控制系统内的已泄密设备。首先,工业安全技术可实施一个训练阶段,该阶段涉及通过使用网络集合器来收集工业控制系统内的网络流量。在一个示例中,网络集合器可基于传输层4协议、目的地ip地址和目的地端口号将消息组集合在一起。在收集足够量的流量并将其集合为一组时,网络集合器可将集合的消息组传递给网络分析器,该网络分析器基于该集合的消息组创建消息协议配置文件。

该网络分析器可基于用于创建那些配置文件的集合的消息组来标记所得到的消息协议配置文件。工业安全技术可利用标记的消息协议配置文件来创建策略规则,该策略规则表示工业控制系统内的设备的正常通信模式(例如,正常消息有效载荷)的参考。

其次,工业安全技术可实施检测阶段,其涉及向异常检测器提供两个信息馈送。在此示例中,信息的一个馈送可包括从标记的消息协议配置文件创建的策略规则。另一种信息馈送可包括由网络集合器收集的消息,同时继续监视工业控制系统内的网络流量。异常检测器然后可将一个馈送的策略规则应用于其他馈送的消息。这样,异常检测器可确定任何消息是否违反该策略规则。假使发生某些违规事件,则工业安全技术可能会发出警报,指示该工业控制系统内的某个特定设备已被泄密。

图6为能够实现本文描述和/或例示的实施方案中的一个或多个实施方案的示例性计算系统610的框图。例如,计算系统610的全部或一部分可单独地或与其他元件结合来执行本文所述的步骤中的一个或多个步骤(诸如图3所示的步骤中的一个或多个步骤)和/或作为用于执行的装置。计算系统610的全部或一部分也可执行本文描述和/或例示的任何其他步骤、方法或过程和/或作为用于执行的装置。

计算系统610在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统610的示例包括而不限于:工作站、笔记本电脑、客户端方终端、服务器、分布式计算系统、手持设备或任何其他计算系统或设备。在其最基本的配置中,计算系统610可包括至少一个处理器614和系统存储器616。

处理器614通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器614可接收来自软件应用程序或模块的指令。这些指令可使处理器614执行本文描述和/或例示的一个或多个示例性实施方案的功能。

系统存储器616通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器616的示例包括而不限于:随机存取存储器(ram)、只读存储器(rom)、闪存存储器或任何其他合适的存储器设备。尽管不是必需的,但在某些实施方案中,计算系统610可包括易失性存储器单元(诸如,例如,系统存储器616)和非易失性存储设备(诸如,例如,主存储设备632,如下详述)两者。在一个示例中,图1的模块102中的一个或多个模块可加载到系统存储器616中。

在某些实施方案中,除处理器614和系统存储器616之外,示例性计算系统610还可包括一个或多个组件或元件。例如,如图6所示,计算系统610可包括存储器控制器618、输入/输出(i/o)控制器620和通信接口622,它们中的每一者都可经由通信基础结构612互连。通信基础结构612通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构612的示例包括而不限于:通信总线(诸如工业标准体系结构(isa))、外围组件互连(pci)、pciexpress(pcie)或类似的总线)和网络。

存储器控制器618通常表示能够处理存储器或数据或者控制计算系统610的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施方案中,存储器控制器618可经由通信基础结构612来控制处理器614、系统存储器616和i/o控制器620之间的通信。

i/o控制器620通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,i/o控制器620可控制或促进计算系统610的一个或多个元件之间的数据传输,这些元件是诸如处理器614、系统存储器616、通信接口622、显示适配器626、输入接口630和存储接口634。

通信接口622在广义上表示能够促进示例性计算系统610与一个或多个另外设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口622可促进计算系统610与包括另外计算系统的专用或公共网络之间的通信。通信接口622的示例包括而不限于:有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施方案中,通信接口622可经由与网络,诸如互联网的直接链接来提供与远程服务器的直接连接。通信接口622也可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。

在某些实施方案中,通信接口622还可表示主机适配器,该主机适配器被配置为经由外部总线或通信信道来促进计算系统610与一个或多个另外网络或存储设备之间的通信。主机适配器的示例包括但不限于:小型计算机系统接口(scsi)主机适配器、通用串行总线(usb)主机适配器、电气与电子工程师协会(ieee)1394主机适配器、高级技术附件(ata)、并行ata(pata)、串行ata(sata)和外部sata(esata)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口622还可允许计算系统610参与分布式或远程计算。例如,通信接口622可接收来自远程设备的指令或将指令发送到远程设备以供执行。

如图6所示,计算系统610也可包括至少一个显示设备624,该显示设备经由显示适配器626联接到通信基础结构612。显示设备624通常表示能够以可视方式显示由显示适配器626转发的信息的任何类型或形式的设备。类似地,显示适配器626通常表示被配置为转发来自通信基础结构612(或来自帧缓冲器,如本领域中所公知的)的图形、文本和其他数据以在显示设备624上显示的任何类型或形式的设备。

如图6所示,示例性计算系统610还可包括经由输入接口630联接到通信基础结构612的至少一个输入设备628。输入设备628通常表示能够向示例性计算系统610提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备628的示例包括而不限于:键盘、指示设备、语音识别设备或任何其他输入设备。

如图6所示,示例性计算系统610还可包括主存储设备632和经由存储接口634联接到通信基础结构612的备份存储设备633。存储设备632和633通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备632和633可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口634通常表示用于在存储设备632和633与计算系统610的其他组件之间传输数据的任何类型或形式的接口或设备。

在某些实施方案中,存储设备632和633可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于:软盘、磁带、光盘、闪存存储器设备等。存储设备632和633还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统610内的其他类似结构或设备。例如,存储设备632和633可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备632和633还可为计算系统610的一部分,或者可为通过其他接口系统进行访问的独立设备。

可将许多其他设备或子系统连接到计算系统610。相反地,无需图6中示出的所有组件和设备都存在,亦可实践本文描述和/或例示的实施方案。上文提及的设备和子系统还可通过不同于图6所示的方式互连。计算系统610也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施方案可被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括而不限于:传输型介质(诸如载波)和非暂态型介质(诸如磁存储介质,例如,硬盘驱动器、带驱动器和软盘)、光存储介质(例如,光盘(cd)、数字视频盘(dvd)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。

可将包含计算机程序的计算机可读介质加载到计算系统610中。然后可将计算机可读介质上存储的全部或部分计算机程序存储在系统存储器616和/或存储设备632和633的各个部分中。当由处理器614执行时,加载到计算系统610中的计算机程序可使处理器614执行执行本文描述和/或例示的示例性实施方案中的一个或多个实施方案的功能和/或作为用于执行所述功能的装置。除此之外或作为另外一种选择,可在固件和/或硬件中实现本文描述和/或例示的示例性实施方案中的一者或多者。例如,计算系统610可被配置为用于实现本文所公开的示例性实施方案中的一个或多个的专用集成电路(asic)。

图7为示例性网络体系结构700的框图,其中客户端系统710、720和730以及服务器740和745可联接到网络750。如上所详述,网络体系结构700的全部或一部分可单独地或与其他元件结合来执行本文所公开的步骤中的一个或多个步骤(诸如图3所示的步骤中的一个或多个步骤)和/或作为用于执行其的装置。网络体系结构700的全部或一部分还可用于执行本公开中阐述的其他步骤和特征和/或作为用于执行其的装置。

客户端系统710、720和730通常表示任何类型或形式的计算设备或系统,诸如图6中的示例性计算系统610。类似地,服务器740和745通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络750通常表示任何电信或计算机网络包括,例如,内联网、wan、lan、pan或互连网。在一个示例中,客户端系统710、720和/或730和/或服务器740和/或745可包括图1的系统100的全部或一部分。

如图7所示,一个或多个存储设备760(1)-(n)可直接附接到服务器740。类似地,一个或多个存储设备770(1)-(n)可直接附接到服务器745。存储设备760(1)-(n)和存储设备770(1)-(n)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方案中,存储设备760(1)-(n)和存储设备770(1)-(n)可表示被配置为使用各种协议(诸如网络文件系统(nfs)、服务器消息块(smb)或通用互联网文件系统(cifs))与服务器740和745进行通信的网络附接存储(nas)设备。

服务器740和745也可连接到存储区域网络(san)架构780。san架构780通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。san架构780可促进服务器740和745与多个存储设备790(1)-(n)和/或智能存储阵列795之间的通信。san架构780还可通过网络750以及服务器740和745以这样的方式促进客户端系统710、720和730与存储设备790(1)-(n)和/或智能存储阵列795之间的通信:设备790(1)-(n)和阵列795呈现为客户端系统710、720和730的本地附接设备。与存储设备760(1)-(n)和存储设备770(1)-(n)相同,存储设备790(1)-(n)和智能存储阵列795通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。

在某些实施方案中,并参照图6的示例性计算系统610,通信接口,诸如图6中的通信接口622,可用于在每个客户端系统710、720和730与网络750之间提供连接性。客户端系统710、720和730可能能够使用例如网页浏览器或其他客户端软件来访问服务器740或745上的信息。此类软件可允许客户端系统710、720和730访问由服务器740、服务器745、存储设备760(1)-(n)、存储设备770(1)-(n)、存储设备790(1)-(n)或智能存储阵列795托管的数据。尽管图7示出了使用网络(诸如互联网)来交换数据,但本文描述和/或例示的实施方案并非仅限于互联网或任何特定的基于网络的环境。

在至少一个实施方案中,本文所公开的一个或多个示例性实施方案中的全部或一部分可被编码为计算机程序并加载到服务器740、服务器745、存储设备760(1)-(n)、存储设备770(1)-(n)、存储设备790(1)-(n)、智能存储阵列795或它们的任意组合上并加以执行。本文所公开的一个或多个示例性实施方案中的全部或一部分也可被编码为计算机程序,存储在服务器740中,由服务器745运行,以及通过网络750分配到客户端系统710、720和730。

如上文所详述,计算系统610和/或网络体系结构700的一个或多个组件可执行和/或作为一种装置用于单独地或与其他元件结合来执行用于识别工业控制系统内已泄密设备的示例性方法的一个或多个步骤。

虽然上述公开内容使用特定框图、流程图和示例阐述了各种实施方案,但每个框图组件、流程图步骤、操作和/或本文描述和/或例示的组件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实现。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。

在一些示例中,图1中的示例性系统100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。

在各种实施方案中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述功能中的一个或多个的多租户应用。例如,本文所述软件模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。

根据各种实施方案,图1中的示例性系统100的全部或一部分可在虚拟环境内实现。例如,本文所述模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常指由虚拟机管理器(例如,管理程序)从计算硬件中抽象出来的任何操作系统环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常指覆盖操作系统环境和/或从操作系统环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。

在一些示例中,图1中的示例性系统100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些示例中,移动计算环境可具有一个或多个区别特征,例如,包括对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速度计等提供的)位置和移动数据、限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序),等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。

此外,图1中的示例性系统100的全部或一部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,使用由一个或多个信息管理系统产生的数据和/或产生被一个或多个信息管理系统使用的数据。如本文所用,术语“信息管理”可指数据的保护、组织和/或存储。信息管理系统的示例可包括但不限于:存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。

在一些实施方案中,图1中的示例性系统100的全部或一部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据和/或与一个或多个信息安全系统通信。如本文所用,术语“信息安全”可指对受保护数据的访问的控制。信息安全系统的示例可包括而不限于:提供受管理的安全服务的系统、数据丢失防护系统、身份认证系统、访问控制系统、加密系统、策略遵循系统、入侵检测与防护系统、电子发现系统等等。

根据一些示例,图1中的示例性系统100的全部或一部分可表示一个或多个端点安全系统的部分、与一个或多个端点安全系统通信和/或受一个或多个端点安全系统保护。如本文所用,术语“端点安全”可指保护端点系统免遭未经授权和/或非法使用、访问和/或控制。端点保护系统的示例可包括而不限于:反恶意软件系统、用户认证系统、加密系统、保密系统、垃圾邮件过滤服务,等等。

本文描述和/或例示的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不一定需要按例示或讨论的顺序来执行。本文描述和/或例示的各种示例性方法也可省略本文描述或例示的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外步骤。

虽然在全功能计算系统的背景中描述和/或例示了各种实施方案,但这些示例性实施方案中的一个或多个可作为各种形式的程序产品来分配,而不顾及用于实际执行分配的计算机可读介质的特定类型。本文所公开的实施方案也可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个示例性实施方案。

此外,本文所述的模块中的一个或多个可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。除此之外或作为另外一种选择,本文所述模块中的一个或多个模块可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。

提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。

除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或组件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“...中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

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