用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置的制作方法

文档序号:6361773阅读:319来源:国知局
专利名称:用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置的制作方法
技术领域
本公开一般地涉及计算领域。更具体地说,本发明的实施例涉及对在计算系统中运行的防病毒扫描代理强制执行强制性安全策略。
背景技术
防病毒(AV)扫描代理应用程序一般作为操作系统(OS)进程来运行。AV扫描代理通过使用一些与恶意软件所使用的相同的隐匿技术来保护自身不受恶意软件/木马攻击。近来操作系统设计中的改变采用了强制性访问控制(MAC)标签,其以低、中、高完整性分类的形式来标记进程。在不同级别的进程不允许彼此进行修改/访问。但是MAC级别的语义在OS环O (内核特权)处强制执行。环O受到损害意味着MAC强制执行机制受到损害,并因而在环3 (用户特权)和环O中运行的AV扫描代理受到损害。虚拟内存管理器(VMM)(如果使用了)的损害也可能导致用户OS (UOS)的MAC机制受到损害。在OS中的MAC机制的使用使得AV扫描代理更难躲避针对AV扫描代理代码的恶意软件。因此,除非改进OS安全性,否则AV扫描代理代码会易受到攻击。


通过参考附图来提供详细描述。在不同附图中使用的相同附图标记指示相似的或相同的项目。图1是根据本发明的一些实施例的执行容器完整性模型的图;图2示出了根据本发明的实施例的具有客户OS的执行容器完整性模型;图3是根据本发明的实施例的具有客户OS (具有AV应用)的执行容器完整性模型的图;图4是根据本发明的实施例的用于建立域C的流程图;图5是示出了根据本发明的实施例的对应于一系列资源设陷机构的级联Biba级别的图;图6是示出了根据本发明的实施例的建立C子域的流程图;图7是示出了根据本发明的实施例的设置应用陷阱的流程图;图8是示出了根据本发明的另一实施例的设置应用陷阱的流程图;图9是示出了根本发明的实施例的执行陷阱的流程图;图10是根据本发明的另一实施例的具有用于虚拟机管理器(VMM)的客户OS的执行容器完整性模型的图;图11是根据本发明的实施例的具有用于VMM的客户OS的执行容器完整性模型的图,其中虚拟机包括AV应用;以及图12和图13示出了计算系统的实施例的框图,其可以用来实现在本文中讨论的
一些实施例。
具体实施例方式在下面的说明书中,为了提供对各个实施例的完全理解而阐述了多个具体细节。但是,没有所述具体细节本发明的各个实施例也可以实施。在其他的实例中,没有详细描述公知的方法、程序、部件和电路,以免模糊了本发明的特定实施例。此外,可以使用各种器件来执行本发明的实施例的各个方面,所述器件例如为集成半导体电路(硬件)、被组织为存储在计算机可读存储介质上的一个或多个程序的计算机可读指令(软件),或硬件和软件的一些组合。为了本公开的目的,对“逻辑”的引用应意味着硬件、软件(包括例如控制处理器操作的微代码)、固件,或其上的一些组合。在实施例中,可以在计算系统中的受保护的执行环境中执行AV扫描代理应用程序,在所述计算系统中可以向该AV扫描代理分配MAC特权,所述MAC特权支配由用户操作系统(UOS)(或虚拟机管理器(VMM))所使用的MAC特权。AV扫描代理配置包含UOS代理的存储页面,使用受保护的执行环境来保护所述存储页面。这些存储页面具有有效的MAC特权,所述MAC特权高于由UOS (或VMM)授予的最高特权,因而UOS的损害不会转化为UOS中的AV扫描代理的损害。本发明的实施例使用至少两种技术的组合:受保护的执行环境微代码和在硬件级别应用的、与操作系统MAC抽象分离的MAC标签。在受保护的执行环境中的执行容器为以比最高可能的OS环O级别更高的安全级别运行的AV扫描代理运行时间提供执行隔离。这个级别由受保护的执行环境强制执行。因为受保护的执行环境遵守MAC安全模型,所以受保护的执行环境可以在防止恶意修改AV扫描代理运行时间的同时仍允许对OS文件系统对象进行读取访问。本发明的实施例一致地关联了 MAC标签,同时在客户OS资源上设置了陷阱。实施例的方法在客户资源和页面上递归地级联标签分配和陷阱分配,直到AV扫描代理应用和相关的数据被保护。可以由计算系统的处理器检测并防止尝试修改受保护的资源的恶意软件。从检测到的攻击中恢复可以由来自受保护的执行环境的以较高的完整性级别运行的处理器代理程序进行管理,而不破坏系统的完整性模型。MAC安全模型通过将安全标签分配给系统中的主体和对象来保护信息。一个这样的MAC安全模型是Biba模型,其公开在1977年4月,Mitre公司的Biba, K.J.“IntegrityConsiderations for Secure Computer Systems”,MTR-3153 中。Biba 完整性模型是计算机系统安全策略的正式状态转换系统,其描述了被设计用来确保数据完整性的一套访问控制规则。数据和主体被分组为完整性的有序级别。设计该模型使得主体不可以损坏处于高于该主体级别等级的数据,或该主体不可以被来自低于该主体级别等级的数据损坏。一般来说,保持数据完整性的目的在于防止数据被未授权方修改、防止未授权的数据被未授权方修改,和维护内部和外部一致性(即,数据反映了真实世界)。这种安全模型是为了数据完整性,并且其特性在于短语“不向下读,不向上写”。Biba MAC规则可被总结为:1)给予资源(主体和对象)Biba完整性标签,使得更高级别“支配”更低级别。支配对象或其他主体的主体能对这些资源“向下写”。2)较低级别的资源能“向上读”更高级别的资源。Biba模型可以被应用于受保护的执行环境,使得设备、存储器、直接存储器存取(DMA)缓存、中断和配置空间都可以固定地使用Biba标签,使得能一致地应用Biba访问规贝U。在受保护的执行环境中运行的应用可以对应于MAC标签约束而被分配虚拟资源,其中运行在执行容器中的OS强制执行Biba安全模型。可以信任受保护的执行环境的资源管理器部件以跨越执行容器(受保护的存储器)和设备资源之间的硬件接口边界来强制执行特权语义。图1是根据本发明的某些实施例的执行容器完整性模型的图。受保护的执行环境可以对运行在执行容器100中的应用强制执行Biba安全策略。执行容器包括在计算系统内的应用环境,所述计算系统与正常的操作系统环境相隔离。在实施例中,执行容器在其功能性方面受到约束;执行容器可能不包括全功能的操作系统。在实施例中,执行容器包括应用(App)策略管理器部件102,和一个或多个应用程序。在图1示出的示例中,执行容器包括第一级别完整性的应用(App L1104),第二级别完整性的应用(App L2106),和第三级别完整性的应用(App L3108)。在实施例中,通过使用仲裁访问平台资源(中央处理单元(CPU)、存储器、芯片组、闪存等)的硬件支持对这些资源进行分区,受保护的执行环境提供在计算系统中创建执行容器的机制。目的在于除了用于用户操作系统(UOS)的容器以外,通常利用在为了节约能源的低活动期间UOS使得内核脱机时未使用的多核处理器中的内核上的周期,其他独立的操作环境能够运行。这对能源消耗和性能具有轻微的影响,但是提供了用于程序执行的环境,所述环境可被用于UOS的带外(OOB)活动,例如安全性、可管理性、安全商务或许可。使用OOB执行环境,运行在这些容器中的应用将免受用户篡改、恶意软件的损害,并且能抵抗操作系统故障。为启动这个功能,可能在处理器上添加若干新的硬件特征(例如定时器、设备过滤、调度缓存、页表、中断映射支持和闪存中的空间),还可能需要扩展的软件堆栈(内核、UOS驱动、内核驱动、固件等),并且还可能需要非核心补丁支持。每个执行容器将具有独立的存储器(包括单独的扩展页表(EPT))、它们自身的状态、控制在处理器上执行所需的时间片段的方法,和用于专门访问硬件设备的潜在方法(通过设备过滤、局部高级可编程序中断控制器(APIC)和中断重映射强制执行)。受保护的执行环境的一个示例和在计算系统中用于改进功率效率的使用模型公开在Kumar等人的“Method and Apparatus for Cost andPower Efficient Scalable Os-1ndependent Services”中,其于 2007 年 12 月 26 日提交,序号为11/964,439,已转让给本申请的受让人,并通过引用方式将其并入本申请。在实施例中,应用与受保护的执行环境资源管理器(RM) 110进行通信。在实施例中,RM可被实现为计算系统的处理器中的微代码,并且RM创建在不同完整性级别运行的线程。在实施例中,RM可以作为独立的超线程而运行,其不可被环O或环3进程访问。RM的受保护的超线程可以在系统引导过程期间被实例化,并且可以由操作系统进行调度但不会被操作系统修改。在执行容器100中运行的应用上强制执行Biba安全策略可以通过以下实现:使RMllO以比执行容器更高的完整性级别进行操作,使得代表执行容器来修改或破坏RM的任意企图构成对安全策略的违反。RM能够在执行容器中建立信任,作为在执行容器中加载和验证操作系统的一部分。在实施例中,执行容器发起控制策略来确认执行容器能力包括强制执行Biba安全规则的能力。在RM中的域策略管理器112将一系列的Biba标签(S卩,特权)分配给应用策略管理器102。域策略管理器保持跟踪域能在处理器中运行的标签。执行容器根据提供的范围来强制执行Biba规则。应用策略管理器接着将特权分配给来自所述范围内的执行容器应用。这确保了系统范围的Biba级别的语义一致性,即使执行容器可能不具有计算平台资源的全局视角。RMllO提供了多个安全域。在实施例中,域是物理资源(例如存储器、磁盘存储设备或网络接口设备)的分区,其中该分区根据由资源管理器使用的Biba标签包含已标记的数据。在图1示出的示例中,有两个域,具有在类别Yl中的完整性级别Xl的域A114,和在类别Y2中的完整性级别X2的域B116。可以将各种计算系统部件(例如物理存储器和设备118)分配到一个域。例如,可将设备120和122分配给域A,并且可以将设备124和126分配到域B。例如,包含在直接存储器存取(DMA)缓存中在Biba标签(X1:Y1)处指定的存储页面可被写入到磁盘存储设备,所述磁盘存储设备具有根据Biba标签方案的分区轨道,其中轨道0-η对应于标签(X1:¥1),并且轨道(11+1)-111对应于标签乂2:Υ2,以此类推。也可以在DMA存储器上创建虚拟化技术的表,使得虚拟化技术的道对应于标签(X1:Y1 ),并且第二虚拟化技术的道对应于另一标签X2:Y2,以此类推。图1还包括尝试在应用之间读和写的流程管理的表示。如果App LI的完整性级别Xl低于或等于高级别,则在域A中具有高级别完整性的应用可以向下写入App L1104。在域A中的应用也可以从App LI读取。App LI可以从在域A中的应用读取。因为App L2的完整性级别Χ2小于或等于App LI的完整性级别XI,所以App L1104可以向下写App L2106。App LI也可以从App L2读取。App L2可以从App LI读取。因为App L3的完整性级别Χ3低于或等于App L2的完整性级别Χ2,所以App L2106可以向下写App L3108o App L2也可以从App L3读取。App L3可以从App L2读取。因为域B中的应用的低完整性级别低于或等于App L3的完整性级别X3,所以App L3108也可以向下写域B130中的应用。App L3也可以从在域B中的应用读取。在域B中的应用可以从App L3读取。图2示出了根据本发明的实施例的具有客户OS的执行容器完整性模型。RMllO可以将全局Biba特权分配给缺少可信Biba感知内核的客户0S200。特权在初始化客户OS时被关联。RM微代码监视随后对硬件的访问。因此,因为策略阻抗不匹配,所以在执行容器中运行的应用所共享的设备和存储器资源不会造成线程增加。但是客户OS应用(例如在这个示例中的App L3108)能继续正常运行而不需要知道Biba安全模型对设备和系统资源的约束,除非这些访问表示对系统完整性的威胁。在实施例中,RM包括全局客户特权分配部件20,用于将Biba模型应用到客户OS访问。例如,如果由CPU超线程组成的Biba感知执行容器100具有分别分配了 B iba标签(X1:Y1)和(X2:Υ2)的两个应用LI 104和L2106,给定在没有Biba感知的客户0S200 (运行在第二 CPU超线程中)中的第三应用L3108可能需要使用由资源管理器分配的资源。作出创建用于分配给客户OS的资源的默认映射的全局客户特权分配,使得由资源管理器进行的Biba标签支配计算将产生明确的结果;并且当客户OS访问时已经给予Biba标签的资源会混淆没有Biba感知的客户OS。在包括AV扫描代理的客户OS中保护存储页面的新技术可以“加固”这些页面来对抗客户OS中的恶意软件的可能攻击。通过进行这些存储页面保护配置和使用受保护的执行环境的运行时间软件,在客户OS中的受保护部件能够以提高的安全级别操作,其安全策略相对于系统范围的策略是一致的。图3是根据本发明的实施例的具有客户OS (具有AV应用)的执行容器完整性模型的图。在实施例中,计算系统可以建立一系列的域以能够保护AV扫描代理的完整性。在实施例中,可以为正被监视是否变化的客户OS存储器创建一组域。一些域可以包括在客户0S200内的受保护的资源303。至少一个域可以包括在客户0S200内的未受保护的资源306。在实施例中,域可以与在处理器中的微操作(uop)线程相关联。域A114:最高完整性级别(SYS_HI)。这个域可以由计算系统建立并且具有最高完整性级别。域Al 14由计算硬件(寄存器、存储器)、RMllO和RM受控设备,以及应用策略管理器102组成,所述应用策略管理器102能够接受清单和存储器区域并且验证该存储器区域与清单相匹配,并且基于存储在应用策略管理器中的可信根验证签名的有效性。域B116:(域B〈域A)。域B包含受保护的执行环境100应用,其运行来支持AV扫描代理保护机制。可以由RMllO以及在执行容器100中运行的其他程序来验证这些应用。部件包括运行时间/轻量级操作系统(未示出)、加载器302、错误处理器304、应用清单322和应用策略管理器102,所述应用策略管理器102向域C防病毒应用300提供服务,并且负责证实域C防病毒应用300且将防病毒应用安装到执行容器100中。域C310:(域C〈域B)。这是将在其中执行防病毒应用的域。在域C中的防病毒应用具有比执行容器100应用更低的完整性级别,但因为在这个域中应用的完整性可能由域A中的数字签名和应用策略管理器102进行验证,所以其高于计算系统的其余部分。在实施例中,在这个域中可能有至少两个应用,在执行容器100中运行的错误处理器304和在受保护页面中运行在用户(客户)0S200中的防病毒应用300。该防病毒应用可以具有客户OS专用知识,但需要被高于域D的Biba模型保护。域c-l, C-2,..., c-n:(如果 i>i,则域 C_i〈域 C_i。域 C-2〈域 C-1〈域 C)。域 C的应用(防病毒应用300和错误处理器304)将创建一系列低于域C的细粒度域。当将写入陷阱放置在那些存储器区域周围时,它们将在客户OS中的存储器放入这些域中。这些域具有低于域C的完整性级别,这是因为并不知道在存储器区域中的值没有恶意软件,但是知道自设置了陷阱后这些值没有改变。这与域C相对比,在域C中所包括的软件被显示出从创建软件起就没有改变软件的清单签名。也与域D相对比(在下面讨论,即,客户OS环境),在域D内,在任意时间都能改变存储器。在实施例中,可以使用一系列这样的域,使得AV应用可以分辨在受保护项目中的不同级别的完整性。例如,因为处理器的全局描述符表寄存器(GDTR)存储在域A硬件中所以已知在GDTR中的值具有高确信度,而与网络存储器映射呈线性的值可以取决于存储在以前建立的域C-1中的值。因此,不能以与域C-1相同的完整性级别建立值并且因此所述值必须具有其自身的域C- (i+1)。域D312:(域D〈域C-n〈域-C)。在实施例中,域D可以是分配给可被客户应用308所访问的所有未保护的资源306的全局域。这包括客户环O应用和内核。域D还包括所有的环3应用软件。从物理存储设备的一分区分配客户OS存储资源,其中分区320包含在具有标签(X4:Y)的域D中的轨道tO-tn。包含在受保护的客户OS存储页面303中的AV应用300具有存储页面陷阱,当解除引用(de-reference)所述陷阱时将致使错误处理器314咨询Biba MAC策略,借此可以使用支配包括域C的默认标签的标签来覆盖默认客户OS Biba标签。通常由318表示这些存储页面。从存储池和存储资源314和316分配由执行容器100消耗的物理资源。执行容器100对由标签分离和通过分区来强制执行的这些资源具有排他性访问。可以将应用清单322存储在具有符合域A114的标签分配的执行容器存储314中。图4是根据本发明的实施例的用于建立域C的流程图400。在块402,AV应用部件300使用处理器指令来指定错误处理器部件304的代码镜像、用于错误处理器的清单、AV应用的存储器位置,和AV应用清单322。在块404,加载器部件302使用应用策略管理器102来验证应用清单322和错误处理器304代码镜像。如果成功地验证了应用清单和错误处理器,则过程继续。加载器创建域C310、将错误处理器代码镜像拷贝到与域C相关联的存储器内,并且启动由处理器执行的错误处理器代码。在块406,加载器302请求错误处理器304锁定在客户0S200中为AV应用300保留的存储页面。在块408,错误处理器通过在客户OS存储器318中的所选代码片段上设置陷阱,来锁定当前加载在客户存储器中的AV应用300的可执行代码镜像。最初,客户OS受保护的页面在域D处。在块410,加载器测量AV应用存储器并将其与AV应用清单322进行比较。如果在客户OS中的攻击者通过供应不正确的页面地址而较早地欺骗了错误处理器,则完整性检测应该会失败。因此,加载器不依赖在域D中的页面表来执行完整性检查,而是基于运行在域A中的应用策略管理器102所证实的清单。在块412,一旦加载器验证了 AV应用镜像的完整性,并且已建立了条件使得其他的客户OS应用(或甚至是客户OS内核代码)在不触发页面陷阱(由错误处理器可检测)情况下不能修改镜像,加载器将AV应用推进到域C。在实施例中,现在错误处理器304和AV应用300在同一域中,它们能够经由硬件实现的处理器发送消息命令进行通信。在块414,错误处理器验证从AV应用接收的每个消息都来源于上述定义和锁定的存储器区域内。在域C中包括代码片段和数据片段二者。锁定用于消息的代码片段并将其与错误处理器的代码片段一起放入到域C中,并且可以许可AV应用来访问这些页面。此时,已经建立了域C,包括运行在执行容器100中的错误处理器和运行在客户0S200中的AV应用300。清单已验证了这两个部件并且存储器陷阱保留了软件镜像的完整性。现在可以运行AV应用来扫描恶意软件。图5是示出根据本发明的实施例的对应于一系列资源设陷机构的级联Biba安全级别的图。设置初始内核陷阱包括建立或改变域C-l、C-2等。将资源放入到不同的域改进了系统的整体安全性。图5示出了图4的块408的另外的细节。客户0S200可以包括用于域C500的受保护的资源区域,受保护的资源区域在实施例中包括AV配置程序510。客户OS也可以包括用于域D的未受保护的资源区域306,未受保护的资源区域306在实施例中可以包含未受保护的页面520,客户OS还包括用于域D的受保护的资源区域508。域C-1502具有任意C子域的最高完整性级别。因为外部机构签名的清单没有证实,因此其内容不能保证是没有恶意软件的。关于C子域将做出确认:从设置陷阱的点起,没有未经授权的软件修改了值(但是不保证未经授权的软件在设置陷阱之前没有修改信息)。在实施例中,可以首先建立域C-1502并且该域包含在受保护的寄存器512内的所有内核元件。可以接着使用域C-1的元件建立域C-2504来获得正确的地址。域C-1将包含为未授权的改变(SYSENTER MSR、CR3等)所监视的系统的寄存器514,并且域C-2将包含地址转换页表(PT)和页面错误处理器(ΡΠΟ 514。一旦建立了这些域,可以进一步创建域C-K例如域C-N506),所述域C-1依赖于域C-1和域C-2的完整性。进一步地,域η可以包含设备驱动器516和应用,所述应用的页面是使用页面错误陷阱(例如AV扫描器518)来保护的。图6是示出根据本发明的实施例的建立C子域的流程图600。在块602,AV应用300识别要设陷的内核寄存器512以及在内核内被允许修改这些寄存器的代码位置一例如允许改变用于客户OS200上下文的CR3的值的调度软件。在块604,AV应用向错误处理器304发送消息来在所选的寄存器和允许对寄存器做出修改的一列代码位置上设置陷阱。在块606,错误处理器将寄存器和代码位置放置到域C-1502中,并且在寄存器和授权的代码设置上设置写入陷阱。此时,对寄存器的所有未授权的访问将在受保护的执行环境系统内生成陷阱,并且将生成从域D306写入到域C-1502的Biba违例。在块608,AV应用使用在域C-1中的寄存器的值来识别需要在域C-2504中受到保护的系统的页面表514。在块610,AV应用向错误处理器发送消息以在所选的页面表条目上设置陷阱,并且包括允许对那些位置(例如页面错误处理器)做出修改的一列位置。在块612,错误处理器在所选的页面表条目上、在那些被授权修改页面表的代码位置上设置陷阱,并且将存储器和代码位置放置到域C-2504中。此时,对页面表的所有未授权的访问将生成在受保护的执行环境系统中的陷阱,并且将生成从域D306写入到域C-2504的Biba违例。所有授权的操作将是从域C-2504到域C-2的写入或从域C-2到域D306的写入。此时,已保护了核心系统(内核)寄存器和页面表。这允许系统在这些核心元件上构建更复杂的陷阱。图7是示出根据本发明的实施例的设置应用陷阱的流程图700。图7提供了图6的块604的实施例的进一步细节来用于建立或改变域C-1。这在无论何时AV应用确定必须保护内核或用户存储器的区域,或当系统状态改变使得以前没有访问特定存储器区域的代码区域现在需要访问那个区域时发生。在块702,AV应用300确定在内核或应用存储器中需要保护的位置。AV应用读取客户OS硬件寄存器512和页面表514来计算陷阱的位置。这些值驻留在域C-1502或域C-2504中。在块704,AV应用向错误处理器304发送消息,以在所需的存储器位置和允许对这些存储器位置做出修改的一列代码位置上设置陷阱。在块706,错误处理器在存储器位置和授权修改存储器位置的所有代码位置上设置写入陷阱。然后错误处理器将这些元件放置到域C-1中,其中i被确定为j-Ι,其中j是用于计算陷阱的地址和位置的最高域级别。来自未受保护区域的所有未授权访问将生成Biba违例,这是因为其将是从域D306到域C-1的写入。但是,如果在域C-1内存在多个区域,则将需要辨别在该域内的写入(从被授权写入到一个存储区区域的写入不能被允许向该域中的所有区域写入)。图8是示出根据本发明的另一实施例的设置应用陷阱的流程图800。这个过程可被用作图7的替换流程。在块802,AV应用确定在内核或应用代码内的位置需要访问在域C-1内的存储器位置。这可能是因为安装了新的驱动器或其他软件。在块804,AV应用向错误处理器发送消息以包括在域C-1内的代码区域。在块806,错误处理器在代码位置上设置陷阱,并将代码位置放置到域C-1中。至此,已将AV应用表示为在受保护的执行环境系统内的单个实体,但在实施例中,AV应用可以由多个部分组成并且所述部分可以驻留在系统内的不同域中。例如,在实施例中,AV应用可以由两个部件组成:在客户OS对象上设置陷阱的AV配置(Config)应用510,和读取未受保护页面和文件来用于寻找恶意软件感染的AV扫描器应用518。通过这个分割模型,可将AV配置部件提升到域C500中,但是AV扫描器518可以保留在较低的域中。在一个实施例中,可将AV扫描器放置在最低的C子域中(域C-n506),并且AV扫描器取决于所有更高域的完整性,但是它隔离于来自域D恶意软件的攻击,这是因为任何由域D恶意软件向AV扫描器的写入将生成Biba错误。当在“环”模式中使用Biba时,许可AV扫描器518读取域D的对象同时在域C_n506操作。如果检测到感染的对象,AV扫描器可以在域D产生子程序来删除或隔离感染的文件。因为AV扫描器不能在域C-n运行,所以AV扫描器永远不会受到攻击型恶意软件的威胁。AV扫描器可以给成功通过AV扫描的硬盘驱动器(HDD)或固态硬盘(SSD)320或存储页面分配新的标签。新标签是大于D并小于域C-n的域。通过验证标签改变请求来源于AV扫描器页面,同时页面陷阱是激活的且AV扫描器标签在域C-n或更高的域,资源管理器(RM) 110验证AV扫描器是可信的(例如,页面陷阱保护是合适的)以执行在已扫描的对象上执行标签改变。当在“低水位线”模式使用Biba时,AV扫描器自动地将标签转换到域D来执行扫描。如果检测到感染的对象,扫描器可以立即移除或隔离,但是不可以改变清除对象的标签。然而,通过确认AV扫描器符合域C-n的要求,所述要求是已在所有临界代码和数据区域上放置了陷阱,并且在AV扫描器在域D中操作时这些陷阱已是合适的,AV扫描器可以按如上所述将其标签改变为域C-n。仅因为资源陷阱,AV扫描器518被保护不受域D恶意软件的损害;在此没有强制使用Biba限制。当在“严格”模式中使用Biba时,AV扫描器必须在执行对象扫描和隔离之前请求标签改变为域D。接着,当完成改变时,AV扫描器必须请求将标签改变回域C-n以对清除对象重新标注。在实施例中,将AV扫描器放置到域C-n可以按如下完成。AV配置应用510确定在AV扫描器应用518内需要保护的位置。AV配置应用发信号通知错误处理器304将陷阱放置在适当的AV扫描器应用位置上。因为域C-n取决于所有其他的C子域,所以错误处理器设置适当的陷阱,并且将位置放置到域C-n506中。图9是示出根本发明的实施例的执行陷阱的流程图900。在某一时间,在设陷的位置将发生写入。这将生成错误(通过AV扫描器机制或通过从较低完整性域向较高完整性域进行写入造成的Biba违例)。在块902,如果客户0S200应用或内核向设置了陷阱的存储器进行写入,则RMllO标记页面访问并且调用错误处理器304。在块904,RM创建一组来自寄存器的系统状态表。在块906,RM调用错误处理器并将系统状态表传递给错误处理器。确信正确地构造了状态表。在块908,错误处理器确定被尝试访问的存储器的域和正在访问存储器的代码的域。在块910,如果尝试的存储器访问来自高于或等同于存储器的域的域,并且尝试访问存储器的代码位置列在允许改变这个存储器位置的范围组中,则错误处理器允许操作。在块912,如果尝试的存储器访问来自于低于存储器的域的域,则错误处理器不允许访问改变存储器。图10是根据本发明的另一实施例的具有用于虚拟机管理器(VMM) 1002的客户OS的执行容器完整性模型的图。所使用的VMM在虚拟化技术的技术领域中是普遍知晓的。在实施例中,VMM能够强制执行通常理解的Biba安全策略。RMllO在高于VMM的完整性级别进行操作,使得代表VMM的任何尝试对RM进行的修改或破坏都构成对安全策略的违例。作为VMM负载的一部分,RM能够建立对VMM的信任,并且能够验证确认VMM能力的启动控制策略包括强制执行Biba安全规则的能力。在RM中的域策略管理器112将一系列Biba标签(即,特权)分配给在VMM内的VM策略管理器1004。VMM根据提供的范围强制执行Biba规贝U。在VMM中的VM策略管理器接着将特权分配给来自那个范围内的VM容器。这确保Biba级别系统范围的语义连续性,即使VMM可能不具有对所有计算平台资源的全局视角。例如,如果在执行容器100中的应用程序(例如,App L1104)被分配了特权域A114,并且运行在客户VM11008中的应用(例如,App G11006)被分配了特权域A114,则这两个应用将使用类似的特权进行操作。此外,如果App L1104将信息降级用于App L2106消耗,则App L2能够将那个信息通知给运行在客户0S200环境中的客户VM21012中的AppG21010,而不违反系统范围安全策略。类似地,App G21010能够降级信息并且将其共享给运行在客户VM31016中并具有域C310的App G31014,和/或App L3108,而不违反安全策略。具有通常理解的安全策略模型允许系统部件之间的灵活互动,同时仍旧可以确保保持系统的安全目的。如果确定客户OS环境具有低于受保护的执行环境的最大级别的可信度,则RM将保留在没有分配给VMM环境的范围的顶层的特权级别。如果VMM被损坏并且分配的特权在其分配的范围外,则RM能够在存储器和设备访问上执行范围检查来检测欺骗。如果使用安全启动技术(例如,可信的执行技术(TXT))启动VMM环境,则RM可以信任VMM来强制执行在VM页面上的范围检查。这可能会产生有益的性能影响。受保护的执行环境的使用可以结合虚拟化,同时保持系统范围的Biba安全策略一致性。图11是根据本发明的实施例的具有用于VMM1002的客户0S200的执行容器完整性模型的图,其中虚拟机包括AV应用。可以使用受保护的执行环境来在VM11008中的更高的特权应用上强制执行域边界。具有相同特权的VMM信任VMl (例如,域O是代表VMM行动的VM)。但是,如果VM受到损害,VM能够破坏VMM的行为。图11示出了用于填充在VM11008中的应用(App G11006)的执行环境1022,使用存储器沙盒技术保护所述应用。VMM使用通常理解的由RMllO的域策略管理器112指导的策略语法和语义来对VM强制执行Biba特权。另外的页面保护可被用于在VM11008中的AppG11006。可以将Biba策略分配给应用策略管理器102,使得分配给App G11006的Biba标签在VMM策略管理器1004分配给VMl 1008的标签范围内。在VM1008中的客户OS没有感知Biba的情况下,VMM1002能够注册应用1006页面1018来生成VMExit陷阱,使得VM清单1020包含用于构建VMExit陷阱的策略和Biba标签分配,其覆盖Biba感知VMM1002分配的默认标签。在客户OS感知Biba VM1012&1016的情况下,VM根据VM做出的标签分配来分配
存储器页面。本发明的实施例通过实现由处理器的微代码强制执行的强制完整性策略来提供受保护的执行环境。正式指定的完整性规则(例如,Biba)使得验证和安全评估更简单。在处理器硬件中的执行(微代码)确保受到损害的OS不能容易地破坏安全策略。本发明的实施例可用于虚拟化环境和非虚拟化环境并用于在任意操作系统环境中。图12示出了计算系统1200的实施例的框图。在各个实施例中,可以用能够执行参考本发明的一些实施例在本文中讨论的一种或多种操作的各种电子设备来提供系统1200的一个或多个部件。例如,可以使用系统1200的一个或多个部件来执行参考图1-11所讨论的操作,例如根据本文中的讨论的操作的处理指令、执行子程序等。还有,可以使用在本文中讨论的各种存储设备(例如,参考图12和/或图13)来存储数据、操作结果等。在一个实施例中,可以将在网络1203上接收(例如,经由网络接口设备1230和/或1330)的数据存储在存在于处理器1202 (和/或图3的1302)中的高速缓存(例如,在实施例中为LI高速缓存)中。这些处理器可以接着根据本发明的各个实施例应用在本文中讨论的操作。更具体地,计算系统1200可以包括经由互连网络(或总线)1204进行通信的一个或多个中央处理单元(CPU) 1202或处理器。因此,在一些实施例中可以由处理器执行在本文中讨论的各种操作。此外,处理器1202可以包括通用处理器、网络处理器(其处理在计算机网络1203上传输的数据),或其他类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,处理器1202可以具有单个或多个内核设计。具有多个内核设计的处理器1202可以在同一集成电路(IC)芯片上集成不同类型的处理器内核。还有,具有多个内核设计的处理器1202可以实现为对称的或非对称的多处理器。此外,可以由系统1200的一个或多个部件执行参考图1-11所讨论的操作。在实施例中,处理器(例如处理器11202-1)可以包括作为硬件线路逻辑(例如,电路)或微代码的资源管理器(RM)110。芯片组1206也可以与互连网络1204进行通信。芯片组1206可以包括图形和存储器控制中心(GMCH) 1208。GMCH1208可以包括与存储器1212进行通信的存储器控制器1210。存储器1212可以存储数据,包括处理器1202或计算系统1200包括的任意其他设备执行的指令序列。此外,存储器1212可以存储在本文中讨论的一种或多种程序或算法,例如执行容器100、客户0S200、编译器1213、根据执行表的指令、映射等。这些数据(包括指令)的相同部分或至少一部分可以存储在硬盘驱动器1228和/或在处理器1202内的一个或多个高速缓存中。在本发明的一个实施例中,存储器1212可以包括一种或多种易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、静态RAM (SRAM),或其他类型的存储设备。还可以使用非易失性存储器,例如硬盘。另外的设备可以经由互连网络1204进行通信,例如多处理器和/或多系统存储器。GMCH1208还可以包括与显示器1216通信的图形接口 1214。在本发明的一个实施例中,图形接口 1214可以经由加速图形端口(AGP)与显示器1216进行通信。在本发明的实施例中,显示器1216可以是通过例如信号转换器与图形接口 1214进行通信的平板显示器,所述信号转换器将存储在存储设备(例如,视频存储器或系统存储器)中的图像的数字表示转换为由显示器1216进行解释和显示的显示信号。由接口 1214产生的显示信号在被显示器1216解释并随后显示之前,可以通过各种控制设备。中心接口 1218可以允许GMCH1208和输入/输出(I/O)控制中心(ICH) 1220进行通信。ICH1220可以向I/O设备提供与计算系统1200进行通信的接口。ICH1220可以通过外围桥(或控制器)1224与总线1222进行通信,所述外围桥(或控制器)1224例如为外围部件互连(PCI)桥、通用串行总线(USB)控制器,或其他类型的外围桥或控制器。桥1224可以提供在处理器1202和外围设备1224之间的数据路径。也可以使用其他类型的技术。还有,多条总线可以通过例如多个桥或控制器与ICH1220进行通信。此外,在本发明的各个实施例中,可以包括与ICH1220进行通信的其他外围设备:电子集成驱动器(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口( DVI)),或其他设备。总线1222可以与音频设备1226、一个或多个磁盘驱动器1228和网络接口设备1230进行通信,所述网络接口设备1230可以与计算机网络1203进行通信。在实施例中,设备1230可以是能够有线通信或无线通信的网络接口控制器(NIC)。其他设备可以经由总线1222进行通信。还有,在本发明的一些实施例中,各种部件(例如网络接口设备1230)可以与GMCHl208进行通信。此外,可以结合处理器1202、GMCH1208,和/或图形接口 1214来形成单个芯片。此外,计算系统1200可以包括易失性和/或非易失性存储器(或存储)。例如,非易失性存储器可以包括以下的一种或多种设备:只读存储器(ROM)、可编程ROM (PR0M)、可擦除PROM (EPR0M)、电EPROM (EEPR0M)、磁盘驱动器(例如,1228)、软盘、光盘只读存储器(CD-ROM)、数字多用途盘(DVD)、闪存、磁光盘,或其他类型的能够存储电子数据(例如,包括指令)的机器可读介质。在实施例中,可以以例如参考图13所讨论的点对点(PtP)配置来安排系统1200的部件。例如,通过多个点对点接口可以互连处理器、存储器和/或输入/输出设备。更精确地,图13示出了根据本发明的实施例的安排为点对点(PtP)配置的计算系统1300。特别地,图13示出了其中通过多个点对点接口进行互连的处理器、存储器和输入/输出设备的系统。可以通过系统1300的一个或多个部件来执行参考图1-12所讨论的操作。如图13所示,系统1300可以包括多个处理器,为了清楚仅示出了两个处理器,处理器1302和1304。处理器1302和1304每一个可以包括与存储器1310和1312相耦合的本地存储器控制中心(MCH)1306和1308(在一些实施例中,其可以是与图12中的GMCH1208是相同或相似的)。存储器1310和/或1312可以存储诸如参考图13的存储器1212所讨论的那些各类数据。处理器1302和1304可以是例如参考图13的处理器1302所讨论的那些任何适当的处理器。处理器1302和1304可以分别使用PtP接口电路1316和1318经由点对点(PtP)接口 1314来交换数据。处理器1302和1304中的每一个可以使用点对点接口电路1326、1328、1330和1332经由个体PtP接口 1322和1324与芯片组1320进行数据交换。芯片组1320还可以使用PtP接口电路1337经由高性能图形接口 1336与高性能图形电路1334进行数据交换。通过使用处理器1302和1304可以提供本发明的至少一个实施例。例如,处理器1302和/或1304可以执行图1-11的一个或多个操作。但是本发明的其他实施例可以存在于图13的系统1300中的其他电路、逻辑单元或设备中。此外,本发明的其他实施例可以分布在图13中示出的数个电路、逻辑单元,或设备。可以使用PtP接口电路1341来将芯片组1320耦合到总线1340。总线1340可以具有与其相耦合的一个或多个设备,例如总线桥1342和I/O设备1343。经由总线1344,总线桥1343可以与其他设备相耦合,所述其他设备例如为键盘/鼠标1345、参考图12讨论的网络接口设备1330 (例如调制解调器、网络接口卡(NIC),或类似的可以与计算机网络1303相耦合的设备)、音频I/O设备1347,和/或数据存储设备1348。数据存储设备1348可以存储可被处理器1302和/或1304执行的代码1349。在本发明的各个实施例中,在本文中例如参考图1-13所讨论的操作可以用硬件(例如,逻辑电路)、软件(包括,例如,控制处理器(例如参考图12-13所讨论的处理器)操作的微代码)、固件,或其上的组合,它们可以作为计算机程序产品来提供,例如,包括具有指令(或软件程序)存储在其上的有形的机器可读或计算机可读介质,所述指令用来为计算机(例如,处理器或计算机设备的其他逻辑)编程以执行在本文中讨论的操作。机器可读介质可以包括例如在文本中所讨论的那些存储设备。本说明书中引用“一个实施例”或“实施例”指结合该实施例所描述的特定特征、结构或特性包括在本发明的至少一个实施例中。本说明书中各处出现的短语“在一个实施例中”并不必然全都指相同实施例。在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的派生词。在特定的实施例中,“连接”可被用来指示两个或更多个元件彼此之间是直接物理接触或电接触的。“耦合”可以意味着两个或更多个元件是直接物理接触或电接触的。然而,“耦合”还可以意味着两个或更多的元件彼此之间不是直接接触的,但彼此之间仍然可以协作或交互。此外,这些计算机可读媒介可以作为计算机程序产品而被下载,其中可以经由通信链路(例如总线、调制解调器,或网络连接)通过数据信号的方式将程序从远程计算机(例如,服务器)传送到请求计算机(例如,客户端)。因此,虽然已经用具体到结构特征和/或方法动作的语言描述了实施例,但是可以理解,不应将声明的主题限制到所描述的具体特征或动作。而是,作为实现声明的主题的示例形式公开了这些具体特征和动作。
权利要求
1.一种在具有加载器和错误处理器的计算系统中,对在客户操作系统中运行的独立于操作系统(OS)的防病毒(AV)应用强制执行安全策略的方法,包括: 由所述AV应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单; 由所述加载器验证所述错误处理器代码镜像和所述错误处理器清单; 由所述加载器创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,并且启动所述错误处理器的执行; 由所述加载器请求锁定在所述客户OS中为所述AV应用保留的存储器页; 通过在所述客户OS存储器页中所选的代码段上设置陷阱,所述错误处理器锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像; 由所述加载器测量AV 应用存储器并将所述测量与所述AV应用清单进行比较;以及当所述测量和比较步骤成功地验证所述AV应用时,由所述加载器将所述AV应用提升到所述第一安全域。
2.根据权利要求1所述的方法,其中,所述加载器和所述错误处理器在所述计算系统中的受保护的执行环境中执行。
3.根据权利要求1所述的方法,其中,在所述客户OS中运行的其他应用位于具有第二安全级别的第二安全域中,所述第一安全级别高于所述第二安全级别。
4.根据权利要求3所述的方法,其中,在所述第二安全域中运行的应用在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
5.根据权利要求3所述的方法,其中,在所述第二安全域中运行的客户OS内核代码在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
6.根据权利要求1所述的方法,还包括执行所述AV应用来扫描在所述计算系统中的恶意软件。
7.根据权利要求6所述的方法,还包括由所述错误处理器验证来自所述AV应用的消息来源于已锁定的客户OS存储器。
8.根据权利要求1所述的方法,其中,由所述计算系统的处理器的资源管理器逻辑来控制对所述安全域的访问。
9.根据权利要求1所述的方法,其中,所述AV应用在由虚拟机管理器(VMM)所控制的虚拟机中执行。
10.一种包括一条或多条指令的计算机可读介质,当在具有加载器和错误处理器的计算系统的处理器上执行所述指令时,配置所述处理器执行以下一个或多个操作: 由防病毒(AV)应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单; 由所述加载器验证所述错误处理器代码镜像和所述错误处理器清单; 由所述加载器创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,并且启动所述错误处理器的执行; 由所述加载器请求锁定在所述客户OS中为所述AV应用保留的存储器页; 通过在所述客户OS存储器页中所选的代码段上设置陷阱,所述错误处理器锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像; 由所述加载器测量AV应用存储器并将所述测量与所述AV应用清单进行比较;以及当所述测量和比较步骤成功地验证所述AV应用时,由所述加载器将所述AV应用提升到所述第一安全域。
11.根据权利要求10所述的介质,其中,所述加载器和所述错误处理器在所述计算系统中的受保护的执行环境中执行。
12.根据权利要求10所述的介质,其中,在所述客户OS中运行的其他应用位于具有第二安全级别的第二安全域中,所述第一安全级别高于所述第二安全级别。
13.根据权利要求12所述的介质,其中,在所述第二安全域中运行的应用在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
14.根据权利要求12所述的介质,其中,在所述第二安全域中运行的客户OS内核代码在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
15.根据权利要求10所述的介质,还包括用于执行所述AV应用来扫描在所述计算系统中的恶意软件的指令。
16.根据权利要求15所述的介质,还包括用于由所述错误处理器验证来自所述AV应用的消息来源于已锁定的客户OS存储器的指令。
17.一种计算系统,包括: 用于执行指令来强制执行用于所述计算系统的安全策略的处理器,所述处理器包括控制对多个安全域的访问的资源管理器逻辑; 包括加载器和错误处理器的执`行容器;以及 包括防病毒(AV)应用的客户操作系统(OS); 其中,所述AV应用指定错误处理器代码镜像、错误处理器清单、所述AV应用的存储器位置,和AV应用清单; 其中,所述加载器验证所述错误处理器代码镜像和所述错误处理器清单,创建具有第一安全级别的第一安全域,将所述错误处理器代码镜像拷贝到与所述第一安全域相关联的存储器,由所述处理器启动所述错误处理器的执行,和请求锁定在所述客户OS中为所述AV应用保留的存储器页; 其中,所述错误处理器通过在所述客户OS存储器面中所选的代码段上设置陷阱来锁定加载到客户OS存储器中的所述AV应用的可执行代码镜像;以及 其中,所述加载器测量AV应用存储器,将所述测量与所述AV应用清单进行比较,并且当所述测量和比较步骤成功地验证所述AV应用时,将所述AV应用提升到所述第一安全域。
18.根据权利要求17所述的计算系统,其中,在所述客户OS中运行的其他应用位于具有第二安全级别的第二安全域中,所述第一安全级别高于所述第二安全级别。
19.根据权利要求18所述的计算系统,其中,在所述第二安全域中运行的应用在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
20.根据权利要求18所述的计算系统,其中,在所述第二安全域中运行的客户OS内核代码在没有触发由所述错误处理器检测到的陷阱的情况下不能修改在所述第一安全域中的存储器。
21.根据权利要求17所述的计算系统,还包括执行所述AV应用来扫描在所述计算系统中的恶意软件。
22.根据权利要求21所述的计算系统,其中,所述错误处理器验证来自所述AV应用的消息来源于已锁定的客户OS存储器。
23. 根据权利要求1所述的计算系统,还包括在所述客户OS中用于实例化虚拟机的虚拟机管理器(VMM),其中,所述AV应用在所述虚拟机中执行。
24. 根据权利要求1所述的计算系统,其中`,所述执行容器包括受保护的执行环境。
全文摘要
一种防病毒(AV)应用,其指定错误处理器代码镜像、错误处理器清单、AV应用的存储器位置,和AV应用清单。加载器验证错误处理器代码镜像和错误处理器清单,创建具有第一安全级别的第一安全域,将错误处理器代码镜像拷贝到与第一安全域相关联的存储器,并且启动错误处理器的执行。加载器请求锁定在客户操作系统中为AV应用保留的存储页面。通过在客户操作系统存储器中所选代码片段上设置陷阱,错误处理器锁定加载到客户操作系统存储器中的AV应用的可执行代码镜像。
文档编号G06F21/53GK103119601SQ201180044799
公开日2013年5月22日 申请日期2011年7月25日 优先权日2010年8月18日
发明者N·M·史密斯, G·D·丹内尔斯, V·尚博格, S·苏古马尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1