CN103377328A - 用于控制工业控制系统的文件执行的系统和方法 - Google Patents

用于控制工业控制系统的文件执行的系统和方法 Download PDF

Info

Publication number
CN103377328A
CN103377328A CN2013101571778A CN201310157177A CN103377328A CN 103377328 A CN103377328 A CN 103377328A CN 2013101571778 A CN2013101571778 A CN 2013101571778A CN 201310157177 A CN201310157177 A CN 201310157177A CN 103377328 A CN103377328 A CN 103377328A
Authority
CN
China
Prior art keywords
file
key assignments
hash key
industrial control
executable file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013101571778A
Other languages
English (en)
Other versions
CN103377328B (zh
Inventor
W.R.佩蒂格鲁
M.R.萨胡
J.B.聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co PLC
Original Assignee
General Electric Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Publication of CN103377328A publication Critical patent/CN103377328A/zh
Application granted granted Critical
Publication of CN103377328B publication Critical patent/CN103377328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/048Monitoring; Safety
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24161Use of key, in key is stored access level
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Numerical Control (AREA)

Abstract

一种系统包括控制器,其配置成控制过程,并且存储至少一个二进制文件,其中该至少一个二进制文件从至少一个源文件生成,其中该至少一个源文件包括配置成由该控制器中的处理器执行的指令。该控制器还可配置成检索包括从该至少一个二进制文件得出的第一哈希键值的白名单文件,并且基于该白名单文件执行可执行文件,其中该可执行文件包括源文件。

Description

用于控制工业控制系统的文件执行的系统和方法
技术领域
本文公开的主题涉及工业控制系统,并且更具体地涉及使工业控制系统的操作安全。
背景技术
例如自动化发电系统(例如风力、水力和燃气涡轮机系统)和自动化制造系统(例如炼油厂、化学制造工厂等)的工业控制系统是现代工业的普遍特征。对于这样的工业控制系统,工业控制器可一般地控制系统的操作。例如,工业控制系统中的某些装置(例如,传感器、泵、阀门、致动器等)可由该工业控制器控制,并且可将数据报告给该工业控制器。此外,该工业控制器可执行指令(例如,固件和/或应用程序),其可一般地使该工业控制器能够控制工业控制系统(例如,燃气涡轮机系统)的操作。
发明内容
与最初要求权利的发明在范围上相当的某些实施例在下文概述。这些实施例不意在限制要求权利的发明的范围,而相反这些实施例只意在提供本发明的可能形式的简短概要。实际上,本发明可包含与下文阐述的实施例相似或不同的多种形式。
在一个实施例中,一种系统包括控制器,其配置成控制过程,并且存储至少一个二进制文件,其中该至少一个二进制文件从至少一个源文件生成,其中该至少一个源文件包括配置成由该控制器中的处理器执行的指令。该控制器还可配置成检索包括从该至少一个二进制文件得出的第一哈希键值的白名单文件,并且基于该白名单文件执行可执行文件,其中该可执行文件包括该源文件。
在另一个实施例中,一种方法包括通过使用可执行文件确定输入二进制数,其中该可执行文件配置成由控制器执行,从该输入二进制数计算输入哈希键值,确定该输入哈希键值是否包括在白名单中,其中该白名单包括从多个验证的二进制文件计算的多个哈希键值,并且如果该输入哈希键匹配该白名单中的多个哈希键值中的一个则允许该可执行文件执行。
在第三实施例中,一种有形的非暂时性计算机可读介质包括配置成由工业控制器的处理器执行的指令。这些指令配置成确定输入二进制文件的输入哈希键值,并且如果该输入哈希键值没有在白名单中找到则阻止该输入二进制文件的执行,该白名单包括多个哈希键值。
提供一种系统,其包括:
控制器,其配置成:
控制过程;
存储至少一个二进制文件,其中所述至少一个二进制文件从至少一个源文件生成,其中所述至少一个源文件包括配置成由所述控制器中的处理器执行的指令;
检索包括从所述至少一个二进制文件得出的第一哈希键值的白名单文件;并且
基于所述白名单文件执行可执行文件,其中所述可执行文件包括所述源文件。
优选的,所述控制器配置成:
从所述可执行文件得出第二哈希键值;
比较所述第一哈希键值与所述第二哈希键值;并且
如果所述第一哈希键值匹配所述第二哈希键值则执行所述可执行文件。
优选的,所述控制器配置成如果所述第一哈希键值不匹配所述第二哈希键值则阻止所述可执行文件的执行。
优选的,所述控制器配置成如果所述第一哈希键值不匹配所述第二哈希键值则发出警告、发出警报、写到记录文件或其的组合。
优选的,所述控制器配置成接收包括所述可执行文件的命令。
优选的,哈希函数配置成得出所述第一哈希键值。
优选的,所述哈希函数包括循环冗余校验(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的softing AG提供的名称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的通用电气公司获得的ToolboxST 32。一般而言,前面提到的系统可提供一个或多个接口,用户可通过其监测并且控制工业控制器12的操作。例如,HMI 27和/或ToolboxST 32可提供用户接口,工业控制系统10的各种参数(例如,存储在工业控制器12的存储器34中)可通过其强制或设置。通过另外的示例,如下文详细讨论的,HMI 27和/或ToolboxST 32可包括存储在控制器12的存储器34中的各种可执行文件可通过其更新到较新的版本的接口。在某些实施例中,前面提到的系统可托管在单个装置24上,而在其他实施例中,它们可各自安装在工业控制网络中的一个或多个装置上。
如上文提到的,工业控制器12的存储器34一般存储多个可执行文件(例如,二进制文件)来由处理器36执行。同样提到,存储在工业控制器12的存储器34中的可执行文件可偶尔更新。例如,软件开发者可对由工业控制器12使用的可执行文件产生和/或提供软件更新。例如,软件开发者可具有构建系统38(例如,计算机、膝上型计算机或相似计算装置),其具有存储器40和处理器42,其可用于例如在制造时或在软件更新期间构建可执行文件以用于后面由工业控制器12执行(例如,一旦加载到工业控制器12的存储器34中),如下文讨论的。即,构建系统38的存储器40可包括多个源文件,其可包含采用计算机编程语言中的人可读代码的形式的指令。为了产生可执行文件的更新版本,软件开发者可使用处理器42来编译这些源文件,将它们翻译成采用可执行文件的形式的计算机可读(例如,二进制)指令以用于后面由工业控制器12的处理器36执行。另外,在某些实施例中,一旦可执行文件已经形成,它们可封装在一起(例如,放置在存档中、压缩、加密等)。然后,软件开发者可提供更新的可执行文件给工业控制器12,如由图1的虚线44代表的。在某些实施例中,软件开发者可将更新的可执行文件放置在物理介质(例如,光盘、磁性介质、闪驱或其他相似数据存储介质)上,其可提供给(例如,邮寄给)装置24的用户。该用户可进而利用HMI 27和/或 ToolboxST 32来将物理介质的内容传递给工业控制器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、CRC 64、消息摘要算法(MD)5、MD 6、安全哈希算法(SHA)1、SHA 2、SHA 256或SHA 512。应该意识到哈希键值基于可执行文件的内容的消化唯一识别可执行文件。这意味甚至可执行文件的内容中的单个比特变化(例如,由网络连接上的传输期间的错误或恶化引起)可产生显著不同的哈希键值。还应该意识到有意或意外地产生将产生相同哈希键值的两个不同的可执行文件可以是相当困难或不可能的。如此,应该意识到这本质上使处理器(例如,工业控制器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和/或HMI 27可辅助工业控制器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)错误。该错误可导致警告或通知,其通过HMI 27或其他输出来输出给用户。另外,可阻止执行可执行文件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)系统
32 ToolboxST 38 构建系统
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 决定

Claims (10)

1.一种系统,包括:
控制器,其配置成:
控制过程;
存储至少一个二进制文件,其中所述至少一个二进制文件从至少一个源文件生成,其中所述至少一个源文件包括配置成由所述控制器中的处理器执行的指令;
检索包括从所述至少一个二进制文件得出的第一哈希键值的白名单文件;并且
基于所述白名单文件执行可执行文件,其中所述可执行文件包括所述源文件。
2.如权利要求1所述的系统,其中,所述控制器配置成:
从所述可执行文件得出第二哈希键值;
比较所述第一哈希键值与所述第二哈希键值;并且
如果所述第一哈希键值匹配所述第二哈希键值则执行所述可执行文件。
3.如权利要求2所述的系统,其中,所述控制器配置成如果所述第一哈希键值不匹配所述第二哈希键值则阻止所述可执行文件的执行。
4.如权利要求2所述的系统,其中,所述控制器配置成如果所述第一哈希键值不匹配所述第二哈希键值则发出警告、发出警报、写到记录文件或其的组合。
5.如权利要求1所述的系统,其中,所述控制器配置成接收包括所述可执行文件的命令。
6.如权利要求1所述的系统,其中,哈希函数配置成得出所述第一哈希键值。
7.如权利要求6所述的系统,其中,所述哈希函数包括循环冗余校验(CRC)、消息摘要(MD)算法、安全哈希算法(SHA)或其的组合。
8.如权利要求1所述的系统,其中,所述第一哈希键值包括至少160比特。
9.如权利要求1所述的系统,其中,所述控制器配置成在请求时、以预定时间间隔、随机地或其的组合通过白名单有证实条件地执行所述可执行文件。
10.如权利要求1所述的系统,其中,所述控制器包括工业控制器,其配置成控制工业过程、工业设备或其的组合。
CN201310157177.8A 2012-04-30 2013-05-02 用于控制工业控制系统的文件执行的系统和方法 Active CN103377328B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/460,771 US8959362B2 (en) 2012-04-30 2012-04-30 Systems and methods for controlling file execution for industrial control systems
US13/460771 2012-04-30

Publications (2)

Publication Number Publication Date
CN103377328A true CN103377328A (zh) 2013-10-30
CN103377328B CN103377328B (zh) 2018-09-25

Family

ID=48184098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310157177.8A Active CN103377328B (zh) 2012-04-30 2013-05-02 用于控制工业控制系统的文件执行的系统和方法

Country Status (4)

Country Link
US (1) US8959362B2 (zh)
EP (1) EP2660668B1 (zh)
CN (1) CN103377328B (zh)
ES (1) ES2868141T3 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726547A (zh) * 2019-01-28 2019-05-07 北京和利时工业软件有限公司 一种文件执行管理方法及相关装置
CN111385083A (zh) * 2018-12-28 2020-07-07 新唐科技股份有限公司 密钥保护方法及密钥保护系统

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4558099B1 (ja) * 2010-02-03 2010-10-06 メキキ・クリエイツ株式会社 デジタルデータ内容証明システム、データ証明装置、ユーザ端末、コンピュータプログラム及び方法
US8964973B2 (en) 2012-04-30 2015-02-24 General Electric Company Systems and methods for controlling file execution for industrial control systems
US8973124B2 (en) 2012-04-30 2015-03-03 General Electric Company Systems and methods for secure operation of an industrial controller
US9046886B2 (en) 2012-04-30 2015-06-02 General Electric Company System and method for logging security events for an industrial control system
JP5863689B2 (ja) * 2013-02-28 2016-02-17 京セラドキュメントソリューションズ株式会社 不正使用防止機能付き共有ライブラリ
JP5832703B2 (ja) * 2013-05-20 2015-12-16 三菱電機株式会社 監視制御装置
US9912733B2 (en) * 2014-07-31 2018-03-06 General Electric Company System and method for maintaining the health of a control system
US11507663B2 (en) 2014-08-11 2022-11-22 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
US9710648B2 (en) 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US10048960B2 (en) 2014-12-17 2018-08-14 Semmle Limited Identifying source code used to build executable files
IL243024A0 (en) * 2015-12-10 2016-02-29 Shabtai Asaf A method and system for detecting a controller programmed in the scada system that sends false measurement data
US10366054B2 (en) * 2015-12-14 2019-07-30 Abb Schweiz Ag Method and apparatus for for software application internal re-structuring of specifically authorized multi-level sub-folders
US9858424B1 (en) * 2017-01-05 2018-01-02 Votiro Cybersec Ltd. System and method for protecting systems from active content
US11616812B2 (en) * 2016-12-19 2023-03-28 Attivo Networks Inc. Deceiving attackers accessing active directory data
US10599842B2 (en) * 2016-12-19 2020-03-24 Attivo Networks Inc. Deceiving attackers in endpoint systems
US11695800B2 (en) 2016-12-19 2023-07-04 SentinelOne, Inc. Deceiving attackers accessing network data
US10331889B2 (en) 2017-01-05 2019-06-25 Votiro Cybersec Ltd. Providing a fastlane for disarming malicious content in received input content
US11537590B2 (en) 2017-03-28 2022-12-27 Walmart Apollo, Llc Systems and methods for computer assisted database change documentation
WO2019032728A1 (en) 2017-08-08 2019-02-14 Sentinel Labs, Inc. METHODS, SYSTEMS AND DEVICES FOR DYNAMICALLY MODELING AND REGROUPING END POINTS FOR ONBOARD NETWORKING
JP6759169B2 (ja) * 2017-09-11 2020-09-23 株式会社東芝 情報処理装置、情報処理方法、および情報処理プログラム
US11042610B1 (en) * 2017-10-04 2021-06-22 Xilinx, Inc. Enabling integrity and authenticity of design data
US10542007B2 (en) * 2017-12-28 2020-01-21 General Electric Company Command authentication related to the control of industrial systems
US11470115B2 (en) 2018-02-09 2022-10-11 Attivo Networks, Inc. Implementing decoys in a network environment
EP3528064B1 (de) * 2018-02-15 2023-12-06 Siemens Aktiengesellschaft Steuerungssystem und zugehöriges verfahren zur inbetriebnahme, steuerung und überwachung für stromversorgungskomponenten
US20190317756A1 (en) * 2018-04-11 2019-10-17 Walmart Apollo, Llc Software artifact management systems and methods
US11132437B2 (en) * 2018-06-26 2021-09-28 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Secure computer operating system through interpreted user applications
US11144375B2 (en) 2018-10-09 2021-10-12 Argo AI, LLC Execution sequence integrity parameter monitoring system
US11138085B2 (en) 2018-10-09 2021-10-05 Argo AI, LLC Execution sequence integrity monitoring system
EP3864544B1 (en) * 2018-10-09 2023-09-20 Argo AI, LLC Execution sequence integrity monitoring system
CH715916B1 (de) * 2019-03-12 2022-06-15 Sauter Ag Datenintegritätsprüfverfahren.
US11757663B1 (en) * 2019-03-22 2023-09-12 Emtruth, Inc. Blockchain-based monitoring of devices
US11044320B2 (en) * 2019-04-01 2021-06-22 Honeywell International Inc. Data distribution method for a process automation and internet of things system
EP3973427A4 (en) 2019-05-20 2023-06-21 Sentinel Labs Israel Ltd. SYSTEMS AND METHODS FOR EXECUTABLE CODE DETECTION, AUTOMATIC FEATURE EXTRACTION, AND POSITION-INDEPENDENT CODE DETECTION
JP7289739B2 (ja) * 2019-06-27 2023-06-12 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
TWI730415B (zh) * 2019-09-18 2021-06-11 財團法人工業技術研究院 偵測系統、偵測方法、及藉由使用偵測方法所執行的更新驗證方法
US11579857B2 (en) 2020-12-16 2023-02-14 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US11899782B1 (en) 2021-07-13 2024-02-13 SentinelOne, Inc. Preserving DLL hooks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449732B1 (en) * 1998-12-18 2002-09-10 Triconex Corporation Method and apparatus for processing control using a multiple redundant processor control system
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US20090049430A1 (en) * 2007-08-17 2009-02-19 Pai Ramachandra N Verifying that binary object file has been generated from source files
CN101593259A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 软件完整性验证方法及系统
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774652A (en) 1995-09-29 1998-06-30 Smith; Perry Restricted access computer system
DE69736283T2 (de) 1996-03-22 2007-06-28 Actividentity Europe S.A. Zugangskontrollsystem zu einer funktion, in der die chiffrierung mehrere dynamische veränderliche enthält
US7246002B2 (en) * 2003-11-20 2007-07-17 General Electric Company Method for controlling fuel splits to gas turbine combustor
WO2005069823A2 (en) 2004-01-15 2005-08-04 Jun Song Centralized transactional security audit for enterprise systems
US8060924B2 (en) * 2004-04-19 2011-11-15 Lumension Security, Inc. On-line centralized and local authorization of executable files
WO2006101549A2 (en) * 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
JP4807562B2 (ja) 2005-11-25 2011-11-02 横河電機株式会社 プラント制御システム
JP5003118B2 (ja) 2006-11-27 2012-08-15 横河電機株式会社 制御システム及びマルチキャスト通信方法
US7841010B2 (en) * 2007-01-08 2010-11-23 Apple Inc. Software or other information integrity verification using variable block length and selection
US20100031321A1 (en) 2007-06-11 2010-02-04 Protegrity Corporation Method and system for preventing impersonation of computer system user
US8015791B2 (en) * 2008-11-18 2011-09-13 General Electric Company Fuel control system for gas turbine and feed forward control method
US8977851B2 (en) * 2009-01-21 2015-03-10 Fisher-Rosemount Systems, Inc. Removable security modules and related methods
US8121707B2 (en) 2009-04-14 2012-02-21 General Electric Company Method for download of sequential function charts to a triple module redundant control system
US8387145B2 (en) 2009-06-08 2013-02-26 Microsoft Corporation Blocking malicious activity using blacklist
US8370045B2 (en) * 2009-08-14 2013-02-05 Lockheed Martin Corporation Starter control valve failure prediction machine to predict and trend starter control valve failures in gas turbine engines using a starter control valve health prognostic, program product and related methods
GB0918479D0 (en) * 2009-10-22 2009-12-09 Qinetiq Ltd Data content checking
US8484474B2 (en) * 2010-07-01 2013-07-09 Rockwell Automation Technologies, Inc. Methods for firmware signature
US9792429B2 (en) * 2010-10-06 2017-10-17 Red Hat, Inc. Detection of malicious software packages
US9094385B2 (en) * 2011-08-05 2015-07-28 Battelle Memorial Institute Intelligent sensor and controller framework for the power grid
US9163828B2 (en) * 2011-10-31 2015-10-20 Emerson Process Management Power & Water Solutions, Inc. Model-based load demand control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449732B1 (en) * 1998-12-18 2002-09-10 Triconex Corporation Method and apparatus for processing control using a multiple redundant processor control system
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US20090049430A1 (en) * 2007-08-17 2009-02-19 Pai Ramachandra N Verifying that binary object file has been generated from source files
CN101593259A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 软件完整性验证方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385083A (zh) * 2018-12-28 2020-07-07 新唐科技股份有限公司 密钥保护方法及密钥保护系统
CN111385083B (zh) * 2018-12-28 2023-03-10 新唐科技股份有限公司 密钥保护方法及密钥保护系统
CN109726547A (zh) * 2019-01-28 2019-05-07 北京和利时工业软件有限公司 一种文件执行管理方法及相关装置

Also Published As

Publication number Publication date
EP2660668A3 (en) 2017-04-05
US8959362B2 (en) 2015-02-17
CN103377328B (zh) 2018-09-25
EP2660668A2 (en) 2013-11-06
US20130290729A1 (en) 2013-10-31
ES2868141T3 (es) 2021-10-21
EP2660668B1 (en) 2021-01-20

Similar Documents

Publication Publication Date Title
CN103377328A (zh) 用于控制工业控制系统的文件执行的系统和方法
US8964973B2 (en) Systems and methods for controlling file execution for industrial control systems
US9935933B2 (en) Systems and methods for secure operation of an industrial controller
JP6285107B2 (ja) 工業制御システムに対するセキュリティ事象をロギングするためのシステムおよび方法
JP6973844B2 (ja) インテグリティに基づき産業企業システムにおけるエンドポイントの通信を制御する方法および装置
EP2865168B1 (en) System and method for enhanced control system security
US8726372B2 (en) Systems and methods for securing controllers
TW201128334A (en) Control apparatus and management apparatus
US20140364970A1 (en) System and method for application development and deployment
Xie et al. A malware detection method using satisfiability modulo theory model checking for the programmable logic controller system
EP2975546B1 (en) Systems and methods for verifying the authenticity of an application during execution
JP6069160B2 (ja) 制御システム及び認証装置
CN102763046A (zh) 可编程控制器以及程序设计装置
Sundaram et al. Data recovery via covert cognizance for unattended operational resilience
Shi et al. Development and Application of Undisturbed Online Downloads in the FirmSys

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240407

Address after: Swiss Baden

Patentee after: GENERAL ELECTRIC CO. LTD.

Country or region after: Switzerland

Address before: New York, United States

Patentee before: General Electric Co.

Country or region before: U.S.A.

TR01 Transfer of patent right