首页 / 专利库 / 银行与财务事项 / 账户身份服务系统 / 基于最小特权的过程控制软件安全架构

基于最小特权的过程控制软件安全架构

阅读:257发布:2020-05-13

专利汇可以提供基于最小特权的过程控制软件安全架构专利检索,专利查询,专利分析的服务。并且一种过程控制系统 软件 安全架构,其更有效地防止零日或其他类型的 恶意软件 攻击,当执行应用程序和服务运行在计算机设备内时,实现了使用“最小特权”。所述基于最小特权的架构通过将软件系统的全局命名空间划分为服务命名空间和登录用户命名空间,以及通过使用 进程 间通信来严格地控制在这些不同命名空间中的应用程序和服务之间的通信来将“服务”进程与代表登录用户运行的桌面应用程序进行分离。此外,所述安全架构使用定制账号来保证每一个服务进程具有实现其功能所需要的特权的最小集合,而不考虑与调用的应用程序或用户相关联的特权。,下面是基于最小特权的过程控制软件安全架构专利的具体信息内容。

1.一种计算机设备,包括:
处理器;以及
操作系统,所述操作系统根据配置数据来在所述处理器上执行以实现服务进程,其中,所述操作系统将所述服务进程中的每一个分配给多个定制服务账号中的一个,所述多个定制服务账号中的每一个具有与其相关联的操作系统特权的预置集合,其中,针对所述多个定制服务账号中的每一个的所述操作系统特权的预置集合是基于被分配给所述定制服务账号的服务进程所需要的特权而进行定义的,其中,所述服务进程由所述操作系统生成或运行并且向应用程序提供服务,以及其中,所述定制服务账号不具有交互式登录特权。
2.根据权利要求1所述的计算机设备,其中,所述计算机设备进一步包括一个或多个通信端口和本地存储器存储单元,并且其中,能够与通信端口进行通信的一个或多个服务进程中的每一个不具有写入到所述本地存储器存储单元的特权。
3.根据权利要求2所述的计算机设备,其中,所述计算机设备进一步包括外部介质接口,并且其中,能够与通信端口进行通信的所述服务进程中的一个或多个不具有经由所述外部介质端口与能够移除的存储单元进行通信的特权。
4.根据权利要求2所述的计算机设备,其中,所述计算机设备进一步包括外部介质端口,并且其中,能够与所述通信端口进行通信的所述服务进程中的一个或多个不具有与具有经由所述外部介质端口与能够移除的存储单元进行通信的特权的所述服务进程中的另外的一个或多个直接进行通信的特权。
5.根据权利要求4所述的计算机设备,其中,所述计算机设备进一步包括外部介质端口和本地存储器存储单元,并且其中,能够经由所述外部介质端口与能够移除的存储单元进行通信的所述服务进程中的一个或多个不具有写入到所述本地存储器存储单元的特权。
6.根据权利要求5所述的计算机设备,其中,所述计算机设备进一步包括通信端口,并且其中,能够经由所述外部介质端口与能够移除的存储单元进行通信的所述服务进程中的一个或多个不具有与具有经由所述通信端口进行通信的特权的另外的服务进程直接进行通信的特权。
7.根据权利要求1所述的计算机设备,进一步包括桌面环境,其中,所述一个或多个应用程序包括一个或多个桌面应用程序,并且其中,所述操作系统执行以施行与桌面命名空间分离的服务命名空间,并且操作以执行在所述服务命名空间中的所述服务进程以及在所述桌面命名空间中的所述一个或多个桌面应用程序。
8.根据权利要求7所述的计算机设备,其中,所述操作系统施行以下要求:在所述桌面命名空间中运行的进程与在所述服务命名空间中运行的进程之间的通信必须经由进程间通信来实现。
9.根据权利要求7所述的计算机设备,其中,所述操作系统根据配置数据在所述处理器上执行以实现桌面进程,其中,所述配置数据使得所述桌面进程中的每一个被分配给多个用户账号中的一个,所述多个用户账号中的每一个具有与其相关联的操作系统特权的预置集合,其中,针对所述多个用户账号中的每一个的所述操作系统特权的预置集合包括交互式登录特权。
10.根据权利要求9所述的计算机设备,其中,分配给标准用户账号的操作系统特权的集合不包括提升的或管理式操作系统特权。
11.根据权利要求9所述的计算机设备,其中,当桌面应用程序被启动时被分配给所述桌面应用程序的操作系统特权的集合被限定为与标准用户账号相关联的操作系统特权的集合,即使在其下启动所述桌面应用程序的所述用户账号具有提升的操作系统特权,并且其中,由运行在所述桌面命名空间中的进程启动的进程继承进行启动的进程的特权。
12.根据权利要求9所述的计算机设备,其中,所述操作系统施行以下规则:运行在所述桌面命名空间中的进程在没有其账户具有提升的特权的认证用户的明确授权的条件下不能够在操作系统特权中被提升。
13.根据权利要求7所述的计算机设备,其中,所述操作系统施行以下要求:运行在所述服务命名空间中的进程与运行在所述服务命名空间中的其他进程之间的通信必须经由进程间通信来实现。
14.根据权利要求7所述的计算机设备,其中,所述计算机设备进一步包括存储服务文件或服务文件夹的本地存储器存储单元,并且其中,所述操作系统施行以下规则:防止运行在所述桌面命名空间中的进程写入到存储在所述本地存储器存储单元中的服务文件或服务文件夹。
15.根据权利要求7所述的计算机设备,进一步包括在所述桌面命名空间中的桌面,所述桌面包括用户界面,并且其中,所述操作系统施行以下规则:防止所述服务进程中的任何服务进程直接访问所述桌面。
16.根据权利要求7所述的计算机设备,其中,在桌面应用程序处发起的消息包括识别桌面应用程序的用户的用户身份信息,并且其中,所述用户身份信息跟随消息通过多个进程到达它们的最终目的地,包括通过访问通信端口以经由通信链路发送所述消息的服务进程。
17.根据权利要求16所述的计算机设备,其中,所述用户身份信息不控制所述操作系统特权和/或与用于将所述消息转发给消息接收者的一个或多个进程相关联的访问许可,并且其中,所述用户身份信息不控制对过程控制对象的访问许可。

说明书全文

基于最小特权的过程控制软件安全架构

技术领域

[0001] 本申请总体上涉及过程工厂计算机系统,并且更具体地,涉及用于在过程或工厂环境下保障设备(例如,计算机设备)内的软件进程的操作的方法和装置。

背景技术

[0002] 过程控制系统(例如,像那些在发电、化工、石油或其他过程中使用的分布式或可扩展的过程控制系统)通常包括一个或多个控制器,所述一个或多个控制器通信地相互耦合、经由过程控制网络耦合到至少一个主机或操作员工作站,并且经由模拟、数字或结合的模拟/数字总线耦合到一个或多个现场设备。现场设备可以例如是、阀定位器、开关和发射机(例如,温度、压以及流量传感器),所述现场设备可以在该过程或工厂内执行功能,例如,打开或关闭阀门、开启和关断设备、以及测量过程参数。控制器接收对由现场设备进行的过程或工厂测量进行指示的信号和/或与现场设备相关的其他信息,使用所述信息来实现控制例程并且随后生成控制信号,所述控制信号通过总线被发送到现场设备以控制过程或工厂的操作。通常使来自现场设备和控制器的信息对由操作员工作站执行的一个或多个应用程序是可用的,以使操作员能够执行关于过程或工厂的任何期望的功能,例如,查看工厂的当前状态、修改工厂的操作等。
[0003] 通常位于过程工厂环境内的过程控制器接收对由现场设备进行的或与现场设备相关联的过程测量或过程变量进行指示的信号和/或与现场设备有关的其他信息,并且使用所述信息来执行控制器应用程序。控制器应用程序实现例如做出过程控制决定、基于接收到的信息生成控制信号、以及与现场设备(例如, 和 现场总线现场设备)中的控制模或块协作的不同控制模块。过程控制器中的控制模块通过通信线路或其他信号路径将控制信号发送到现场设备,以由此控制过程的操作。
[0004] 通常还使来自现场设备和过程控制器的信息经由过程控制网络来对一个或多个其他硬件设备(例如,操作员工作站、维护工作站、服务器、个人计算机、手持设备、数据历史记录、报告生成器、集中式数据库等)可用。通过网络所传输的信息使得操作员或维护人员能够执行关于过程的所期望的操作和/或查看工厂的操作。例如,该信息允许操作员改变过程控制例程的设置、修改过程控制器或智能现场设备内的控制模块的操作、查看过程的当前状态或过程工厂内特定设备的状态、查看由现场设备和过程控制器生成的警报、出于训练人员或测试过程控制软件的目的来对过程的操作进行仿真、诊断过程工厂内的问题或硬件故障等。
[0005] 现场设备通常通过过程控制网络(其可以是,例如,以太网配置的LAN)与其他硬件设备进行通信。网络通过各种网络设备来对过程参数、网络信息以及其他过程控制数据进行中继并且将其中继到过程控制系统中的各种实体。通常的网络设备包括网络接口卡、网络交换机、路由器、服务器、防火墙、控制器、以及操作员工作站。网络设备通常通过控制数据流的路由、率、超时、以及其他网络参数来帮助数据流通过网络,但是其本身并不改变过程数据。随着过程控制网络的规模和复杂度的增长,网络设备的数量和类型相应地增长。系统和网络增长的结果是,这些复杂系统中的安全性和管理可能变得日益困难。例如,每一个网络设备可以包括一个或多个通信端口,所述一个或多个通信端口提供用于使过程控制系统部件和其他网络设备通过网络将彼此物理地互连的接入点或端口。然而,可以使用这些端口或连接中的一些来将控制设备连接到可公开访问的网络(例如,互联网),以及将便携存储器设备连接到控制系统设备。因此,设备上的公开端口可以通过添加其他设备而成为用于网络扩展的接入点、或者可以允许恶意或非恶意的实体来访问网络并且启动不期望的并且潜在有害的网络业务或者引入可能在工厂控制系统内导致严重问题的恶意软件(例如,包括恶意程序、间谍或数据收集程序、广告软件、或其他不想要的并且潜在有害的危险软件)。随着网络设备以及相关联的接入点的数量的增加,有效地监控或控制对控制整个复杂过程控制系统的通信的网络内的设备上的所有端口的访问很快变得不切实际。
[0006] 同样地,在一般的工业控制系统中,工作站/服务器被按策略地放置在工厂网络与执行控制以及数据获取功能的嵌入式设备(例如,控制器、PLC、RTU)之间,并且因此这些工作站/服务器的主要安全目标是防止恶意软件进入控制系统并且不利地影响嵌入式设备,以及防止恶意软件改变存储在工厂数据库中的配置和历史数据。尽管可以使用多个安全特征(例如“反病毒”软件和“白名单”)来解决这个目标,但是这些安全特征通常是不够的。例如,反病毒软件不能对抗“零日”病毒,并且白名单仅防止未授权的应用程序运行。此外,这些特征中的一些是过于侵入性的,以至于在过程控制系统中不能实际操作,这是因为这些安全特征具有阻止工厂操作员活动的潜在可能。
[0007] 一般而言,恶意软件(例如,处于零日攻击核心的恶意软件)通常经由外部存储器设备(例如,可移除的闪存驱动器)或经由通信连接通过操作具有访问这些存储器设备、网络端口或直接数据链路的特权或许可的应用程序或服务在特定设备处被引入到控制系统中。(出于本专利的目的,通信连接包括经由通信网络连接或经由诸如调制解调器连接之类的直接数据链路而进行的连接)。此后,恶意软件能够被传播到其他设备(例如,经由通信或便携式存储器设备)和/或使用被该恶意软件感染的应用程序或服务的安全特权在设备内执行。此外,恶意软件可以本地自我保持以允许其在重启后再次被执行。在一些情况下,恶意软件可以使用该应用程序或服务在其中执行的账号的特权来升级宿主(例如,被感染的应用程序或服务)的特权,并且通过这样做,恶意软件可能能够在要求更高特权的过程控制设备或系统中执行动作或操作,并且由此通常更加有害于控制系统操作。在任何事件中,感染了已经运行的应用程序的零日攻击在过程控制系统中造成严重问题,这是因为并没有用于防止这些类型的攻击的良好技术。然而,当这些攻击破坏工厂控制系统的正在进行的操作时,在过程工厂内,这些攻击可能具有严重的并且潜在的破坏性,甚至致命的影响。发明内容
[0008] 过程控制系统使用更有效地防止零日或其他类型的恶意软件攻击的新的安全特征集合或软件安全架构。一般而言,所述新的安全特征或架构实现了当执行应用程序和服务在任何特定控制系统设备(例如,在工作站、服务器、数据库、控制器、现场设备内等)内运行时,使用本文中所称为的“最小特权”,以便减少可能感染工作站、服务器、或其他设备的恶意软件的影响。本文中的术语“特权”包括操作系统特权/权利和访问控制许可二者。例如,用户可以被授予远程登录或模仿另一个用户的权利(特权),并且还被授予读/写/执行具体文件的访问(许可)。
[0009] 概括而言,基于最小特权的安全特征或架构通过例如将设备(例如,控制器、工作站、服务器等)的全局命名空间划分为服务命名空间以及如果存在(例如,在桌面应用程序中)划分为登录用户命名空间,来将“服务”进程与代表登录用户(本地或远程)运行的桌面应用程序分离。该架构随后使用进程间通信(而不是共享存储器)来严格地控制在这些不同命名空间中的进程(例如,应用程序和服务)之间的通信,以便防止被感染的服务或应用程序能够直接感染或损坏其他的服务或应用程序。具体地,所述新的安全架构使用这样的命名空间划分来防止桌面应用程序直接访问服务命名空间中的对象并且反之亦然。
[0010] 进一步地,所述新的安全架构以限制或降低被感染的服务或应用程序能够有害地影响或感染其他服务或应用程序的能力的方式来限定授予服务和桌面应用程序的特权。一般而言,所述安全架构将服务或应用程序或其他进程的操作系统特权限制为给予所述服务或应用程序或其他进程在其下运行或所述服务或应用程序或其他进程在其下产生的账号的特权的指定子集、将由登录用户启动的应用程序的特权限定为与该用户相关联的特权的子集、以及防止经由桌面应用程序(运行在登录用户下)来执行特权的提升。在一种情况中,该软件安全系统施行这样的限制:对通信端口或外部介质端口(例如,对经由诸如USB端口等的外部介质端口连接的可移除存储设备)的访问必须通过具有受限特权的服务(并且从不由桌面应用程序)来执行,其中服务的受限特权防止该服务写入到本地数据存储装置(例如,磁盘)、防止经由通信网络端口或可移除介质端口中的另一个进行通信、或防止以管理特权进行动作。以这种方式,如果服务受到感染,则感染成为良性的,这是因为感染不能将自己存储在本地磁盘或其他存储器上、不能执行管理功能、不能访问桌面、如果其经由外部介质端口来自可移除存储设备则其不能经由通信网络被传播、以及不能经由外部介质端口被存储在可移除存储设备上或如果其经由通信端口来自通信连接则其不能被传播到另一个通信连接。
[0011] 由此,该新的安全架构使用访问控制,所述访问控制施行哪些用户账号和哪些进程(服务或桌面)被授权通过调用操作系统及其子系统来访问安全对象,并且包括防止较低特权的进程向较高特权的进程中注入代码的机制。为了这样做,该安全架构包括或使用通常被称为“分组”的账号,该账号允许用户账号和服务账号属于来自其他分组账号的继承。
[0012] 这些安全特征的一个或多个的组合带来了过程控制系统或过程工厂内的更加安全的软件环境,其更不容易受到病毒攻击(例如,零日病毒攻击)以及其他恶意软件的影响,这是因为这些安全特征独立或相组合地使恶意软件难以如果不是不可能通过访问网络连接或可移除/便携式存储介质连接(例如,USB端口)的桌面应用程序的操作而被导入到系统中。这些安全特征还限制了恶意软件经由网络或外部设备被导入到内部数据存储设备的能力、限制了使恶意软件提升服务的特权以使服务能够访问对请求该服务的应用程序而言并不需要的设备、存储介质或进程等的能力。
[0013] 由此,使用这些特征,该新的软件架构设计对运行在过程控制自动化系统工作站中以及在服务器中的服务和桌面应用程序进行划分(隔离),以达到减少它们的恶意软件简档或表面的目的。此外,如果服务或由服务生成的其他进程受到感染,则它不会具有进行它没有做过的动作的所必要的特权,并且它不会具有对它并不直接需要的资源进行访问的许可。此外,如果桌面应用程序受到感染,则该桌面应用程序既不能直接访问操作系统的有特权的功能,也不能直接写到网络或直接写到经由外部介质端口连接的可移除存储设备。相反,该桌面应用程序必须请求所述动作由被设计为使对有特权的功能和资源的额外的访问控制平生效并且提供对有特权的功能和资源的额外的访问控制水平的服务和它们所生成的进程来代表所述桌面应用程序被执行。附图说明
[0014] 图1是具有分布式过程控制系统和进程自动化网络的过程工厂的示例性框图,其包括被配置为实现本文描述的基于最小特权的软件安全架构和功能的一个或多个操作员和维护工作站、服务器、控制器、现场设备、以及其他网络设备;
[0015] 图2是过程控制工厂内的工作站/服务器/控制器设备的示例性框图,其示出了关于在过程控制软件架构中执行以实现改进的安全功能的应用程序、服务以及其他进程而实现的各种命名空间和安全性限制;
[0016] 图3示出了包括分组账号和定制账号的账号的图,所述分组账号和定制账号根据本文描述的最小特权软件安全架构来对与各种不同应用程序和服务相关联的特权集合进行限定;
[0017] 图4是示出了图2的系统的工作站中的一个的软件和硬件部件的示例性结构图,其示出了使用图3的账号的各种设备和应用程序之间的通信连接。

具体实施方式

[0018] 图1是被设置在例如过程工厂内的过程控制系统或过程自动化系统100的示意表示,其中,各种计算机设备可以经受各种软件安全特征来增强软件安全性,并且有助于系统/网络的管理和维护。更具体地,过程控制系统100包括一个或多个过程控制器110以及一个或多个过程工厂数据库112(例如,数据历史记录),其通过过程控制通信网络130通信地连接到一个或多个主机工作站或计算机120-122(其可以是任何类型的个人计算机、工作站、服务器等)。控制器100和数据库112可以经由一个或多个网络接口卡132连接到通信网络或总线130(其可以是例如以太网通信网络)。进一步,控制器110可以经由输入/输出(I/O)卡142连接到过程工厂或控制系统内的现场设备140、143和154。数据库112可以包括一个或多个数据历史记录,其可以是具有任何期望类型的存储器的任何期望类型的数据收集单元或存储器设备以及用于存储数据的任何期望的或已知的软件、硬件或固件。此外,数据库112可以与一个或多个工作站或服务器120-122分离或是其一部分。例如可以是费希尔罗斯蒙特系统(Fisher Rosemount System)公司销售的DeltaVTM控制器的控制器110经由例如以太网连接130或任何其他期望的通信网络,通过一个或多个网络卡或设备132通信地连接到主机计算机120-122。网络设备132可以包括网络接口卡、网络交换机、路由器、防火墙、或有助于通过网络130的数据传输而不改变底层数据(underlying data)的任何其他设备中的一个或多个。
[0019] 如图1所示,服务器122连接到各种网络设备,所述各种网络设备可以物理上位于通信或过程控制网络的任何部分并且在过程工厂的任何部分内,并且可以包括如本文所述的安全功能的任何部分。在这个示例中,通信网络130通常是仅与控制系统中涉及的设备连接的封闭的局域网(LAN)并且可以使用硬连线或无线技术来实现。此外,控制器110使用与例如标准4-20mA设备协议、以太网协议、和/或诸如 现场总线协议(现场总线)、 协议、无线 协议、Profibus协议、CAN协议之类的任何智能通信协议相关联的任何期望的硬件或软件来通信地连接到现场设备140。
[0020] 现场设备140、143和154可以是任何类型的设备,例如,传感器、阀、发射器、定位器等,而I/O卡142可以是遵守任何期望的通信或控制器协议的任何类型的I/O设备。在图1所示的实施例中,现场设备140是通过标准HART或模拟4-20mA线141与调制解调器或I/O卡142进行通信的HART或4-20mA设备,而现场设备143是使用现场总线协议通信,通过数字总线145或I/O网络与I/O卡142中的一个进行通信的智能设备,例如 现场总线
现场设备。当然,现场设备140和143可以遵守任何其他期望的标准或协议,包括在将来开发的任何标准或协议。此外,现场设备140和143可以经由任何期望的无线通信标准(例如,协议)无线地连接到控制器110。
[0021] 此外,现场设备154中的一个或多个可以经由专门的网络设备(例如,网关153)连接到数字总线145。例如,现场设备154可以仅理解HART命令,并且I/O网络145可以实现PROFIBUS协议。为了这个目的,网关153可以提供双向的PROFIBUS/HART转换。
[0022] 控制器110可以是在其中具有一个或多个处理器的工厂内的多个分布式控制器中的一个或多个,所述控制器110实现或监视一个或多个过程控制例程。例程可以包括存储在控制器110中或与其相关联的一个或多个控制回路。控制器110还通过网络130和相关联的网络设备132与设备140、143、154进行通信,并且与主机计算机和服务器120-122以及数据历史记录或其他数据库112进行通信,以用任何期望的方式来控制进程。应该注意到,本文描述的任何控制例程或元件如果期望都可以具有由不同控制器或其他设备来实现或执行的其部分。同样地,本文描述的要在过程控制系统100内实现的控制例程和元件可以采取包括软件、固件、硬件等的任何形式。出于本次讨论的目的,过程控制元件可以是过程控制系统的任何部件或部分,包括例如存储在任何计算机可读介质上的例程、块或模块。可以是诸如子例程、子例程的部分(例如,代码行)等的模块或控制程序的任何部分的控制例程可以以任何期望的软件格式实现,例如使用梯形逻辑、顺序功能图、功能块图、面向对象编程或任何其他软件编程语言或设计范式。同样地,可以将控制例程硬编码至例如一个或多个EPROM、EEPROM、专用集成电路(ASIC)、或任何其他硬件或固件元件中。进一步地,可以使用包括图形化设计工具或任何其他类型的软件/硬件/固件编程或设计工具在内的任何设计工具来设计控制例程。由此,控制器110可以被配置为以任何期望的方式来实现控制策略或控制例程。
[0023] 进一步地,如图1所示,另外的通信网络160连接到服务器122以及工作站120和121,以使过程控制系统服务器122以及工作站120和121能够连接到工厂信息技术系统、连接到商业系统或工厂内的其他网络化系统。
[0024] 一般而言,工作站和服务器120-122以及图1的网络内的其他设备实现本文所称为的基于最小特权的安全架构,所述基于最小特权的安全架构(1)操作用于以各种方式将在图1的各种计算设备(例如,工作站、服务器、数据库、控制器等)中执行的服务和其他更低层次的进程与桌面应用程序隔离或分离,以及(2)将服务和桌面应用程序的特权限制为仅这些进程执行它们的功能所需要的那些。这种基于最小特权的安全架构有助于防止恶意软件能够被导入到过程控制系统设备中以及在过程控制系统设备内被实例化或执行。一般而言,可以通过将过程控制系统的每一个计算机设备的全局命名空间划分为一个或多个服务命名空间和一个或多个用户(桌面应用程序)命名空间来将任何计算设备内的桌面应用程序与服务或其他进程隔离。这样的划分防止桌面应用程序能够直接访问在服务所使用的命名空间中定义的对象(例如,互斥体),并且防止服务能够直接访问针对桌面应用程序所使用的桌面命名空间定义的对象(例如,在桌面环境中)。相反,各种桌面应用程序和由操作系统实现的服务之间的所有通信必须经由公知的并且受信任的进程间通信(IPC)来进行通信,所述公知的并且受信任的进程间通信(IPC)提供了基于受信任的消息发送的通信结构,所述基于受信任的消息发送的通信结构将通信限制为在其中实现该通信的设备/工作站/服务器,并且由此防止或降低了一个应用程序或服务损坏、感染或干扰其他应用程序和服务(例如,存储器空间)的操作的能力。以这种方式,经由桌面应用程序引入的恶意软件不能被容易地导入到服务或其他更低层次的进程,并且反之亦然。
[0025] 进一步地,本文描述的基于安全的架构通过将授予给每一个服务和桌面应用程序的特权限制为特权的指定子集,例如,限制为给予该服务和应用程序在其下运行或调用的登录用户账号的特权的子集,来限定/限制恶意软件被引入到系统中或在系统内扩散的能力。例如,在正常运行在管理员账号下的服务通常具有管理员的全部特权的情况下,所述新的安全软件架构仅利用该服务执行其被设计执行的功能所需要的特定特权而不是利用所有的管理员特权来生成或运行一些服务或所有服务。进一步地,具有通信网络访问(经由通信网络端口)或经由可移除存储器端口(例如,USB端口)对可移除数据存储装置访问的服务运行在具有严格限制的特权的账号下,其中,这些服务不具有管理特权,不具有本地磁盘(即本地存储器)存储(写)特权,并且不能经由通信网络端口或可移除存储器端口的另一个直接进行通信。这样的特征防止或至少降低了恶意软件使用由具有更高特权的用户调用的服务使其能够访问该服务本身所不需要的设备或功能的能力,由此限制了恶意软件感染其他设备或者简单地因为服务在登录用户账号下被执行或调用,就执行更高特权的命令或服务的能力。
[0026] 同样地,安全特征可以自动限定应用程序(例如,由登录用户开启的桌面应用程序)的特权,以防止特权的提升。在一些情况中,安全架构可以防止任何或所有桌面应用程序能够对特权进行提升,使得要求用户提升特权的请求将指示该应用程序已经被感染。一般而言,由桌面应用程序(运行在登录用户账号下)进行的特权提升当前通常要求授权用户的批准来执行要求提升的操作。更新的操作系统通常通过对由包括管理员的登录用户启动的应用程序仅授予标准用户特权(非提升的/管理员特权)并且要求特权的提升要由用户特别授权来施行这个特征。新架构能够在任何事件中防止桌面应用程序的特权提升,由此提供另一层次的安全性,所述另一层次的安全性限制恶意软件在系统内自动提升特权并且使用所述提升来感染额外的进程或设备的能力。
[0027] 同样地,本文描述的安全架构也可以使用访问控制,所述访问控制通过调用操作系统及其子系统(例如,文件、互斥体、事件)来施行哪些用户账号和哪些进程(服务或桌面)被授权来访问安全对象;可以使用机制,所述机制防止较低特权的进程将代码注入到较高特权的进程;并且可以使用基于分组的账号,其一般被称作“分组”,来允许特权/许可的继承。例如,用户A可能属于分组B,而分组B属于分组C。用户A因此从B和C两者继承特权和许可。然而,尽管这些特权在登录用户账号侧是被共享或是可移植的,但是这些特权并不能被传播到从在这些账号下运行的应用程序接收消息的服务或进程,这就防止了服务和进程(例如,响应于从这些应用程序接收的消息而由操作系统实例化的那些)能够具有提升的特权。由此,总体上,针对由操作系统生成或执行的服务和进程的特权相对于针对登录用户账号定义的特权独立地被定义,使得在具有较高特权账号下运行的服务和进程(在很多情况下,是应用)被限制为特权的子集,即对于服务或应用或其他进程的预期操作而言是必需的最小特权。
[0028] 总体上,参照图2,将本文描述的安全特征和安全架构示出为实现在服务器或工作站或控制器中,例如,图1的那些设备中的任何设备。然而,应该理解的是,本文描述的安全概念可以以相同或类似的方式实现在其他类型的计算机设备或机器(例如,工作站、数据库服务器等)中。更具体地,图2示出了连接到零个、一个或多个网络/数据链路230的工作站/服务器/控制器220,所述网络/数据链路230中的一个可以是例如图1的网络130。此外,在这种情况中,服务器/工作站220连接到一个或多个本地数据存储器235,所述一个或多个本地数据存储器235在图2中被示出为在工作站/服务器/控制器220的内部或与其直接连接。此外,工作站/服务器/控制器220可以包括或连接到用户界面或显示设备237,并且包括零个、一个或多个可移除介质端口239。外部或可移除存储器设备可以通过其连接到设备220的可移除介质端口239可以包括或是任何类型的存储器访问端口,包括USB端口、到CD或DVD驱动器的标准或专有连接、外部硬盘驱动器、闪存或固态存储器驱动器、磁盘驱动器等。如图2所示,数据、程序等可以经由可移除或便携存储器设备(例如,USB闪存驱动器240、DVD或CD 241等)经由端口239中的一个被提供给工作站/服务器/控制器220或从工作站/服务器/控制器220导出。
[0029] 此外,工作站/服务器/控制器220包括零个、一个或多个通信端口245,其中的每一个都连接到通信网络/数据链路或通信接口,所述通信网络/数据链路或通信接口可以是例如有线或无线通信网络,例如,以太网络、WiFi网络、互联网协议网络、或任何其他局域或广域网络或数据链路。
[0030] 如图2还示出的,工作站/服务器/控制器220被划分为两种类型的命名空间,包括服务命名空间250和零个、一个或多个登录用户命名空间(在图2中被示为单个的登录用户命名空间252)。当然,对登录到工作站/服务器/控制器220中的多个用户中的每一个不同用户,可以有不同的登录用户命名空间(本文中也被称为用户命名空间),并且一些设备(例如,服务器)可以不具有登录用户命名空间。如图2中还描绘的,桌面应用程序258的集合存在并且运行在用户命名空间252中,同时服务260存在并且执行在服务命名空间250内。一般而言,桌面应用程序258是在用户命名空间中执行的进程,而本文中简称为服务的服务进程是独立于登录用户运行的进程,并且通常是由操作系统(或其代理中的一个,例如,Windows服务控制管理器)响应于配置设置、发送到服务进程的对操作系统、请求消息(例如,Windows COM/DCOM消息)的调用来生成或运行。分离的进程是在与启动它们的进程(例如,服务进程或桌面应用程序进程)的相同命名空间中执行的独立进程。作为示例,分离的进程可以在服务命名空间中被启动,并且可以是实现USB或其他本地数据存储设备读取或以本文描述的方式与通信网络进行连接的进程。尽管服务260通常是自动启动的,但是这些进程可以响应于用户进程或其他服务发送的请求消息而被启动。然而,如本文中更详细地描述的,服务260总是运行在指定账号下,与启动它们的进程的用户账号无关,并且与它们被如何启动无关,而分离的进程在启动它们的进程(例如,服务或桌面应用程序)的账号下运行或执行。特别注意的是,图2中的服务260可以包括能够访问网络(经由通信端口245中的一个)的零个、一个或多个服务命名空间进程262,经由外部介质端口239能够访问可移除存储设备的访问的服务命名空间进程264,以及既不能够访问便携式或本地存储器也不能够访问通信网络的其他服务命名空间进程266。进一步地,本地数据存储设备或存储器235包括各种类型的文件或文件夹,其包括由服务命名空间进程260创建并且使用的服务文件或文件夹270,以及由登录用户命名空间进程(例如,由桌面应用程序258)创建并且使用的桌面文件或文件夹272。
[0031] 从图2中应该理解的是,工作站/服务器/控制器计算环境由此利用不同命名空间规则被分离成多个子空间,所述不同命名空间规则与登录用户(或用户组)中每一个的单独命名空间相关联,以及利用由操作系统及其配置数据施行的所述规则被分离成服务(或由服务生成的分离的进程)。将全局计算环境命名空间划分为服务和登录用户(桌面应用)命名空间防止桌面应用程序直接访问在服务命名空间中定义的对象(例如,互斥体),并且防止服务命名空间进程直接访问针对登录用户命名空间(由桌面应用程序使用的)定义的对象(例如,桌面)。以这种方式,服务和桌面应用程序必须互相通信(例如,被强制通信)或通过互相进行通信以到达在那些不同命名空间的每一个中创建的对象。所述特征防止可以在一个环境中的服务中或桌面应用程序中存在的恶意软件在另一个命名空间中创建或使用对象而不通过另一个命名空间中相应的服务或应用,这总体上限制了恶意软件能够损坏其他服务或应用程序。这个特征例如限制了恶意软件在另一个环境中创建或感染对象的能力,这限制了恶意软件经由例如通信网络230在控制系统中被建立或被传播到控制系统的能力。
[0032] 上文描述的安全软件架构以各种方式操作以提高在工厂或其他工业自动化系统中使用的工作站/服务器/控制器220的整体安全性。构建这样的安全机制来实现多个规则或特征,所述安全机制一般被应用到控制系统中的所有计算设备或机器上,包括执行由第三方开发的进程/应用程序(以及由操作系统供应商开发或提供的进程/应用程序)的机器。
[0033] 本文描述的并且由工作站/服务器/控制器220的操作系统的配置所施行的规则中的一些应用于要求提升的特权、网络访问、本地磁盘写入访问或能够访问便携或可移除存储器设备(例如,USB存储器设备、智能电话、CD/DVD驱动器)的所有进程。这些进程包括例如图2的进程262和264。特别地,这些进程(1)被执行作为服务或由服务生成,(2)在属于定制分组/色的定制(非标准或默认)账号下执行,(3)仅被授予对所需要的资源的访问,(4)明确地拒绝对非明确需要的资源的访问,(5)仅被授予它们需要操作的特权,(6)不具有允许在另一账号下运行的进程将账号改变为该定制账号的模仿特权,以及(7)不具有将权限授予给另一个运行中的进程以在该定制账号下运行的委托特权。此外,如果这些进程能够访问网络,或能够访问便携或可移除存储器设备,则这些进程既不具有提升的特权,也不具有写入到本地存储器存储装置(例如,磁盘)的能力。
[0034] 同样地,这些进程经由受信任的本地进程间通信(例如,WCF命名管道、COM等)相互进行通信,除了不允许要求访问网络的进程直接与具有能够访问便携或可移除存储器设备的进程进行直接通信以外,并且反之亦然。图2中由线290示出的这个例外被实现以防止将从便携存储器设备读出的恶意软件转发到通信网络,以及将从通信网络接收的恶意软件存储到便携或可移除存储器设备。
[0035] 此外,如图2中的虚线291所示的,进程260(例如,进程262、264、266)都不能直接访问桌面命名空间252或桌面命名空间252中的对象。其结果是,这些进程仅经由受信任的本地进程间通信292向桌面应用程序258提供服务(并且特别是特权服务),这由在图2中的服务260和桌面应用程序258之间往返的线示出。
[0036] 此外,要求网络访问、或访问便携或可移除的存储器设备的所有进程(例如,图2的进程262和264)都执行或运行在如下的账号下:(1)不能访问命令外壳,(2)不能访问改变工作站/服务器/控制器220的安全配置(策略设置和账号)的程序,以及(3)受限定不能执行文件系统写入,所述特征由图2中的虚线294示出。其结果是,仅有不能访问网络(例如,经由端口245)或不能访问便携或可移除存储器(例如,经由端口239)的服务266才能执行文件系统到数据库235内的数据文件270的写入。
[0037] 进一步地,还存在在桌面环境252中实现的各种安全特征。特别地,所有的桌面应用程序,也称为交互应用程序/进程,都在没有提升的特权的条件下运行或执行,不论使用什么用户或登录账号来启动或调用这些应用程序或进程。由此,在具有管理特权的用户启动桌面应用程序的情况下,该桌面应用程序仍然利用相当于标准用户的受限的操作系统特权被执行,与发起用户的特权无关。进一步地,如上所述,桌面应用程序258不能直接访问通信网络230,但是相反地,必须经由进程间通信与服务命名空间250中的提供通信网络访问的服务262进行通信。同样地,桌面应用程序258不能直接访问便携存储器设备240、241,但是相反地,必须与提供对这些设备的访问的服务264进行通信(经由进程间通信)。此外,桌面应用程序258被限制不能访问系统拥有的目录和文件,否则如果被感染,则可能损害系统的性能/操作。由此,如图2的线296所示的,桌面应用程序258可以写到桌面文件夹和文件272,但是不能写到服务文件夹和文件270。此外,桌面应用程序258被设计为从不要求提升的特权并且不能被提升,与发起用户特权无关。同样地,桌面应用程序258从不能够模仿另一个用户,并且必须经由受信任的本地进程间通信来进行相互通信。
[0038] 进一步地,所有用户身份都经由被数字签名的身份声明在服务和进程260与桌面应用程序258之间传递,并且这样的身份声明跟随通信或与通信一起流动,并且通过各种进程和网络,以使得能够对过程控制系统许可进行验证。例如,过程控制系统操作员可以做出请求(经由桌面应用程序),例如在诸如控制器等的过程控制设备中写入参数(例如,定位点)。在经由通信网络将该请求发送到要实现该写入的过程控制设备的过程期间,该请求可以要求调用或生成各种服务。用户身份声明与该请求一起流过用于经由过程控制网络中的各种机器来创建和转发该请求的各种进程,使得实现改变的过程控制设备能够验证该请求是来自具有用于做出改变的合适许可的用户的,并且由此能够检查和记录与执行写操作的进程相近的改变。该特征保证执行操作的个人用户被准确并正确地识别,而不使用模仿和/或委托。此外,该特征能够使桌面应用程序或由桌面应用程序(例如,过程控制应用程序)启动的进程能够在登录用户的上下文中被启动,并且通过交接班来继续操作,而不需要由另一用户重新启动,这是因为交接班并不要求登录用户注销。相反,新的交接的操作员向过程控制系统表明自己的身份,而不必登录到操作系统。以这种方式,所有的桌面应用程序将以登录用户的特权运行,并且因此,哪个操作员启动了桌面应用程序无关紧要,只要新的操作员在使用应用程序时表明自己的身份以使得合适的身份声明与进程操作请求一起流动即可。此外,在没有该机制的情况下,服务/进程/应用程序只能识别具有如下账号的用户:服务/进程/应用程序在该账号下运行或被该账号调用。在控制系统中这个特征也是重要的,这是因为操作员控制台的当前用户可以不是登录的用户。这个限制消除了具有被盗的登录用户身份的危险,该被盗的登录用户身份在确定操作系统特权和访问控制许可中被使用,以防止用于确定用于向控制系统资源(例如,参数和警报)提供访问的访问控制许可。
[0039] 一种用于实现上文关于图2描述的安全特征的方法是使用定义被授予给基于标准、开放架构操作系统的控制系统内的各种应用程序和服务的特权和许可的更严格的方法。特别地,当前,通常基于每一个用户来针对用户定义特权和许可,使得一些用户具有比其他用户更多的特权和许可。在这个架构中,应用程序(例如,桌面应用程序和由其启动的进程)通常被授予启动或调用这些应用程序或进程的登录账号的特权和许可。另一方面,许多服务(例如,基于配置设置、或者响应于来自应用程序或来自用户请求的对操作系统的调用或者用于对到来的消息进行处理而生成的进程)被授予了它们被配置为在其下运行的操作系统账号的特权。其结果是,在这些系统中所有的特权和许可或服务都由该账号控制。更特别地,桌面应用程序总是在登录用户的账号下被启动,而服务和进程总是在针对它们配置的账号下被启动,并且由其他进程启动的进程总是使用启动它们的进程在其下运行的账号来被启动。因此,常见的情况是服务在标准OS服务账号下或用户账号下运行。
[0040] 相反,图2的安全架构针对服务定义特权和许可与被定义用于登录用户账户的特权和许可不同地定义,并且因此不允许服务在具有交互式登录特权的用户账号下运行。也即,服务总是在不具有交互式登录特权的特定服务账号下运行。特别地,图2的安全架构可以将本文中提到的内容定义为具有不同的或受限的特权和许可的集合的定制服务账号,并且可以将图2的服务260中的每一个分配给这些定制服务账号中的一个或多个,以达到针对这些服务分配特权和许可的目的。每一个服务被分配给具有该服务需要的最小特权集合的定制服务账号。服务不应被分配给具有多于该服务的操作所需要的特权的定制服务账号。然而,为了减少定制服务账号的大量产生,服务可以在如下的定制服务账号下运行:所述定制服务账号只有在账号配置有将从定制账号继承的特权限定为仅该服务需要的那些特权的受限服务集合的情况下,才具有多于其需要的特权。在一些情况中,例如在能够访问通信端口或外部介质端口的服务的情况下,服务可以被分配给具有这些服务不能写入本地数据存储装置(磁盘)的进一步限制的最小特权账号。另一方面,桌面应用程序以发起用户的特权来运行,但其应该总是以受限的标准用户特权被启动,并且只有当其需要提升,并且只有在随后被用户批准时才能被提升。如果该用户不具有必要的特权,则应该要求具有所述特权的用户来批准该提升。以这种方式,服务和应用程序可以具有有限的特权集合,所述有限的特权集合限制了恶意软件使用这个架构来感染控制系统的能力。
[0041] 一般而言,定制服务账号(以及针对这些账号的特权)可以被定义,并且随后可以被分配给服务,这可以进一步限制定制账号的特权,使得服务只具有该服务需要执行针对其设计的任务或功能的特权或许可。
[0042] 图3示出了允许用户登录和定制服务账号310的用户账号306的示例性的相互关系或关联的框图300,可以使用所述账号来将操作系统特权和许可配置或提供给服务312和桌面应用程序314以及其他进程,除了与针对用户登录账号定义的过程控制系统许可相关联的许可或特权或将其与针对用户登录账号定义的过程控制系统许可相关联的许可或特权分离。
[0043] 如图3所示,定义了用户账号306的集合,并且如用户账号306和分组账号302之间的虚线所指示的,每一个用户账号306可以属于一个或多个分组账号302。以这种方式,每一个用户账号将继承与其相关联的或其所属于的任何分组账号302的操作系统特权和许可,并且随后在桌面应用程序由相关联的登录用户启动时将那些特权/许可继续传递给桌面应用程序。如图3中还示出的,用户账号306可以属于多个分组账号302并且由此继承多个分组账号302的特权和许可,该分组账号302也可以属于其他分组账号302或从其他分组账号302继承。同样地,如图3所示,还建立了定制服务账号310的集合,每一个都在操作系统内具有各种不同的操作系统特权和许可(包括访问许可)以进行活动,例如,通信特权、读/写特权、访问特权等。每一个定制服务账号310可以属于一个或多个分组账号302并且由此继承所述一个或多个分组账号302的特权。计算设备内的各种服务312和由它们启动的进程中的每一个被分配给定制服务账号310中的一个(或可能多于一个),并且继承或具有这些服务312所属于的定制服务账号310的操作系统特权。一般而言,针对每一个定制服务账号310提供的操作系统特权和许可相对于用户账号306被单独并且分离地定义。特别地,应该专门针对服务312和其所启动的进程(例如,分离的进程、从属进程)来对定制账号310的特权和许可进行裁剪(限定),并且定制账号310的特权和许可应该仅具有服务312和其所启动的进程进行操作以执行其预计功能所必需的操作系特权和许可,而不能更多,除非服务/进程被配置为进一步对从定制服务账号继承的特权进行限定。
[0044] 通过使用用户账号306和定制服务账号310,服务命名空间进程312(即其中运行有服务和服务所启动的进程的操作命名空间)以及桌面命名空间进程314(即其中运行有桌面应用程序和其所启动的进程的操作命名空间)可以与不同的定制账号310或用户账号306相关联,使得由桌面应用程序调用的服务可以具有与调用的桌面应用程序不同的特权而执行。表述“由桌面应用程序调用”是指服务接收到了由桌面应用程序发送的远程程序调用消息。
[0045] 进一步地,如图3所示,在更高的层次上,可以建立分组账号302的集合以定义操作系统特权和许可(包括访问许可)的特定的集合。分组账号可以与计算机设备内或作为整体的过程控制工厂或系统内的零个、一个或多个定制服务或用户账号相关联(例如,使用活动目录)。每一个分组账号302可以包括能够由是分组账号306成员的其他分组账号、定制服务账号和/或用户账号所继承的操作系统特权和许可的特定的集合。通过使这些账号成为该分组账号的成员来实现继承。由此,定制账号312和用户账号306可以属于相同的分组302,并且从而继承相同的操作系统特权和许可。分组账号302由此与通常在过程控制系统中使用以对过程控制(与操作系统不同)特权和许可进行定义的角色不同。过程控制角色(与操作系统分组不同)倾向于包括对工厂的特定区域或功能负责的个体(操作员、配置工程师、技术人员等)的分组。尽管这样的不同角色可以针对这些人定义不同的过程控制系统特权和许可,但被分配给不同角色的人经常在相同的用户登录账号下运行,并且具有相同的操作系统特权和许可的集合,但是却具有不同的过程控制系统特权和许可。应该理解的是,在任何事件中,如所理解的,分组账号302定义如下的操作系统特权和许可:其可以通过用于运行服务命名空间进程的定制服务账号312和/或用户账号306以及由其登录用户启动的桌面命名空间进程继承的。
[0046] 由此,图3示出了在各种账号302、306和310下对各种服务312和应用程序314进行分组,所述各种账号302、306和310用于针对服务和应用程序分配操作系统特权。图3中示出的定制服务账号310仅用于服务进程312以及服务命名空间中的其他进程,而用户账号306仅用于桌面命名空间中的进程(例如,应用程序314)。在通常的情况中,桌面命名空间中的所有进程(例如,桌面应用程序314)开始具有“标准用户”账号306A(最小特权账号)的特权,其不包括管理员特权。此外,定制账号310被定义为仅具有其所需要的额外特权。然而,如图3所示,不止一个服务312可以在相同定制服务账号310下运行,并且如果服务312不需要所有的定制服务账号特权,则可以单独地拒绝该定制服务账号的特权中的一些。然而,对于能够访问通信端口或外部介质端口(例如,USB端口)的那些服务,服务运行在如下的定制服务账号下:该定制服务账号没有提升的(例如,管理员)特权并且具有进一步限制:这些服务不能写入本地(内部)数据存储装置或磁盘。这里应该理解的是,本地或内部数据存储装置是要表示以相对永久的方式连接在计算机设备中的数据存储装置,而不是本质上便携或易于移除的并且由此不经由外部介质访问端口来连接。本地存储器或数据存储装置一般包括内部磁盘驱动器或内部随机存取存储器
[0047] 由此,根据以上提供的讨论,应该理解的是,包括访问许可在内的操作系统特权被授予给与用于授予/拒绝用户对过程控制系统对象(例如,定位点、温度&压力测量、以及报警门限)完全无关的访问控制的进程(例如,服务或桌面应用程序)。对过程控制对象的访问要求将单独的用户身份与请求一起传递,以允许过程控制设备对过程控制系统许可进行验证,这是因为施行访问许可和操作系统特权的操作系统对控制系统的对象一无所知。如所知道的,控制系统一般具有单独的用户管理器,其定义了每一个控制系统用户能够在控制系统中访问什么,以及用户身份声明被提供以使该单独的用户管理器能够正常地操作。
[0048] 在任何情况下,使用了这个架构,用户具有的访问过程控制对象以在过程工厂中执行动作等的许可和特权与在定制服务账号或用户登录账号下运行的服务和应用程序的特权和许可不相关。这个特征减弱或消除了被感染的进程能够使用继承自定制服务账号或用户账号的操作系统特权和许可的能力,在所述定制服务账号或用户账号下运行有被感染的进程以访问或损坏过程控制对象的执行。
[0049] 如图3还示出的,在其上执行有进程(例如,服务或应用程序,或者由服务或应用程序启动的进程)的计算机的执行引擎320(例如,操作系统执行引擎),使用以下规则针对服务312或应用程序314或它们所启动的进程来授予特权。由登录用户直接启动的进程获得与标准用户账号相关联的用户特权和许可的标准集合,即使该用户具有提升的特权(例如,管理员)。由操作系统启动的服务获得该服务所属于的定制服务账号的特权和许可,所述特权和许可由被配置用于该服务的任何限制所减少。由进程启动的进程获得了进行启动的进程的当前的特权和许可的集合。这种组织方式使得每一个进程(例如,每一个服务312或应用程序314或由此启动的进程)能够以执行该进程的特定功能所需要的最小特权运行或执行。这个功能由此限制了感染服务312或应用程序314或由此启动的进程采取服务312或应用程序314对正常操作而言并不需要的动作的恶意软件的能力,并且由此限制了恶意软件在计算机设备中操作或在过程控制系统网络内传播到其他过程控制系统设备或其他计算机设备的能力。进一步地,执行引擎320可以不允许或可以防止桌面应用程序314或服务312内的特权升级,以防止恶意软件能够使操作系统的特权构造失败。
[0050] 图4示出了计算机系统400的示意图,该计算机系统400可以实现上文关于提高计算机设备或工厂网络的安全性描述的规则或配置特征,以限制恶意软件的扩散或有恶意软件引起的可能的感染。特别地,如图4所示的,计算机系统图400被分成具有各种硬件部件的硬件系统402(实线403下方)和具有各种软件/固件部件的软件系统404(实线403上方)。应该理解的是,软件系统404的软件/固件部件实现在与计算机系统或设备400相关联的一个或多个计算机处理器和存储设备(未在图4中示出)中。
[0051] 如图4所示,硬件系统402可以包括一个或多个存储器设备405,例如,数据库、内部本地存储器、硬盘驱动器、闪存驱动器、RAM、ROM等。这些存储器405可以包括图2的局部数据存储器235以及数据文件270和272。硬件系统402还可以包括一个或多个网络卡或端口406,其可以经由网络端口(例如,图2的网络端口245)将软件系统404连接到一个或多个外部通信网络。同样地,硬件系统402可以包括一个或多个外围设备407,例如,用户界面(例如,图2的用户界面237)、打印机键盘鼠标设备、外部存储器驱动器(例如,经由图2的外部存储器端口239连接)等。当然,替代本文中专门描述的那些或除了那些之外,硬件系统402中可以包括任何其他的外围设备或设备端口或连接。进一步地,硬件系统402可以包括其上执行本文描述的操作系统和进程的一个或多个处理器408。
[0052] 如图4所示,软件系统404包括操作系统(OS)部件、服务或其他进程414以及配置信息或配置数据集合416(例如,Windows注册表),其可以用于按本文描述的方式来对软件系统404的操作进行配置。在这种情况下,服务进程414,在本文中被称为服务414,是独立于登录用户运行的,并且其一般响应于对OS 410的调用或命令或由OS 410传递到服务进程414的消息而运行。也即,服务414通常是在OS 410或OS 410的代理(例如,Windows服务控制管理器)的控制下生成或运行。尽管这些进程通常被自动启动,但它们可以响应于由桌面应用程序发送的请求信息而启动。然而,如上文所指示的,在这两种情况中,这些服务总是在指定的定制服务账号下运行,而不考虑什么进程或哪个进程使得这些服务启动。此外,图4的软件系统404包括各种桌面应用程序420。应该理解的是,应用程序通常由各种登录用户启动并且对各种登录用户可用,并且在那些用户的账号425(图4中由虚线示出)下运行。因此,与总是在相同定制服务账号下运行的服务不同,如上文所示的,应用程序在不同的用户账号(当前登录用户账号)下运行。当然,应用程序420可以是图2的桌面应用程序258,并且用户账号425可以如通常地具有不同的特权和许可或可以全部都具有相同的操作系统特权和许可,例如,与标准用户相关或针对标准用户定义的那些,这些操作系统特权或许可一般具有操作系统特权和许可的最低层次或集合。重要的是,配置信息416可以包括注册表和其他配置信息,所述其他配置信息定义OS 410的配置以通过上文描述的方式来操作或实现上文关于图2所描述的规则。在这种情况下,配置信息416可以定义包含特权的账号信息,可以定义将账号与OS资源相关联的访问控制列表,以及针对该账号定义访问许可、并且可以定义允许被继承的账号特权在运行时受限的信息。在后一种情况中,服务/应用开始具有已经按照配置信息指定而被减少的账号特权的集合。然而,这种类型的配置信息不会向那些从账号继承的特权添加特权,而只会减少这些特权。配置信息可以被创建或提供作为由控制系统提供商或控制工程师提供的配置活动的一部分,使得配置信息可以被预置以指定何种操作系统特权经由用户账号、分组账号、以及定制服务账号与服务414和应用程序420中的每一个相关联或被提供给(例如其所需的)服务414和应用程序420中的每一个。同样地,某些用户(例如,管理员)可以改变配置信息416以添加新的账号、定义新的账号等。此外,可以针对桌面应用程序创建类似的配置信息,或其可以由配置工程师在配置进程期间提供、或由应用程序提供商(例如,桌面应用程序的第三方提供商)提供,或者可以被默认设置为最小层次的特权、或可以由管理员设置。
[0053] 如图4所示,OS 410使用配置信息416来控制操作系统特权,并且由此控制各种应用程序420(其可以经由API或直接地与OS 410通信)的许可和能力,以及控制服务414以施行上文描述的最小特权安全特征。由此,OS 410使用配置信息(一般地,账号管理信息存储于数据库或文件中,例如,活动目录、工作组配置文件、.exe特定配置文件等),并且使用划分的命名空间来施行如下的要求,即应用程序420仅经由IPC(由图4的线430示出的)相互通信,应用程序420仅经由IPC(由图4的线431示出的)与服务414通信,以及服务414仅经由IPC(图4中由线432示出的)与其他服务414通信。同样地,OS 410(或以本文描述方式执行的应用程序/服务)可以使用配置信息416来防止某些服务与其他服务通信(例如,防止能够访问网络的服务与能够访问外部介质的服务通信),防止应用程序420写入到存储在本地或内部存储设备的服务文件和文件夹(例如,图2的文件270),防止任何服务写入桌面文件夹(例如,图2中的文件272)或防止其以任何其他方式来访问桌面,以及防止能够访问网络或外部介质的任何服务写入到服务文件或文件夹(例如,图2的文件270)。应该理解的是,OS 410施行这些规则的一种方式是通过在配置模块416的配置文件中紧密控制各种账号以及与各种账号相关联的服务和应用程序的操作系统许可和特权。
[0054] 应该理解的是,图2-4示出的整个设计的目标是对服务、应用程序和其他进程进行划分(隔离),所述服务、应用程序和其他进程在例如过程控制网络的自动系统工作站和服务器或其它计算机设备中运行,来实现隔离感染以防止其自我保持,使得感染在重启时消失,从而通过不允许感染获取提升的特权以及通过限制通信接口服务和内部或外部介质端口处理进程的特权来降低感染的传播能力、降低感染能够造成的损害。使用这些规则,如果服务或由服务生成的其他进程被感染,则(1)被感染的服务或进程将不具有提升的特权,这是因为该服务或进程以受限的特权运行,(2)被感染的服务或进程将不具有访问其不直接需要的资源的许可,以及(3)被感染的服务或进程将不能通过重启来自我保持。特别地,能够访问网络和能够访问外部介质端口(例如,USB端口)的服务具有对其能做什么的限制,并且因为这些服务感染能够由其进入机器的唯一途径,所以如果感染,对这些特别的服务能做的事(例如,防止这些服务写入到本地存储器存储装置或磁盘、防止能够运行提升的特权、防止直接访问桌面、防止在便携/外部媒介与通信网络/数据链路之间传播感染等)进行限制,会防止在计算机设备或网络内扩散感染。其结果是,感染被自动隔离,并且重启服务会清除感染。对仅在被访问时执行的服务(例如,COM/DCOM服务)而言,调用进程在每一次新的调用时获得干净的服务的副本,由此清除了服务中的任何感染。
[0055] 同样地,使用了这些规则,如果桌面应用程序被感染,则该应用程序将既不能够直接访问操作系统(OS)的有特权的功能,也不能够写入网络或便携存储器设备。相反,该应用程序将请求(经由IPC)由被设计为使有特权的功能和资源生效并且向其提供额外的访问控制层次的服务和这些服务的进程代表自身来执行动作。
[0056] 因此,根据这个架构实现的一些关键优势包括如果这些进程被恶意软件感染,则防止能够访问网络或便携式存储器设备的进程、防止能够使用管理特权来攻击系统、防止能够对通用/标准账号可用的资源的访问、防止写入文件系统、以及防止将恶意软件从便携存储器设备传播到网络,并且反之亦然。这个架构还提供了防止桌面应用程序直接访问受信任或受限的资源(例如,本地数据文件)或使用提升的特权的保护,由此限制系统曝光于恶意软件,如果该桌面应用程序被恶意软件感染。此外,这个架构允许控制系统的进程在仅具有其需要的操作系统/文件系统特权和许可的操作系统账号下运行,同时允许这些进程使用用户身份声明来访问控制系统资源。
[0057] 尽管在本文中已经将本文描述的安全技术描述为与使用现场总线和标准4-20ma设备的网络化过程控制设备和系统相结合地使用,然而它们当然也可以在使用任何其他过程控制通信协议或编程环境的任何类型的控制设备中实现,并且可以与任何其他类型的设备、功能块或控制器一起使用。此外,本文描述的安全技术可以实现在任何类型的计算机设备中,包括不是过程控制系统一部分的计算机设备。尽管本文描述的软件安全架构特征优选地在软件中实现,它们也可以在硬件、固件等中实现,并且可以由与计算机设备相关联的任何其他处理器执行。由此,如果期望,本文描述的方法可以在标准的多用途CPU中实现或在专门设计的硬件或固件(例如,ASIC)上实现。当在软件中实现时,该软件可以存储在任何计算机可读存储器中,例如,存储在磁盘、激光盘、光盘或其它存储介质上、存储在计算机或处理器的RAM或ROM中等。同样地,该软件可以经由任何已知或期望的交付方法被交付给用户或过程控制系统,所述任何已知或期望的交付方法包括例如在计算机可读磁盘或其他可移植计算机存储机制上,或通过诸如电话线、互联网等的通信信道上被调制。
[0058] 因此,尽管已经参照具体示例描述了本发明,但是这些特定示例仅是举例说明的而不是要对本发明进行限制,对本领域的普通技术人员而言显而易见的是,可以对公开的实施例做出改变、添加或删除,而不偏离本发明的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈