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

文档序号:9546483阅读:来源:国知局
且通常是由操作系统(或其代理 中的一个,例如,Windows服务控制管理器)响应于配置设置、发送到服务进程的对操作系 统、请求消息(例如,Windows C0M/DC0M消息)的调用来生成或运行。分离的进程是在与 启动它们的进程(例如,服务进程或桌面应用程序进程)的相同命名空间中执行的独立进 程。作为示例,分离的进程可以在服务命名空间中被启动,并且可以是实现USB或其他本地 数据存储设备读取或以本文描述的方式与通信网络进行连接的进程。尽管服务260通常是 自动启动的,但是这些进程可以响应于用户进程或其他服务发送的请求消息而被启动。然 而,如本文中更详细地描述的,服务260总是运行在指定账号下,与启动它们的进程的用户 账号无关,并且与它们被如何启动无关,而分离的进程在启动它们的进程(例如,服务或桌 面应用程序)的账号下运行或执行。特别注意的是,图2中的服务260可以包括能够访问 网络(经由通信端口 245中的一个)的零个、一个或多个服务命名空间进程262,经由外部 介质端口 239能够访问可移除存储设备的访问的服务命名空间进程264,以及既不能够访 问便携式或本地存储器也不能够访问通信网络的其他服务命名空间进程266。进一步地,本 地数据存储设备或存储器235包括各种类型的文件或文件夹,其包括由服务命名空间进程 260创建并且使用的服务文件或文件夹270,以及由登录用户命名空间进程(例如,由桌面 应用程序258)创建并且使用的桌面文件或文件夹272。
[0031] 从图2中应该理解的是,工作站/服务器/控制器计算环境由此利用不同命名空 间规则被分离成多个子空间,所述不同命名空间规则与登录用户(或用户组)中每一个的 单独命名空间相关联,以及利用由操作系统及其配置数据施行的所述规则被分离成服务 (或由服务生成的分离的进程)。将全局计算环境命名空间划分为服务和登录用户(桌面应 用)命名空间防止桌面应用程序直接访问在服务命名空间中定义的对象(例如,互斥体), 并且防止服务命名空间进程直接访问针对登录用户命名空间(由桌面应用程序使用的)定 义的对象(例如,桌面)。以这种方式,服务和桌面应用程序必须互相通信(例如,被强制通 信)或通过互相进行通信以到达在那些不同命名空间的每一个中创建的对象。所述特征防 止可以在一个环境中的服务中或桌面应用程序中存在的恶意软件在另一个命名空间中创 建或使用对象而不通过另一个命名空间中相应的服务或应用,这总体上限制了恶意软件能 够损坏其他服务或应用程序。这个特征例如限制了恶意软件在另一个环境中创建或感染对 象的能力,这限制了恶意软件经由例如通信网络230在控制系统中被建立或被传播到控制 系统的能力。
[0032] 上文描述的安全软件架构以各种方式操作以提高在工厂或其他工业自动化系统 中使用的工作站/服务器/控制器220的整体安全性。构建这样的安全机制来实现多个规 则或特征,所述安全机制一般被应用到控制系统中的所有计算设备或机器上,包括执行由 第三方开发的进程/应用程序(以及由操作系统供应商开发或提供的进程/应用程序)的 机器。
[0033] 本文描述的并且由工作站/服务器/控制器220的操作系统的配置所施行的规则 中的一些应用于要求提升的特权、网络访问、本地磁盘写入访问或能够访问便携或可移除 存储器设备(例如,USB存储器设备、智能电话、⑶/DVD驱动器)的所有进程。这些进程包 括例如图2的进程262和264。特别地,这些进程⑴被执行作为服务或由服务生成,⑵在 属于定制分组/角色的定制(非标准或默认)账号下执行,(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之 间的虚线所指示的,每一个用户账号
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1