用于控制工业控制系统的文件执行的系统和方法与流程

文档序号:15523078发布日期:2018-09-25 20:09阅读:118来源:国知局
本文公开的主题涉及工业控制系统,并且更具体地涉及使工业控制系统的操作安全。
背景技术
:例如自动化发电系统(例如风力、水力和燃气涡轮机系统)和自动化制造系统(例如炼油厂、化学制造工厂等)的工业控制系统是现代工业的普遍特征。对于这样的工业控制系统,工业控制器可一般地控制系统的操作。例如,工业控制系统中的某些装置(例如,传感器、泵、阀门、致动器等)可由该工业控制器控制,并且可将数据报告给该工业控制器。此外,该工业控制器可执行指令(例如,固件和/或应用程序),其可一般地使该工业控制器能够控制工业控制系统(例如,燃气涡轮机系统)的操作。技术实现要素:与最初要求权利的发明在范围上相当的某些实施例在下文概述。这些实施例不意在限制要求权利的发明的范围,而相反这些实施例只意在提供本发明的可能形式的简短概要。实际上,本发明可包含与下文阐述的实施例相似或不同的多种形式。在一个实施例中,一种系统包括控制器,其配置成控制过程,并且存储至少一个二进制文件,其中该至少一个二进制文件从至少一个源文件生成,其中该至少一个源文件包括配置成由该控制器中的处理器执行的指令。该控制器还可配置成检索包括从该至少一个二进制文件得出的第一哈希键值的白名单文件,并且基于该白名单文件执行可执行文件,其中该可执行文件包括该源文件。在另一个实施例中,一种方法包括通过使用可执行文件确定输入二进制数,其中该可执行文件配置成由控制器执行,从该输入二进制数计算输入哈希键值,确定该输入哈希键值是否包括在白名单中,其中该白名单包括从多个验证的二进制文件计算的多个哈希键值,并且如果该输入哈希键匹配该白名单中的多个哈希键值中的一个则允许该可执行文件执行。在第三实施例中,一种有形的非暂时性计算机可读介质包括配置成由工业控制器的处理器执行的指令。这些指令配置成确定输入二进制文件的输入哈希键值,并且如果该输入哈希键值没有在白名单中找到则阻止该输入二进制文件的执行,该白名单包括多个哈希键值。提供一种系统,其包括:控制器,其配置成:控制过程;存储至少一个二进制文件,其中所述至少一个二进制文件从至少一个源文件生成,其中所述至少一个源文件包括配置成由所述控制器中的处理器执行的指令;检索包括从所述至少一个二进制文件得出的第一哈希键值的白名单文件;并且基于所述白名单文件执行可执行文件,其中所述可执行文件包括所述源文件。优选的,所述控制器配置成:从所述可执行文件得出第二哈希键值;比较所述第一哈希键值与所述第二哈希键值;并且如果所述第一哈希键值匹配所述第二哈希键值则执行所述可执行文件。优选的,所述控制器配置成如果所述第一哈希键值不匹配所述第二哈希键值则阻止所述可执行文件的执行。优选的,所述控制器配置成如果所述第一哈希键值不匹配所述第二哈希键值则发出警告、发出警报、写到记录文件或其的组合。优选的,所述控制器配置成接收包括所述可执行文件的命令。优选的,哈希函数配置成得出所述第一哈希键值。优选的,所述哈希函数包括循环冗余校验(CRC)、消息摘要(MD)算法、安全哈希算法(SHA)或其的组合。优选的,所述第一哈希键值包括至少160比特。优选的,所述控制器配置成在请求时、以预定时间间隔、随机地或其的组合通过白名单有证实条件地执行所述可执行文件。优选的,所述控制器包括工业控制器,其配置成控制工业过程、工业设备或其的组合。优选的,所述白名单包括加密的白名单,并且所述控制器配置成解密所述加密的白名单。优选的,所述控制器包括配置成提供冗余操作的三模块冗余(TMR)控制器。提供一种方法,其包括:通过使用可执行文件确定输入二进制数,其中所述可执行文件配置成由控制器执行;从所述输入二进制数计算输入哈希键值;确定所述输入哈希键值是否包括在白名单中,其中所述白名单包括从多个验证的二进制文件计算的多个哈希键值;并且如果所述输入哈希键匹配所述白名单中的所述多个哈希键值中的一个则允许所述可执行文件执行。优选的,所述方法包括如果所述输入哈希键不匹配所述白名单中的所述多个哈希键值中的至少一个则阻止所述可执行文件执行。优选的,所述控制器配置成控制发电过程、发电设备、气化系统、气体处置系统、涡轮机系统、发电系统或其的组合。优选的,所述方法包括:通过使用系统二进制文件的列表确定所述输入二进制数是否匹配系统二进制数;如果所述输入二进制数不匹配系统二进制文件的所述列表中的所述系统二进制文件中的一个则阻止所述可执行文件执行。优选的,所述方法包括如果所述输入哈希键不匹配所述白名单中的所述多个哈希键值中的至少一个则存储执行防止信息、输出警告、输出通知或其的组合。提供一种有形的非暂时性计算机可读介质,其包括配置成由工业控制器的处理器执行的指令,所述指令配置成:确定输入二进制文件的输入哈希键值;并且如果所述输入哈希键值没有在白名单中找到则阻止所述输入二进制文件的执行,所述白名单包括多个哈希键值。优选的,所述指令配置成当所述输入哈希键值在所述白名单中找到时执行所述输入二进制文件。优选的,所述指令配置成通过使用循环冗余校验(CRC)、消息摘要算法(MD)、安全哈希算法(SHA)或其的组合确定所述输入二进制文件的所述输入哈希键值。附图说明当参照附图(其中类似的符号在整个图中代表类似的部件)阅读下列详细描述时,本发明的这些和其他特征、方面和优点将变得更好理解,其中:图1是根据本公开的方面的工业控制系统和构建系统的实施例的示意图;图2是根据本公开的方面的构建系统通过其构建可执行文件和白名单以用于后面由工业控制器使用的过程的实施例的流程图;图3是根据本公开的方面的工业控制器通过其接收白名单并且将白名单解密的过程的实施例的流程图;图4是根据本公开的方面的工业控制器通过其使用解密的白名单来在执行之前证实可执行文件的过程的实施例的流程图;以及图5是根据本公开的方面的工业控制器通过其在执行之前证实可执行文件的过程的实施例的详细流程图。具体实施方式本发明的一个或多个特定实施例将在下文描述。为了提供这些实施例的简洁描述,可不在该说明书中描述实际实现的所有特征。应该意识到在任何这样的实际实现的开发中,如在任何工程或设计项目中,必须做出许多实现特定的决定以达到开发者的特定目标,例如遵守系统有关和业务有关的约束,其可在实现之间变化。此外,应该意识到这样的开发努力可能是复杂并且耗时的,但对于具有本公开的利益的那些普通技术人员仍将是设计、制作和制造的例行任务。当介绍本发明的各种实施例的要素时,冠词“一(a)”、“一(an)”、“该”和“所述”意在表示存在要素中的一个或多个。术语“包括”、“包含”和“具有”意在为包括性的并且表示可存在除列出的要素外的附加要素。另外,如本文使用的,术语“可执行文件”和“二进制文件”两者一般都可指包括可由处理器(例如,工业控制器的处理器)执行的指令(例如,二进制指令)的计算机可读文件。此外,如本文使用的,术语“软件开发者”一般可指采用源代码和/或可执行文件的形式开发、维护和/或提供指令来控制工业控制器的操作的组织。同样,如本文使用的,术语“白名单”可指包括识别授权在工业控制器上运行的可执行文件的名单的文件。另外,术语“授权的”可在本文中用于指被证实来自可信任源(即,软件开发者)并且其的内容被证实为与当它由该可信任源提供时相同的可执行文件。如上文提到的,工业控制器可一般地执行可使该工业控制器能够控制工业控制系统的操作的指令(例如,采用一个或多个可执行文件的形式存储的基码、固件和/或应用程序)。这些指令可在将工业控制器供应给客户之前最初由制造商加载到工业控制器上(例如,到工业控制器的存储器或数据存储组件中)。这些指令(例如,基码、固件和/或应用程序)还可随后更新(例如,由硬件制造商)并且提供给客户,使得存储在工业控制器上的指令可更新来增强功能性和/或修正指令中的错误或差错。一旦工业控制器的存储器中的指令已经更新,那么工业控制器可执行这些更新的指令来控制工业控制系统的操作。然而,在某些情况下,对于工业控制器在执行前证实存储用于工业控制器的指令的每个可执行文件被授权可以是可期望的。即,在执行前确保存储用于工业控制器的指令的每个可执行或二进制文件被证实为从可信任或声誉良好的源(例如,软件开发者)提供可以是可期望的。此外,证实每个可执行或二进制文件自它由该可信任源准备以来(例如在硬件制造商和客户之间运输中)没有被改变可以是可期望的。此外,能够快速并且使用有限资源(例如,存储器空间和处理器时间)执行可执行文件的该证实可以是可期望的,以便不另外干扰工业控制器的操作。因此,现在公开的系统和方法在可执行文件由工业控制器执行之前使用白名单系统采用有效的方式实现它们中的每个的身份和内容两者的证实。即,如下文详细讨论的,现在公开的实施例利用可由软件开发者连同可执行文件的每个版本(例如,每个软件安装或更新版本)提供的安全白名单文件。该白名单文件一般包括多个值,并且这些值中的每个可与授权的可执行文件关联。通过在执行之前证实每个可执行文件具有白名单中的关联条目,现在公开的实施例向工业控制器提供改进的安全性来阻止或防止不期望的和/或恶意指令(即,来自不可信任源的指令)的执行。如下文详细讨论的,现在公开的白名单文件包括特定软件版本中授权的可执行文件的哈希键值的集合。即,在构建每个可执行文件后,该可执行文件可提供为到哈希函数的输入并且与该可执行文件关联的哈希键值输出可存储在白名单文件中。该哈希函数可包括循环冗余校验(CRC)、消息摘要(MD)算法、安全哈希算法(SHA)或其的组合。此外,白名单文件可安全地提供给工业控制器(例如,在封装和/或传送和由工业控制器解密之前加密)。工业控制器在执行特定可执行文件之前还可提供该特定可执行文件给相同的哈希函数(例如,循环冗余校验[CRC]、MD5、SHA-1或其他哈希函数),并且可搜索白名单文件来确定从哈希函数输出的哈希键值是否列在白名单文件中。如果哈希键值位于白名单文件中,工业控制器可断定该特定可执行文件被授权(例如,来自可信任源并且自它被构建以来未改变)并且继续于执行该文件。然而,如果哈希键值不位于白名单文件中,工业控制器可阻止该特定可执行文件的执行。记下前述,图1是图示工业控制系统10的示意图。该图示的工业控制系统10包括工业控制器12,其可耦合于网络14来控制多个现场装置16、18和20的操作。例如,图示的工业控制器12经由网络14从多个现场装置16、18和20(例如,温度传感器、压力传感器、电压传感器、控制阀、致动器或工业控制系统的相似现场装置)接收传感数据来监测并且控制燃气涡轮机系统22的操作。在其他实施例中,不是燃气涡轮机系统22,由工业控制系统10监测并且控制的系统可包括例如任何自动化制造系统(例如,炼油系统、化学生产系统或其他自动化制造系统)或自动化发电系统(例如,电厂、蒸汽涡轮机系统、风力涡轮机系统、气化系统和相似的自动化发电系统)。例如,在实施例中,气化系统可包括配置成将碳质原料气化来生成合成气体的气化器、配置成处理该合成气体来去除不期望的要素(例如,酸性气体)的气体处置单元、配置成燃烧该合成气体来驱动涡轮机的燃烧室和耦合于该涡轮机配置成产生电力的发电机。在这样的实施例中,工业控制器12可使用现场装置16、18和20监测并且控制气化系统的各种组件(例如,气化器、气体处理单元、燃烧室和涡轮机)。对于图示的工业控制系统10,现场装置16、18和20通信耦合于工业控制器12(例如,经由网络14),同时监测并且控制燃气涡轮机系统22的操作的各种方面和参数(例如,监测燃气涡轮机系统的燃烧室中的温度,控制耦合于燃气涡轮机系统的轴的发电机的电压输出,调整燃料进入燃烧室的流动,控制阀来调整到气体处理器的气流,控制热回收蒸汽发生器(HRSG)的蒸汽输入等)。应该意识到图示的工业控制系统10代表简化的工业控制系统,并且其他工业控制系统可包括任何适合数量的工业控制器12、网络14、联网装置、现场装置等来监测和控制任何自动化系统22的各种部分。例如,工业控制系统可包括配置成提供冗余操作的三模块冗余(TMR)控制器。工业控制系统还可包括具有多个控制器(例如,2、3、4、5等个控制器)的冗余控制器。在描绘的实施例中,工业控制器12可使用网络14以用于与现场装置16、18或20中的任一个通信和控制它。例如,工业控制器12可驻留在工业工厂中并且可配置成调节与装置16、18、20有关的一个或多个过程条件。网络14可以是适合于实现通信的任何电子和/或无线网络,并且可包括光纤介质、双绞线线缆介质、无线通信硬件、以太网线缆介质(例如,Cat-5、Cat-7)等。此外,网络14可包括若干子总线,例如适合于以100MB/秒和以上的通信速度连接工业控制系统10的组件的高速以太网子总线。另外,网络14可包括输入/输出(I/O)网络,例如符合电气和电子工程师协会(IEEE)802.3标准的I/O网络。网络14还可包括适合于以近似31.25Kb/秒的通信速度连接工业控制系统10的组件的H1网络子总线。这些子总线可彼此互相通信,例如通过使用链接装置或网关,例如在由德国Haar的softingAG提供的名称FG-100下可获得的那些网关和/或可从纽约Schenectady的通用电气公司获得的I/O包。实际上,网络14的多个互连子总线可用于在工业控制系统10的组件之间通信。工业控制器12包括存储器34和处理器36,其可执行指令(例如,可执行文件中的二进制指令)来一般地控制工业控制系统10的操作。例如,工业控制器12的存储器34可包括一个或多个文件,其包括可由处理器36执行的二进制指令以便控制并且监测设置在燃气涡轮机系统22的部分内的现场装置16、18和20。这些可执行文件可例如由工业控制器12的制造商在工业控制器12安装在工业控制网络10中之前安装在工业控制器12的存储器34中。此外,如下文详细讨论的,存储在工业控制器12的存储器34中的可执行文件可偶尔更新例如来增强之前软件版本的特征以及改进性能。同样通信耦合于工业控制器12(例如,经由网络14或另一个适合的网络)的是装置24,其具有存储器25和处理器26,其可托管(host)人机接口(HMI)系统27、制造执行系统(MES)28、监控和数据采集(SCADA)系统29、分布式控制系统(DCS)30或相似的接口系统。特别地,在某些实施例中,装置24可托管配置应用程序或工具,例如可从纽约Schenectady的通用电气公司获得的ToolboxST32。一般而言,前面提到的系统可提供一个或多个接口,用户可通过其监测并且控制工业控制器12的操作。例如,HMI27和/或ToolboxST32可提供用户接口,工业控制系统10的各种参数(例如,存储在工业控制器12的存储器34中)可通过其强制或设置。通过另外的示例,如下文详细讨论的,HMI27和/或ToolboxST32可包括存储在控制器12的存储器34中的各种可执行文件可通过其更新到较新的版本的接口。在某些实施例中,前面提到的系统可托管在单个装置24上,而在其他实施例中,它们可各自安装在工业控制网络中的一个或多个装置上。如上文提到的,工业控制器12的存储器34一般存储多个可执行文件(例如,二进制文件)来由处理器36执行。同样提到,存储在工业控制器12的存储器34中的可执行文件可偶尔更新。例如,软件开发者可对由工业控制器12使用的可执行文件产生和/或提供软件更新。例如,软件开发者可具有构建系统38(例如,计算机、膝上型计算机或相似计算装置),其具有存储器40和处理器42,其可用于例如在制造时或在软件更新期间构建可执行文件以用于后面由工业控制器12执行(例如,一旦加载到工业控制器12的存储器34中),如下文讨论的。即,构建系统38的存储器40可包括多个源文件,其可包含采用计算机编程语言中的人可读代码的形式的指令。为了产生可执行文件的更新版本,软件开发者可使用处理器42来编译这些源文件,将它们翻译成采用可执行文件的形式的计算机可读(例如,二进制)指令以用于后面由工业控制器12的处理器36执行。另外,在某些实施例中,一旦可执行文件已经形成,它们可封装在一起(例如,放置在存档中、压缩、加密等)。然后,软件开发者可提供更新的可执行文件给工业控制器12,如由图1的虚线44代表的。在某些实施例中,软件开发者可将更新的可执行文件放置在物理介质(例如,光盘、磁性介质、闪驱或其他相似数据存储介质)上,其可提供给(例如,邮寄给)装置24的用户。该用户可进而利用HMI27和/或ToolboxST32来将物理介质的内容传递给工业控制器12的存储器34。在其他实施例中,装置24可例如能够建立到构建系统38的网络连接,以便从软件开发者的远程构建系统38的存储器40下载可执行文件。因此,如上文陈述的,确保工业控制器12仅执行授权的可执行文件一般可以是可期望的。即,不管可执行文件如何由软件开发者提供(例如,经由物理介质或网络连接),证实可执行文件自它由软件开发者(例如,软件开发者的构建系统38的处理器42)编译以来决没有修改将是有益的。如此,现在公开的实施例利用由软件开发者连同可执行文件提供的白名单文件作为在执行之前证实可执行文件中的全部被授权的方式。如下文关于图2和3详细讨论的,白名单文件包含可执行文件中的每个的哈希键值,使得工业控制器12可在执行之前有效并且同时证实每个可执行文件的身份和内容。图2图示装置(例如,构建系统38的处理器42)可通过其准备包括可执行文件和白名单的软件包的过程50的流程图,该白名单识别工业控制器12的授权的可执行文件。该图示的过程50开始于构建系统38接收(框52)包括后面要由工业控制器12的处理器36执行的指令的多个源文件。接着,构建系统38的处理器42可生成(框54)私有加密密钥。在某些实施例中,处理器42可利用一个或多个算法来产生该私有加密密钥的随机或伪随机字符或值。在其他实施例中,构建系统38可包括一个或多个随机数生成装置,其可用于生成该私有加密密钥的随机或伪随机字符或值。一旦该私有加密密钥生成,处理器42可将该私有加密密钥添加(框56)到多个源文件中的至少一个。例如,与启动执行文件(例如,当工业控制器12开启时通常可第一个运行的可执行文件)关联的源文件可包括被限定但它的值最初不是由软件开发者规定的变量。因此,处理器42可编辑源文件使得该变量的值限定成该私有加密密钥。通过这样做,如下文关于图3详细讨论的,当工业控制器12执行从该编辑的源文件编译的可执行文件时,工业控制器12可具有设置成该私有加密密钥的变量(例如,为了后面解密白名单文件)。接着,构建系统38的处理器42可从多个源文件生成多个可执行文件。即,处理器42可编译构建系统38的存储器40中的源文件以便输出多个可执行文件,其也可存储在构建系统的存储器40中。处理器42然后可确定该多个可执行文件中的每个的哈希键值。即,处理器42可对可执行文件中的每个应用哈希函数以便确定哈希键值。示例哈希函数的非限制性列表包括:循环冗余校验(CRC)32、CRC64、消息摘要算法(MD)5、MD6、安全哈希算法(SHA)1、SHA2、SHA256或SHA512。应该意识到哈希键值基于可执行文件的内容的消化唯一识别可执行文件。这意味甚至可执行文件的内容中的单个比特变化(例如,由网络连接上的传输期间的错误或恶化引起)可产生显著不同的哈希键值。还应该意识到有意或意外地产生将产生相同哈希键值的两个不同的可执行文件可以是相当困难或不可能的。如此,应该意识到这本质上使处理器(例如,工业控制器12的处理器34)能够通过比较哈希键值快速证实可执行文件的身份和内容两者。接着,处理器42可建立(框62)包括对于多个可执行文件确定的哈希键值中的每个的白名单文件。例如,处理器42可形成新文件,并且用之前由处理器编译的可执行文件的确定的哈希键值的界定列表填充该文件。在某些实施例中,白名单文件可建立为可扩展标记语言(XML)文件。一旦白名单文件形成,处理器42然后可使用在框54中确定的私有加密密钥将建立的白名单文件加密(框64)。例如,处理器42可使用高级加密标准(AES)算法、数据加密标准(DES)算法、非常良好的隐私(PGP)算法或其他适合的数据加密算法。然后,在某些实施例中,处理器42可将可执行文件与加密的白名单文件封装(框66)在一起。即,处理器42可将可执行文件和加密的白名单文件组合成单个存档或压缩的文件以用于分配给工业控制器12。在其他实施例中,构建系统38可使白名单文件对于工业控制器12和/或装置24可用以用于最终由工业控制器12的处理器36使用。图3图示工业控制器12的处理器36通过其接收白名单文件并且将白名单文件解密的过程70的实施例的流程图。该过程70可开始于工业控制器12的处理器36接收并且解封(框72)多个可执行文件和加密的白名单文件。如上文提到的,装置24的ToolboxST应用程序32和/或HMI27可辅助工业控制器12接收和/或解封来自软件开发者(例如,经由物理介质或网络连接来自构建系统38)的多个可执行文件。过程70继续于工业控制器12的处理器36执行(框74)启动可执行文件,其可包括私有加密密钥,如在图2的框64和54中讨论的。接着,工业控制器12的处理器36可使用私有加密密钥来解密(框76)加密的白名单文件以便提供解密的白名单文件(例如,在工业控制器12的存储器34中)。应该意识到,尽管在框72中描述的动作一般可仅在工业控制器12的更新期间执行,在某些实施例中,在框74和76中描述的动作还可例如在工业控制器12的重启期间执行。图4图示工业控制器12的处理器36可通过其使用白名单来证实可执行文件在执行之前被授权的过程80的实施例的流程图。该过程80开始于处理器36确定(框82)正尝试执行特定可执行文件。处理器36然后可确定(框84)正尝试执行的可执行文件的哈希键值。应该意识到处理器36将应用与在建立白名单文件(例如,在图2的框60中讨论的)期间用于确定哈希键值相同的哈希函数。过程80继续于处理器36确定(框86)哈希键值是否包括在解密的白名单文件(例如,关于图3的框76讨论的解密的白名单文件)内。例如,在某些实施例中,在图3的框76中讨论的解密的白名单文件可作为特定数据结构(例如哈希表)加载到工业控制器12的存储器34中,其可在确定特定哈希键值是否在白名单中存在时实现快速和/或有效搜索。然后,处理器36可(框88)在对可执行文件确定的哈希键位于解密的白名单文件中时允许可执行文件执行或如果对可执行文件确定的哈希键位于解密的白名单文件中允许可执行文件执行。然而,如果可执行文件的哈希键值不位于解密的白名单文件中,过程80还可终止于处理器36阻止(框90)可执行文件的执行。在某些实施例中,处理器36可进一步记录(例如,可执行文件的阻止执行作为潜在的安全关注点)。图5图示在执行之前通过其证实可执行文件95的过程94的实施例的详细流程图。该过程94可通过使用包括可由控制器12执行的代码的非暂时性机器可读介质而实现。该过程94可在处理器36接收(框96)可执行文件95(例如,输入可执行(例如,二进制)文件)时开始。可执行文件95可包括尝试在处理器36中执行的可执行代码。处理器36然后可从正尝试执行的可执行文件确定(框98)二进制数使得可执行文件被表达为二进制文件。在一个实施例中,可使用多个可执行文件,并且过程94可确定正尝试执行(框98)哪个可执行二进制数使得可针对白名单文件来校验它,如下文更详细描述的。处理器36然后可使用确定的二进制数来决定(决定100)该二进制数是否在白名单中存在。处理器36可访问列出可执行系统二进制文件的白名单文件102,所述可执行系统二进制文件可由处理器36批准执行以便确定是否存在确定的二进制数。系统二进制文件一般是可执行或二进制文件,例如在操作系统中存在的操作系统文件。如果确定的二进制数在白名单文件102中不存在,则处理器36可返回(框104)错误。该错误可导致警告或通知,其通过HMI27或其他输出来输出给用户。另外,可阻止执行可执行文件95。如果确定的二进制数确实在白名单文件102中存在,则处理器36可确定(框106)确定的二进制数的输入哈希键值。应该意识到处理器36一般可应用与用于在建立白名单文件102(例如,在图2的框60中讨论的)期间确定哈希键值相同的哈希函数。在一些实施例中,这牵涉使二进制文件通过安全哈希算法来生成160比特哈希串。处理器36然后决定(决定108)输入哈希键值是否匹配来自白名单文件102的哈希键值。在描绘的实施例中,确定的二进制文件的输入哈希键值与白名单文件102中的对应二进制文件的哈希键值比较。如果输入哈希键值匹配来自白名单文件102的值,可允许可执行文件执行。如果输入哈希键值不匹配来自白名单文件102的值,处理器36可返回(框104)错误。该错误可以是输出给用户的警告或通知。此外,还可阻止可执行文件95执行。在某些实施例中,当返回(框104)错误时,可存储事件和/或可执行文件以用于未来分析或安全报告。本公开的技术效果包括改进工业控制系统的工业控制器的安全性。即,现在公开的实施例使工业控制器12的处理器36能够在执行之前证实每个可执行文件被授权。特别地,通过对可执行文件的证实过程使用哈希键值,现在公开的实施例提供轻量系统,其使工业控制器12的处理器36能够以对资源(例如,存储器空间和/或处理时间)最小影响来执行该证实过程。此外,通过使用哈希键值,现在公开的实施例提供可执行文件的内容和身份两者的证实,使得甚至可执行文件中的单个比特变化(例如,由于传输错误、文件恶化、文件篡改)将容易地被检测。因此,现在公开的实施例提供健壮的系统以用于未授权的可执行文件的检测以及阻止它们执行。该书面描述使用示例来公开本发明,其包括最佳模式,并且还使本领域内任何技术人员能够实践本发明,其包括制作和使用任何装置或系统并且执行任何包含的方法。本发明的专利范围由权利要求限定,并且可包括本领域内技术人员想到的其他示例。这样的其他示例如果它们具有不与权利要求的文字语言不同的结构要素,或者如果它们包括与权利要求的文字语言无实质区别的结构要素则确定在权利要求的范围内。要素列表10工业控制系统12工业控制器14网络16现场装置18现场装置20现场装置22燃气涡轮机系统34存储器36处理器24装置25存储器26处理器27人机接口(HMI)系统29监控和数据采集(SCADA)系统32ToolboxST38构建系统40存储器42处理器44虚线50过程52接收54生成56添加58生成60确定62建立64加密66封装70过程72接收74执行76解密80过程82确定84确定86确定88允许90阻止94过程95可执行文件96接收98确定102白名单文件104返回106确定108决定当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1