首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 软件包 / 软件组件 / 规则引擎 / 计算机安全体系架构及相关的计算方法

计算机安全体系架构及相关的计算方法

阅读:1023发布:2020-06-13

专利汇可以提供计算机安全体系架构及相关的计算方法专利检索,专利查询,专利分析的服务。并且一种计算机安全体系架构,将从定义一个或多个安全策略的一组规则中选出的规则应用到给定的一组安全环境参数,以产生安全裁定,每一个代表主题实体 请求 的一种特定动作是否是可允许的。每个安全策略关联一个对应的通信 接口 。多个网关引擎中每一个与至少一个所述主题实体相关联且专用于与安全 服务器 相连接。每个网关引擎实施对由相关主题实体所请求的动作的监控,且针对每个被请求的动作,识别安全环境。针对所述被请求的动作,安全策略基于相应的安全环境被确定,并且安全裁定经由与适用的安全策略相对应的 通信接口 被获得。,下面是计算机安全体系架构及相关的计算方法专利的具体信息内容。

1.一种用于提供计算机安全体系架构的系统,所述系统包括:
计算硬件,包括至少一个处理器、数据存储器以及与所述至少一个处理器相连接的输入/输出设备,所述数据存储器包括操作系统以及由所述至少一个处理器执行的多个主题实体;
所述数据存储器进一步包括由所述至少一个处理器执行的安全子系统,当其被执行时引起所述计算硬件实现
安全服务器引擎,配置为将从定义一个或多个安全策略的一组规则中挑选出的规则应用到给定的一组安全环境参数,以产生安全裁定,所述安全裁定代表由主题实体请求的特定的动作是否是允许的,其中所述一个或多个安全策略中的每一个与对应的通信接口相关联,并且其中,所述一个或多个安全策略中的每一个至少由第一预定义访问机制和第二预定义访问机制的结合定义,并且所述第一预定义访问机制和所述第二预定义访问机制中的每一个用可由所述安全服务器引擎访问的配置语言来描述,以实现所述安全策略,而无需重新编译所述安全服务器引擎;以及
多个网关引擎,每个网关引擎与至少一个所述主题实体相关联,且专用于与所述安全服务器连接,每个所述网关引擎配置为:监控由相关联的至少一个主题实体请求的动作,以及针对每个被检测到的被请求的动作,识别安全环境,基于对应的被识别的安全环境为所述被请求的动作确定适用的安全策略,并通过通信接口,从所述安全服务器引擎请求对应于所述适用的安全策略的安全裁定,其中针对所述安全裁定的请求包括发送至所述安全服务器引擎的至少一个安全环境参数,所述至少一个安全环境参数与所请求的动作、所述安全环境,或针对所述所请求的动作所适用的安全策略相关,其中所述网关引擎不能产生安全裁定,并且其中所述网关引擎由以下配置:
适用于所述系统上的所有主题实体的系统级配置,以及
对于所述主题实体中的一个主题实体唯一的反射配置;以及
安全强制引擎,配置为根据所述安全裁定,允许或拒绝每个所述被请求的动作。
2.根据权利要求1所述的系统,其中多个所述主题实体中的每一个正好与一个网关引擎相关联。
3.根据权利要求1所述的系统,其中每个被请求的动作的安全环境包括至少一个参数,所述的至少一个参数从包括下列的组中选出:被请求的动作发生的时间,启动被请求的动作的用户的标识符,由所述被请求的动作调用的命令,或所述被请求的动作发生的时间、所述启动被请求的动作的用户的标识符、所述由所述被请求的动作调用的命令的任意组合。
4.根据权利要求1所述的系统,其中所述安全服务器的每个通信接口是只可由所述多个网关引擎访问的应用程序接口。
5.根据权利要求1所述的系统,其中每个被请求的动作包括一个应用程序接口调用。
6.根据权利要求1所述的系统,其中每个被请求的动作包括进程间通信。
7.根据权利要求1所述的系统,其中所述多个主题实体包括至少一个作为主题实体的进程。
8.根据权利要求1所述的系统,其中所述多个主题实体包括至少一个作为主题实体的应用程序。
9.根据权利要求1所述的系统,其中所述多个主题实体包括至少一个作为主题实体的计算设备。
10.根据权利要求1所述的系统,其中通过对微内核的执行来实施所述安全服务器引擎。
11.根据权利要求1所述的系统,其中每个所述网关引擎包括独立于任意所述安全策略的评估引擎。
12.根据权利要求1所述的系统,其中每个所述网关引擎包括配置,所述配置特定于对应主题实体并定义所述对应主题实体能够采取的多个动作请求,连同那些动作请求所涉及的对应的策略。
13.根据权利要求1所述的系统,其中每个所述网关引擎包括一个安全裁定高速缓存,配置为存储之前做出的与网关引擎相对应的安全裁定。
14.根据权利要求1所述的系统,其中所述一个或多个安全策略包括用于授权访问安全模型的参数。
15.根据权利要求1所述的系统,其中所述一个或多个安全策略包括用于Bell-LaPadula安全模型的参数。
16.根据权利要求1所述的系统,其中所述网关引擎中的每一个被所述安全子系统自动生成。
17.一种用于在计算机系统上执行计算机安全体系架构的方法,所述计算机系统包括至少一个处理器,数据存储器,以及与至少一个处理器连接的输入/输出设备,所述数据存储器包括操作系统和被所述至少一个处理器可执行的多个主题实体,所述方法被所述计算机系统自动执行,所述方法包括:
执行安全服务器,包括:将从定义一个或多个安全策略的一组规则中所选出的规则应用到给定的一组安全环境参数,以产生安全裁定,每个安全裁定代表主题实体所请求的特定的动作是否是允许的,其中所述一个或多个安全策略中的每一个与对应的通信接口相关联,并且其中,所述一个或多个安全策略中的每一个至少由第一预定义访问机制和第二预定义访问机制的结合定义,并且所述第一预定义访问机制和所述第二预定义访问机制中的每一个用可由安全服务器引擎访问的配置语言来描述,以实现所述安全策略,而无需重新编译所述安全服务器引擎;以及
执行多个网关引擎,每个网关引擎与至少一个所述主题实体相关联并专用于与所述安全服务器相连接,所述网关引擎中的每一个执行:
监控由相关联的至少主题实体所请求的动作,并且针对每一个被检测到的被请求的动作,识别安全环境;
基于对应的已识别的安全环境,针对被请求的动作,确定适用的安全策略,以及经由通信接口,从对应于所述适用的安全策略的所产生的安全裁定中获得安全裁定,其中针对所述安全裁定的请求包括发送至所述安全服务器引擎的至少一个安全环境参数,所述至少一个安全环境参数与所请求的动作、所述安全环境,或针对所述所请求的动作所适用的安全策略相关,其中所述网关引擎不能产生安全裁定,并且其中所述网关引擎由以下配置:
适用于所述系统上的所有主题实体的系统级配置,以及
对于所述主题实体中的一个主题实体唯一的反射配置;以及
根据所述安全裁定,执行安全强制决定,以允许或拒绝每个被请求的动作。
18.根据权利要求17所述的方法,其中所述多个主题实体中的每一个正好与一个网关引擎相关联。
19.根据权利要求17所述的方法,其中每个被请求的动作的所述安全环境包括至少一个参数,所述至少一个参数从包括下列的组中选出:所述被请求的动作发生的时间,启动所述被请求的动作的用户的标识符,由所述被请求的动作调用的命令,或者所述被请求的动作发生的时间、启动所述被请求的动作的用户的标识符、由所述被请求的动作调用的命令的任意组合。
20.根据权利要求17所述的方法,其中执行每个所述网关引擎包括执行独立于任意所述安全策略的评估引擎。
21.根据权利要求17所述的方法,其中执行每个所述网关引擎包括提供配置,所述配置特定于对应的主题实体并定义所述对应的主题实体能够采取的多个动作请求,连同那些动作的请求所涉及的对应的策略。
22.一种在计算机系统上执行计算机安全体系架构的方法,所述计算机系统包括至少一个处理器,数据存储器,与所述至少一个处理器连接的输入/输出设备,所述数据存储器包括操作系统和多个被所述至少一个处理器执行的主题实体,所述系统包括:
用于将从定义一个或多个安全策略的一组规则中选出的规则应用到给定的一组安全环境参数以产生安全裁定的部件,每个安全裁定代表主题实体所请求的特定的动作是否是允许的,其中所述一个或多个安全策略中的每一个与对应的通信接口相关联,并且其中,所述一个或多个安全策略中的每一个至少由第一预定义访问机制和第二预定义访问机制的结合定义,并且所述第一预定义访问机制和所述第二预定义访问机制中的每一个用可由用于应用选出的规则的部件访问的配置语言来描述,以实现所述安全策略,而无需重新编译所述用于应用选出的规则的部件;以及
用于监控被至少主题实体请求的动作并针对每一个被检测到的被请求的动作识别安全环境的部件;
用于基于对应的已识别的安全环境针对被请求的动作确定适用的安全策略并且用于经由通信接口从对应于所述适用的安全策略的所产生的安全裁定中获得安全裁定的部件,其中针对所述安全裁定的请求包括发送至所述用于应用选出的规则的部件的至少一个安全环境参数,所述至少一个安全环境参数与所请求的动作、所述安全环境,或针对所述所请求的动作所适用的安全策略相关,其中用于监控被请求的动作的部件不能产生安全裁定,并且其中用于监控被至少主题实体请求的动作的部件由以下配置:
适用于所述系统上的所有主题实体的系统级配置,以及
对于所述主题实体中的一个主题实体唯一的反射配置;以及
用于根据所述安全裁定允许或拒绝每一个所述被请求的动作的部件。

说明书全文

计算机安全体系架构及相关的计算方法

[0001] 相关申请
[0002] 本申请要求2015年6月30日提交的俄罗斯联邦的专利申请No.2015125968的权益,其内容通过引用被合并于此。

技术领域

[0003] 本发明一般地涉及信息系统安全,并且更具体地,涉及一种一般信息处理功能与安全保障运算分离的安全布置。
[0004] 发明背景
[0005] 现今的计算机和软件技术解决着广泛的任务,从简单的玩游戏或创建文档,到非常复杂的,如控制工业设施。这种计算机化急剧地提高了保证计算机安全的必要性。安全性对家庭计算机用户来说很重要,因为恶意的软件,例如病毒,计算机蠕虫及木程序非常普遍,且可以成为制造网络犯罪的工具,例如从行账户中盗窃资金。但安全事项对关键基础设施及工业系统来说尤其重要。例如,震网计算机蠕虫证明已经存在软件可以被用作非法数据收集及破坏工业公司、发电厂、机场和其他关键设备设施的自动处理控制系统(APCS)的工具。确保安全是一个非常重要的话题,在家庭计算机及工业系统的操作中应被及时解决。
[0006] 目前,软件具有自己的安全相关的功能,可以与操作系统的安全功能分离或结合。换句话说,在今天的操作系统和软件中,安全和功能的逻辑可以被联合起来。这种方法有其缺点。例如,犯罪者利用功能性逻辑中的错误和零日漏洞通常可以绕开指定的安全等级。例如TCP/IP协议栈,一组网络协议,其中一个协议位于低级操作“以上”的高级操作中,其使用封装机制。这组协议功能性上被设计用来传递网络上的信息。同时,微软公司的操作系统由于在IPv4数据包的处理过程中TCP/IP协议栈中的错误而包含隐患。远程用户可以使用特别创建的数据包结束系统操作。另外一个例子是NTFS文件系统,其具有自己的安全机制-例如,访问分化。因此,启动磁盘上信息访问的NTFS驱动程序也执行访问控制。如果这些安全功能被从驱动程序中移除,则NTFS文件系统将会容易受到许多可能的攻击。
[0007] 此外,目前存在的OS的保护机制不足以面对施加于信息系统上的机密性和完整性的请求。信息系统的多样性和其中发起的应用创造了大量的不同的安全请求,使多种形式的安全策略成为必须。一种安全体系架构必须是充分可靠的,并可以灵活地支持大量的安全策略。
[0008] 作为一种自动化系统的安全体系架构的例子,Flask授权访问控制体系架构被提出;它被国家安全局(NSA)及安全计算公司(SCC)联合开发,且以类型强制(TE)机制为基础。所述Flask体系架构被集成到Linux OS的内核中。这一计划被命名为SELinux(安全增强Linux)。
[0009] 在Flask体系架构下,一个单独的组件被分派到OS中,称为安全服务器,安全策略被实施在其中。安全服务器提供了对OS其他部件的一种特殊的编程接口,从而允许其他部件接受安全策略解决方案。OS的其他组件被称为对象管理器。例如,文件系统是一个文件管理器。Flask体系架构只界定了安全服务器为对象管理器提供的接口。在SELinux中,安全服务器支持以下三种访问控制机制:类型强制(TE-类型强制),基于色的控制(RBAC-基于角色的访问控制),和多级安全(MLS-多级安全)。这些安全模型在体系架构中是难写的,且这一表单的任意变化都将导致必须在体系架构的主要组件中做出改变(即在安全服务器和对象管理器中)。
[0010] 上述的例子遭受了功能和安全之间缺乏差异化的问题。任何既保证功能又保证安全的软件模块如果被犯罪者利用,可让犯罪者绕开系统安全,且例如提升执行犯罪者动作需要的进程的特权。

发明内容

[0011] 本发明的一个方面是针对用于提供一种计算机安全体系架构的系统。所述系统包括计算硬件,其包括至少一个处理器,数据存储器,及与所述至少一个处理器相连接的输入/输出设备。所述数据存储器包括一个操作系统和多个由所述至少一个处理器执行的主题实体。主题实体的例子包括计算机系统,应用程序,进程,网络设备,移动电话,工业基础设施中的多种设备,等等。
[0012] 所述数据存储进一步包括一个安全子系统,由所述至少一个处理器执行,当其被执行时会引起计算硬件实现安全服务器引擎,多个网关引擎和安全强制引擎。
[0013] 所述安全服务器配置为将从定义一个或多个安全性策略的一组规则中所选出的规则应用到给定的一组安全环境参数。这产生了安全裁定,其代表主题实体请求的一个特定动作是否是可允许的,一个或多个安全策略中的每一个与对应的通信接口相关联。
[0014] 所述多个网关引擎中的每一个都至少与一个主题实体关联,且专用于与所述安全服务器相连接。每一个所述网关引擎都配置为监控相关联的主题实体所请求的动作,并且对于每个检测到的被请求的动作,识别安全环境,基于对应的已识别的安全环境,针对被请求的动作,确定适用的安全策略,并且通过对应于适用的安全策略的通信接口从安全服务器引擎请求安全裁定。
[0015] 所述安全强制引擎配置为根据所述安全裁定,允许或拒绝每一个被请求的动作。
[0016] 在本发明的一个相关方面中,一种用于执行计算机安全体系架构的方法包括将从定义一个或多个安全策略的一组规则中选定的规则应用到给定的一组安全环境参数,以产生安全裁定,每个安全裁定代表主题实体请求的特定的动作是否是可允许的,并且所述一个或多个安全策略中的每一个与对应的通信接口相关联。所述方法进一步包括执行多个网关引擎,每个网关引擎与至少一个所述主题实体相关联且专用于与所述安全服务器相连接。所述网关引擎中的每一个执行对相关主题实体请求的动作的监控,并且针对每一个被检测到的被请求的动作,识别安全环境。
[0017] 基于对应的已识别的安全环境,一种适用的安全策略由所述被请求的动作决定,并且经由对应于所述适用的安全策略的通信接口,从所产生的安全裁定中获得安全裁定。根据所述安全裁定,一个安全强制决定被做出,以允许或拒绝每一个被请求的动作。
附图说明
[0018] 联系附图考虑以下本发明多种实施例的详细描述,本发明应被更完全地理解,其中:
[0019] 图1是说明根据本发明的一个实施例的实现一种安全体系架构的操作系统的应用操作的基本例子的示图。
[0020] 图2是说明根据一个实施例的一种示例性安全系统的示图。
[0021] 图3是说明根据本发明一个实施例的一种安全服务器的示图。
[0022] 图4是说明根据本发明一个实施例的一种网关的示图。
[0023] 图5是说明根据本发明的某些方面的安全体系架构的基本实施例的示图。
[0024] 图6是说明一种计算机系统600的示图,此处描述的本发明的某些方面会根据不同的实施例被执行在其上。
[0025] 本发明可经受多种修改和替换形式,其细节已通过附图中的示例展示,且将会被详细描述。然而应该被理解的是,本发明不限于某个特定实施例中描述的发明。相反,本发明应覆盖属于本发明精神和范围内的、如由所附的权利要求书限定的所有的修改,等同,和替代。

具体实施方式

[0026] 本发明的方面针对一种新的安全体系架构范例。本发明的方面可作为计算机系统的部分被实施。所述计算机系统可以是物理的机器,或者可以被分配于多种物理机器中,例如通过角色或功能,或通过计算分布式模型中的处理线程。在多种实施例中,本发明的方面可以配置为运行在依次由一个或多个物理计算机执行的虚拟计算机中。本领域技术人员将理解,本发明的特征可由多种不同合适的机器实现来实现。
[0027] 根据多种实施例的系统包括多种引擎,其中每一个被构造,编程,配置,或适配为实施一种功能或一组功能。此处使用的术语引擎意味着现实世界的设备,组件或使用硬件实现的组件的布置,例如通过专用集成电路(ASIC)或现场可编辑阵列(FPGA),例如,或作为硬件和软件的结合,例如通过微处理器系统及一组程序指令,使引擎适用于实现某种特定功能,其(在被执行时)将微处理器系统转换为特殊专用设备。引擎还可以被实现为结合了两个单独由硬件辅助的特定功能,或由硬件和软件结合辅助的其他功能。在特定的实施中,至少一部分,在某些情况下,全部的引擎可以被执行在一个或多个计算机的处理器上,其执行操作系统,系统程序,和应用程序,且使用多重任务处理,多线程,分布式的(例如簇,对等层,云等)程序,其中适当的,或其他此类技术实施所述引擎。由此,每个引擎可以实现为多种适当的配置,且通常不应被限定为任意此处例示的具体实施方式,除非该限制被清楚地表明。而且,一个引擎自身可以由不止一个子引擎组成,每个子引擎都应被视为一个独立的引擎。此外,在此处描述的实施例中,不同引擎中的每一个都符合一种特定的功能;然而,应该被理解,在其他构想的实施例中,每个功能都可被分配给不止一个引擎。类似地,在其他构想的实施例中,多重定义功能可以由执行这些多重功能的单独引擎执行,可能与其他功能一起,或不同地分散在一组引擎中,而非此处特别地阐明的例子。
[0028] 本发明的实施例在此处被描述,针对操作系统的环境中的安全体系架构及微内核体系架构,以及更具体地,用一个描述在这种操作系统中的进程间通信的示例。进程间通信(IPC)是一组用于提供一个或多个进程中多线程间数据交换的程序。一个或多个被网络连接的计算机可以启动进程。
[0029] 示例性安全体系架构的一个基本原则是将信息处理功能与根据预先指定的请求的这种处理的安全保证功能分离。
[0030] 根据一个实施例,为了在安全体系架构中实施这种原则,基于预先指定的策略计算裁定的责任与申请裁定的责任不同。所述系统的组件,安全服务器,负责计算解决方案,例如被计算的裁定或被计算的决定。在一个实施例中,与此服务器的交流通过专用的信道发生。根据安全服务器做出的决定的动作的执行由OS微内核支持的安全基础设施执行。根据一个实施例,为了显示操作系统中的动作在用于决定裁定的安全策略上,安全网关(下文称为“网关”)被用于系统中的活动实体。例如,安全网关可被系统中的活动实体用于映射(或关联)实体所有可能的动作与多个安全策略。相应地,所述策略可以接着被用于决定所述裁定。
[0031] 这类实施例所描述的方法确保了指定的任务与外部提供的规则的一致性。解决问题涉及的实体可以完全不了解这种规则或有能控制它们。任何此类能力必须在安全策略中基于参数及目标系统中定义的责任被明确定义。
[0032] 类似地,做决定的系统不具备关于其控制的实体的信息,且只被从安全网关得到的控制所述策略和设置所需要的信息管理。相应地,根据此实施例所述安全体系架构实现在授权控制中隔离责任的原则。
[0033] 图1是说明根据本发明一实施例实现安全体系架构的操作系统应用的操作的基本示例的示图。
[0034] 图1中描绘的计算机系统环境,其中此实施例的示例性系统运行在计算机系统上,例如PC或服务器,可以包括操作系统101,若干应用104,和一个安全子系统,其中包括一个安全服务器102和网关103,分别对应于所述应用104。
[0035] 应用104代表了任意计算机装置中安装的应用程序。每个应用104都具有自己的功能能力,即它可以执行特殊的用户任务。而且,应用104可以为了其运算被设置为从用户处接收某种特定类型的信息。应用104可以是用于处理文档的应用,图像编辑器,网络浏览器,或例如控制一个工业工序所要求的任意专用软件。
[0036] 操作系统101包括一组互相关联的处理和控制程序,其逻辑上位于计算机装置的组件和应用104之间,且被设计用于执行多种任务。这些任务可以连接上述组件或应用104。而且,操作系统101完成来自应用104请求的执行,例如访问媒体上的数据,存储器的分配和解除分配,数据输入和输出等。
[0037] 任意应用彼此之间以及与使用编程接口的操作系统通信。在计算机系统中,所有的通信被分配一种类型且基于编程接口的使用。例如,应用编程接口(API)允许一个程序访问另一个程序以便执行某种特殊的操作或获得对数据的访问,同时接受其他程序的请求。为了保证安全,可以检查使用编程接口的应用之间的通信。
[0038] 在根据一个实施例的安全体系架构中,网关103被用于使用编程接口的应用之间的通信。网关103的目的是提供一个信道,应用104可以通过该信道与操作系统101或另一个应用104通信。每个应用104可以有自己的网关103。所述网关103允许分配关于尝试执行某个动作(即操作)使用指令的安全环境,例如API调用,被通过接口发送。这种安全环境可以是例如试图执行动作的时间,发起执行动作的尝试的用户ID,请求的动作的环境中调用的一个或多个调用方法,实体开始尝试执行动作的一个标识符,实体作为实施动作的对象的标识符,适用环境变量的状态,实体的状态(如果所述实体是一个应用,其形态可以是表示应用现状的参数值,例如“正在运行”,或安全模型参数(例如类型强制型,强制的访问指示器,用户的角色(在RBAC模型中),表明类型的信息,及任意的限制,在会话中,关于可用资源的信息,等等)。
[0039] 另外,所述网关103包括能够控制所述应用104的操作的规则的名字,而这些规则自身是保存在安全服务器103中的。这种规则可以指定,例如,允许和禁止被应用104使用的接口,当使用特定接口被允许的时间,等等。所述网关103可以发送规则的名字并分配安全环境到所述安全服务器102。在另一个实施例中,所述规则可以被规则标识符,散列值或其他合适的查找值引用。所述安全服务器102可以表示为操作系统101中提供的一个独立的模块。所述安全服务器102的目的为根据提供的安全环境中的参数检查规则的执行以便允许或禁止操作,也就是,通过接口发送的指令的执行。如果所述运算被安全服务器102允许,该指令将被所述操作系统101处理。
[0040] 根据一个实施例的一种典型的安全系统在图2中被阐明。在该实施例中,一种微内核操作系统和一种进程间通信运算被描述用以说明。图2中描绘的安全系统体系架构包括一个微内核200,实体A,B,C分别通过引用数字201,202,203表明,网关A,B,C,在211,212,213处表明,对应上述实体,及安全服务器210。
[0041] 所述微内核200保证了实体之间彼此隔离,并提供实体之间进行通信的机制。因此,所述内核200保证所有用作监控目的的拦截。实体是系统的活动组件,从安全子系统的立场来看,由安全环境代表。在其他的方式中,所述实体的活动被显示在实体发起经受监控的动作的能力中。因此,所述由与另一个实体或安全系统相关的实体执行的动作是在安全子系统中做出决策的对象。安全环境,代表性地例如数据结构,由一个特殊的安全标识符(SID)识别,这对于实体来说是非透明的。在一个实施例中,所述SID是经受决策的第一基础组件。该调用自身以及其属性是第二基础组件。
[0042] 在进程间通信中,进程被视为实体,而一组参数和每个特定进程的属性被视为安全环境。实体还可以是更复杂的对象,例如网络设备,个人计算机,移动电话或工业基础设施中各种各样的设备。因此,所述微内核200还可以被设计为独立的固件复合体,其用于在信息系统中执行通信。
[0043] 安全子系统中的资源是经受安全监控的动作的对象,但资源自身不能发起这种动作。资源的一个例子是文件,可识别的内存区域,网络接口,打印机,任何其他设施。资源,正如一个实体,从监控的角度看,代表性地为使用SID的安全子系统中可识别的安全环境。
[0044] 实体201,202,203中所有的通信都是严格类型化的,且被用描述接口的规范的语言描述,例如特殊的接口描述语言或接口定义语言(IDL)。所有此类的通信,在被微内核200发送的时刻,被使用安全服务器210检查。下列代码可以是IDL语言中描述文件系统实体接口的最简单的示例:
[0045]
[0046]
[0047] 上述例子中描述了两个接口-主要的接口用于与所述文件系统,I文件系统,和所述安全接口,I文件安全通信。在每个接口中,三个主要的通信方法被描述为:打开,读和写。作为说明,以下为一个用IDL语言描述具有钻孔的带式运输的实体的接口的例子:
[0048]
[0049] 所述安全服务器210可以被视为一个实体,即进程间通信的示例中的进程,存在描述其接口的IDL语言。所述安全服务器210,及所述微内核200,可以被设计为一个独立的固件复合体,其用于检查自动化系统中的消息。所述特殊的CFG语言(安全配置语言)可以被用于描述所述安全服务器210的安全配置。
[0050] 所述安全服务器210的安全配置包括执行多种安全策略的规则。基于所述安全服务器210的配置,特殊网关211,212和213被建立。在目前的进程间通信的例子中,所述网关211,212和213可以被自动建立,通过使用CFG语言编译配置。
[0051] 为了更好地帮助理解所述安全服务器210的配置,以下是一个涉及为了过滤来自使用白名单域名地址的网络浏览器的URL调用而执行安全策略的任务的示例,其中只有带有*.kaspersky.com和*.securelist.com掩蔽的地址是被允许的。解决此任务利用了一个代理服务器,通过其对因特网的访问将被提供。所述网络浏览器和代理服务器将是分离的实体;其间的交互将被安全服务器210检查,以服从所述URL请求过滤策略。根据本例子,所述代理服务器的接口的IDL语言的描述表现如下:
[0052]
[0053] 这一代理服务器接口的描述只提供了一种方法,http_get,其使用三个参数发布一个网页(数据)-主机域名,端口值,和资源标识符(uri)。然后所述安全服务器210中安全策略的执行可以被用于过滤来自使用白名单域名地址的网络浏览器的URL请求,其可被用CFG语言描述如下:
[0054] 01 use call policy allow=secsrv.policies.basic.allow;
[0055] 02 use call policy match=secsrv.policies.string.match;
[0056] 03 use call policy eq=secsrv.policies.arith.eq_uint32;
[0057] 04 entity ProxyServer{
[0058] 05  call in http_get(proto,host,port,uri)=match[“*.kaspersky.com”,[0059] “*.securelist.com”](host),eq 443(port);
[0060] 06       call out http_get(data)=allow;
[0061] 07 }
[0062] 以下是对这一安全策略实施方案的每个字符串的描述的更详细的讨论。字符串01声明了使用一个基本的且最简单的安全策略,在使用这一策略时允许任意通信。字符串02声明了使用包括用于对比字符串进行匹配的规则的安全策略。字符串03声明了使用包括用于检测数值匹配(数值相等)的规则的安全策略。字符串04—07描述了代理服务器实体的安全配置,所述代理服务器实体中主机的域名和端口值必须被匹配和相等策略检验以服从安全策略中定义的值(“*.kaspersky.com”或“*.securelist.com”为主机的域名及433为端口),以便使网页在网络浏览器中被显示。
[0063] 所述安全策略,如上述示例中所示,可以从其他安全策略中被建立,允许建立复杂安全策略作为简单安全策略的结合。因此,被提出的安全策略的灵活性不只决定于安全服务器的存在和多重网关,其允许新策略的简单实现而不干扰系统组件运行进程,但也提供从已存在安全策略中建立新安全策略的选项。从已存在安全策略中创建新安全策略消除了从头开始写安全策略的必要性。从头开始写新的安全策略增加了在其中存在缺陷的可能性,而且,此外,这种策略通常证明是太过特殊且无法在相同系统中重复利用。而且,每次安全策略在一个系统中被重复利用时,系统的安全性增加,因为写新的安全策略增加了系统代码的大小,这增加了攻击面,且因此增加了系统的隐患且使支持和执行此系统的进程复杂化。
[0064] 建立用以验证实体的动作的安全服务器210的请求是与实体有关的网关的责任。所述网关在实体的起始被初始化并与其连接。所有随后的动作,包括安全环境的初始化,以及对相关实体通信的监控,被根据网关配置分配的规则执行。所述安全配置具有二级引用结构,包括以下:
[0065] ·系统配置;以及
[0066] ·动作到安全策略的反射的配置(下文中被称为“反射配置”)。在一个实施例中,反射还可以被称为“映射”动作在安全策略上。
[0067] 所述系统配置描述了在某一特定安全模型中执行安全功能的方面,其作为一个整体适用于系统。
[0068] 所述反射配置描述了应用策略在实体的动作中的规则,适用于任意实体。所述反射配置被用于建立一个实体以用于初始化其网关。所述网关随后存储对所述涉及实体的安全策略的引用且召集这些策略以验证其动作。
[0069] 一种安全网关,因此,在系统中连接了所述应用软件和安全模型,通过声明哪个程序动作必须被哪个安全策略管理。在这种情况下,网关除了对它们的任何其他的动作或策略的信息的引用之外,不需要它们的任何其他的动作或策略的信息。根据一个实施例,网关请求的策略被所述安全服务器210计算。
[0070] 所述反射配置包括涉及所述当实体执行安全相关动作时被应用的安全策略:
[0071] ·实体开始(这被反射到子代实体的安全环境和授权控制的初始化策略);
[0072] ·实体间消息的通信(这被反射到所述交互监控策略);
[0073] ·实体使用安全接口的请求(这被反射到所述交互监控策略)。
[0074] 任何被应用在系统中的运算可以使用静态定义的实体接口执行。这些接口使用通信间进程中类型化的请求被实现。对使用这种动作执行的操作的允许或拒绝是基于所述安全服务器210计算的裁定做出的。
[0075] 尽管所有的动作基本上都是在进程间通信中执行的,三种上述类型的动作以一种执行算法被区分并被安全子系统监控:实体的开始,实体间消息的通信,及使用实体的安全接口的请求。以下描述的是在用于三种类型的进程间通信之间的动作的安全解决方案的应用的安全子系统的组件之间通信的序列。
[0076] 实体的开始被执行如下:
[0077] ·实体A201请求创建实体B202通过召集操作系统内核接口;
[0078] ·微内核为子代实体B202创建一个网关;
[0079] ·所述子代实体B202的网关B212发送亲代和子代实体的SIDs,初始化策略和允许策略到安全服务器;
[0080] ·所述安全服务器210允许引用所述亲实体A201的安全环境,初始化所述子实体B202的安全环境,并发布一个安全裁定;
[0081] ·如果该裁定为正,所述微内核允许实体B202的创建;
[0082] ·如果该裁定为负,所述微内核移除所述实体B202的网关B212并返回一个访问错误消息。
[0083] 所述亲代实体的网关A211不参与新安全环境的初始化(尽管在一个实施例中初始化期间亲代实体环境可以被子代实体环境继承)。所述安全子系统也不存储新创建的实体树的信息。亲代实体和子代实体之间的通信(在后者的创建之后)根据安全配置被管理,以它们和所有其他实体通信同样的方式。
[0084] 消息的传输由两个实体参与执行-实体B202,其发起了消息的发送,以及实体C203。取决于安全环境和网关C213,安全环境和网关B212,以及消息内容,所述消息的传输被监控。在一个实施例中,为了验证所述消息,只使用网关中的一个就足够了,而且,一般来说,只有接收网关中的网关,即网关C213。
[0085] 所述消息的传输被监控如下:
[0086] ·实体B202请求转移信息到实体C203,通过召集操作系统内核的功能;
[0087] ·微内核比较实体的C203网关C213及所述实体;
[0088] ·网关C213反射请求到所述安全策略上;
[0089] ·网关C213调用安全服务器210,传送引用到策略,所述实体B202和实体C203的安全环境的SID,及计算安全裁定的信息的选定的参数(所述策略可能需要的);
[0090] ·安全服务器210计算裁定;
[0091] ·如果该裁定为正,所述消息的传输被允许;
[0092] ·如果该裁定为负,所述消息的传输被阻止,且一个错误信息被返回。
[0093] 如果一个实际的安全裁定存在于高速缓存中,网关C213可以不调用安全服务器210。被计算的安全裁定可以被存储为进一步使用。
[0094] 监控通信的可能性不只通过通信双方的安全环境,也通过消息内容,允许广泛的政策的实现。这种政策可以包括不止发送/接收,还有通过内容或接口合并对信息的过滤的策略,等。
[0095] 当实体需要通知安全系统其内部事件或请求另一项服务时,一个通过安全接口的调用被做出。
[0096] 通过安全接口的调用被使用,特别是,用于管理对受保护资源的访问的监控。如上所述,没有网关被与所述资源比较。因此,为了监控对资源的访问,一个中间的实体被使用,用其自身的安全接口请求安全服务器210的裁定。
[0097] 使用安全接口的安全裁定的发布一般来说被执行如下:
[0098] ·实体C203做出请求,使用所述安全接口,使比较其自身的网关C213传送必要的参数;
[0099] ·网关C213反射请求到安全策略上;
[0100] ·如果没有实际裁定在高速缓存中,网关C213做出请求使安全服务器210计算安全裁定,传输必要参数;
[0101] ·安全服务器210计算安全裁定;
[0102] ·网关C213返回安全裁定到实体C203。
[0103] 如果一个实际的安全裁定存在于高速缓存中,网关C213可以不调用安全服务器210。被计算的安全裁定可以被存储在之后使用。
[0104] 一个示例可以作为文档转换系统的模型—具有不同访问级别(保密,绝对保密,非保密)的活动者,可以读/写从/到另一个。读操作只被允许在读者的访问级别高于或等同于被读的活动者的访问级别时,而写操作只被允许在相反情况。
[0105] 所有被上述安全模型控制的实体的安全系统的配置中,以下规则是指定的:对于“读”和“写”消息—执行访问级别的比较。在消息转移时,系统使用消息的属性,判定消息的类型。知道涉及的实体的安全环境并使用安全配置,相关的网关判定被安全服务器210计算的策略以便接收裁定。安全服务器210,根据所述访问策略,使用安全环境中的访问等级,执行比较并发送其裁定到安全系统。
[0106] 图3阐明了安全服务器210。安全服务器210中的主要任务是计算安全策略,或换句话说,是关于系统中的信息作出安全裁定。安全服务器210具有关于安全体系架构中使用的安全策略的广泛知识—例如,安全策略的类型和以规则形式存在的它们的特性设计,该规则操作来自从安全环境的参数。所述安全策略可以属于多种安全模型-例如,使用类型强制(TE)机制的模型,基于角色的访问控制(RBAC),和多级安全(MLS)。而且,安全策略可以被建立基于授权访问模型,其决定了每个进程(实体)的访问级别,而此模型中所有的资源(文件,目录,套接字等)都被匹配一个特定的类型(安全级别),以及限制实体访问特定类型的能力的规则列表被建立。另外一个安全模型的示例是Bell-LaPadula模型,其中所有的活动者(进程)和对象(文件)都有自己的权限级别。具有特定权限级别的活动者被允许读和创建(写/更新)具有相同权限级别的对象。此外,活动者被允许读次保密对象及建立告级别对象。一个活动者将永远不能以比自身权限级别低的许可级别(clearance level)来创建对象,或读有更高许可级别的对象。将被理解的是这些只是更宽泛的示例中的一些。
[0107] 对于每个在安全服务器210上的安全策略的实现,一个接口被分配,一个网关通过其请求对消息的关于特定安全策略的安全裁定的计算。安全服务器210运行在实体的功能逻辑之外且只能计算相关的安全策略,基于从特定接口接收的数据,并返回判定到请求的网关。例如,如果我们考虑一个使用三个策略结合的安全策略实施选项,分别依照上述访问控制机制—TE,RBAC和MLS中的一个被描述,然后,从网关的观点看,安全服务器210将被三个接口代表,前文列出的策略中的每一个都有一个。而且,对于每一个信息,所述网关会请求安全服务器210计算一个裁定在所有三个接口上。所述裁定,反过来,会代表每个策略的计算结果的结合(TR&&RBAC&&MLS)。
[0108] 图4显示了网关211的一个基本的图表,根据一个实施例。网关的主要的任务如下:判定系统消息中特定的通信方法及与其对应的安全策略;识别与在消息中通信的实体相关的安全环境;并从安全服务器210请求安全裁定,发送所述安全环境到安全服务器210的相关接口。网关211比较多个安全策略,其计算需要被从安全服务器中请求以计算一个裁定,以及各自实体201的每个被监控的事件。为了优化以安全体系架构为代表的所述安全系统的操作,所有的从关于实体201的安全服务器210接收的安全裁定被在网关211的裁定高速缓存中保存。
[0109] 裁定高速缓存的关键可以由参与的实体的安全环境的标识符、事件标识符(由安全服务器210接口号和系统信息中的交流方法号组成)、和计算裁定时使用的方法参数值(如果它们是在网关配置中指定的)组成。
[0110] 每次网关请求安全服务器210计算裁定时,它会检验裁定高速缓存中是否存在该事件的裁定。如果存在,所述网关直接返回该裁定;否则它将发送一个请求到安全服务器210。
[0111] 图5阐明了根据本发明一些方面的安全体系架构的一个基本实施例。这一选项中所述安全体系架构包括三个级别:
[0112] ·系统组件级别,在其中实体501,502,503被实施;
[0113] ·安全策略强制级别,被系统组件通信工具504执行;及
[0114] ·裁定计算级别,在其中安全子系统500被实施,包括多重网关501和安全服务器505。
[0115] 所述系统组件级别由多个实体组成。在一个实施例中,每一个实体执行一个单独的组件;例如,一个文件系统或一个操作系统中的应用,或一个控制面板,一个传送机或一个工业系统中的机器。通过发送和接收带有被请求的动作的消息,所述实体彼此通信。每个实体可以有若干参数(或属性),其描绘了实体自身,例如其独特的ID,及其状态,例如“开”或“关”。实体内的所有通信和参数可以以安全策略的方式描述。
[0116] 被实施在裁定计算等级的安全服务器505,使用多种规则,该规则被规定在一个或多个安全策略中,及裁定发布的安全环境,其定义是否允许对被请求的动作的执行,其中安全环境是一组参数,描述其执行过程中的实体。
[0117] 对于每一个系统组件通信工具504拦截的消息,一组网关510中的各个网关执行了下列:
[0118] ·基于与其自身配置一致的安全环境,所述网关判定对该类型通信适用的一组策略;
[0119] ·所述网关请求安全服务器505计算该组策略;
[0120] ·基于该组策略计算的结果,所述网关定义最终裁定;
[0121] ·所述网关发送所述裁定用于强制执行到系统组件通信工具505.
[0122] 如上所述关于特定的实施例,对于在安全服务器505中每个安全策略的实现,一个接口被专用于网关可以通过该接口请求关于特定安全策略的消息的安全裁定的计算。网关还可以请求对一组策略的裁定的计算,通过发送请求到所述安全服务器505的相关接口,且,在从服务器接受了每个请求的裁定(即一组裁定)之后,所述网关可以定义一个最终的裁定,例如,使用结合方法。因此,只有在每个从所述安全服务器505接收的裁定都为正时,最终裁定将为正。
[0123] 被实施在安全策略强制等级的所述系统组件通信工具504被设计用作监控所述实体的执行,以管理实体间的通信,及直接与一组网关中已存在的网关通信以接收和实施裁定。所述裁定可以表现为简单的布尔值,其中0意味着“拒绝”而1意味着“允许”,或表现为更复杂的任意字符(字母,数字和特殊符号)的结合,包括已知的单词,例如“重启/暂停/激活实体”。
[0124] 图6是阐明计算机系统600的示图,其中如此处描述的发明的方面可被根据各种实施例实施。计算机系统600可以包括计算装置例如个人计算机602。所述个人计算机602包括一个或多个处理单元604,系统存储器606,视频接口608,输出外部接口610,网络接口612,用户输入接口614,可移动的存储器接口616和不可移动的存储器接口617,以及耦合所述多种组件的系统总线或高速通信信道620。在多种实施例中,所述处理单元604可以由多个逻辑内核,能够处理存储在计算机可读媒体,如系统存储器606或附于可移动的616或不可移动的618存储器接口上的存储器中的信息。所述计算机602系统存储器606可以包括非易失性存储器,如只读存储器(ROM)622或易失性存储器如任意访问存储器(RAM)。所述ROM 622可以包括一个基本的输入/输出系统(BIOS)626以帮助与所述计算机602的其他部分通信。所述RAM 624可以存储多种软件应用的部分例如操作系统628,应用程序630和其他的程序引擎632。进一步的,所述RAM 624可以存储其他信息例如程序或应用数据634。在多种实施例中,所述RAM 624存储请求低延迟和有效访问的信息,例如被操纵或操作的程序和数据。
在多种实施例中,RAM 624包括双数据速率(DDR)存储器,误差校正存储器(ECC)或其他具有不同的延迟和配置的存储技术,例如RAMBUS或DDR2或DDR3。用这种方法,在不同的实施例中,所述系统存储器606可以存储输入数据存储,访问凭证数据存储,操作存储器数据存储,指令集数据存储,分析结果数据存储及操作存储器数据存储。进一步的,在多种实施例中,所述处理单元604可以配置为执行指令限制访问上述的数据存储,通过在访问信息被允许前请求访问凭证。
[0125] 所述可移动的存储器616和不可移动的存储器618可以使所述计算机602与磁盘驱动器如SSD或转动的磁盘驱动器耦合。这些磁盘驱动器636可以为不同的软件应用如操作系统638,应用程序640和其他的程序引擎642提供进一步的存储。进一步的,所述磁盘驱动器636可以存储其他的信息,例如程序或应用数据644。在不同的实施例中,所述磁盘驱动器
636存储信息不请求同样的低延迟,如在其他的存储媒介中。进一步的,所述操作系统638,应用程序640数据,程序引擎642和程序或应用数据644可以是如在上述不同实施例中被存储在RAM 624中的同样的信息,或也可以是RAM 624中存储的数据可能衍生出的不同的数据。
[0126] 进一步的,所述可移动的非易失性存储器接口616可以耦合计算机602与利用磁性媒体例如软盘648, Zip或Jazz的磁性便携式磁盘驱动器646,或利用光学媒体652存储计算机可读媒体如 ,DVD-R/RW,CD-R/RW和其他类似格式的光盘驱动器650。还有其他的实施例利用SSD或放置在便携式附件54中的转动磁盘以增加可移动存储器的能力。
[0127] 计算机602可以利用网络接口612通过局域网(LAN)658或广域网(WAN)660与一个或多个远程计算机656通信。所述网络接口612可以利用网络接口卡(NIC)或其他接口如调制解调器662进行通信。所述调制解调器662可以使通信穿过电话线,同轴电缆,光纤,电话线或无线地。所述远程计算机656可以包括一个相似的硬件和软件配置或可以有一个存储器664包括远程应用程序666为计算机602提供附加的计算机可读指令。在不同的实施例中,所述远程计算机存储器664可以被用作存储信息例如已识别的文件信息,其可在之后被下载到本地系统存储器606中。进一步的,在不同的实施例中所述远程计算机656可以是应用服务器,管理服务器,客户端计算机或网络设备。
[0128] 使用与用户输入接口614连接的输入设备(例如鼠标668和键盘670),用户可以输入信息到计算机602中。此外,所述输入设备可以是触摸板,指纹扫描仪,控制杆,条形码扫描器,媒体扫描仪或类似的。视频接口608可以提供视觉信息到显示器,例如监控器672。所述视频接口608可以是嵌入式的接口或者它也可以是分立的接口。进一步的,计算机可以利用多个视频接口608,网络接口612和可移动的接口616和不可移动的接口618以便增加所述计算机606操作的灵活性。进一步的,不同的实施例利用几个监控器672和几个视频接口608,以改变所述计算机602的性能和能力。其他的计算机接口可以被包括在计算机602中,例如输出外围接口610。这一接口可以耦合于打印机674或扬声器676或其他外围设备,为计算机602提供附加的功能。
[0129] 各种可供选择的计算机602的配置和实现被包括在本发明精神中。这些变化可以包括且不限于,耦合于系统总线620(如通用串行总线(USB))附加接口,打印机端口,游戏端口,外围部件互连总线,串行总线,或上述不同部件与芯片集组件的集合,例如北桥或南桥。例如,在不同实施例中,处理单元604可以包括嵌入式存储控制器(未示出),以使数据从系统存储器606中的传递比所述系统总线620能提供的更有效。
[0130] 上述实施例旨在说明且不是限制性的。附加的实施例在权利要求中。此外,尽管本发明的方面已被根据特定实施例描述,本领域的技术人员将认识到,形式上和细节上可以做出的改变不超出本发明的范围,如权利要求书规定的。
[0131] 相关领域的技术人员将认识到,本发明包括的特征可以少于任意单独的上述实施例所阐明的。此处描述的实施例不意味着详尽的展示了本发明不同实施例可以被结合的方式。相应地,所述实施例不是互相排斥的特征的结合;而是,本发明可以包括从不同单独的实施例中挑选出的不同单独特征的结合,正如本领域技术人员所理解的那样。
[0132] 任意通过引用被合并的上述文档被限定为不合并与此明确披露的相反的主题。任意通过引用被合并的上述文档进一步被限定为所述文档中包括的权利要求不通过引用被合并到本申请的权利要求之内。然而,任意所述文件的权利要求被合并为此的披露的一部分,除非被特别地排除。任意通过引用被合并的上述文档还进一步被限制为任意所述文档中提供的定义不在此通过引用被合并,除非明确地被包括于此。
[0133] 为了解释本发明的权利要求,明确表示,U.S.C.第35卷第六段第112节不被调用,除非专用名词“的方法”或“的步骤”在权利要求中被列举。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈